From 1d09fa93c51a39ab30aa0aeb6158ec12e801bf24 Mon Sep 17 00:00:00 2001 From: Chinmoy Dey Date: Sun, 1 Mar 2026 13:49:51 +0000 Subject: [PATCH] [sonic-redfish] Add Docker-based build system and sonic-dbus-bridge component - Add Makefile.build as central build orchestration with Docker-only builds - Add Docker build environment (debian:trixie) with all required dependencies - Add patch management system with series file for bmcweb integration - Add submodule setup scripts for bmcweb and sdbusplus dependencies - Add Docker container configuration for runtime deployment - Update README.md with build instructions and system architecture sonic-dbus-bridge component: - Implements D-Bus to Redis state synchronization for SONiC integration - Provides D-Bus interfaces for Redfish API consumption by bmcweb - Supports inventory management via FRU and platform JSON adapters - Implements user management with PAM integration - Implements software update management for BMC firmware - Uses Redis pub/sub for state change notifications - Built with C++23, Meson build system, and sdbusplus library Build system features: - Docker-only compilation for build consistency across environments - Meson-based builds for both bmcweb and sonic-dbus-bridge - C++23 support with proper dependency resolution via wrap files - Parallel build support via SONIC_CONFIG_MAKE_JOBS variable - Clean separation of build artifacts and source code Signed-off-by: Chinmoy Dey Co-authored-by: Shreyansh Jain --- .gitignore | 98 ++++ Makefile | 416 ++++++++++++++ README.md | 509 ++++++++++++++++- build/Dockerfile.build | 41 ++ images/BuildFlowChart.png | Bin 0 -> 1601715 bytes ...ing-bmcweb-with-SONiC-s-build-system.patch | 177 ++++++ ...roduct-field-to-Redfish-service-root.patch | 29 + patches/series | 10 + sonic-dbus-bridge/config/config.yaml | 68 +++ ...xyz.openbmc_project.Inventory.Manager.conf | 26 + .../xyz.openbmc_project.ObjectMapper.conf | 26 + .../dbus/xyz.openbmc_project.State.Host.conf | 26 + .../xyz.openbmc_project.User.Manager.conf | 26 + .../dbus/xyz.openbmc_project.bmcweb.conf | 15 + sonic-dbus-bridge/debian/changelog | 11 + sonic-dbus-bridge/debian/control | 31 ++ sonic-dbus-bridge/debian/rules | 27 + sonic-dbus-bridge/include/bridge_app.hpp | 188 +++++++ sonic-dbus-bridge/include/config_manager.hpp | 84 +++ sonic-dbus-bridge/include/dbus_exporter.hpp | 98 ++++ sonic-dbus-bridge/include/fru_adapter.hpp | 89 +++ sonic-dbus-bridge/include/inventory_model.hpp | 82 +++ sonic-dbus-bridge/include/logger.hpp | 288 ++++++++++ sonic-dbus-bridge/include/object_mapper.hpp | 106 ++++ .../include/platform_json_adapter.hpp | 92 ++++ sonic-dbus-bridge/include/redis_adapter.hpp | 145 +++++ .../include/redis_state_publisher.hpp | 108 ++++ .../include/redis_state_subscriber.hpp | 116 ++++ sonic-dbus-bridge/include/state_manager.hpp | 134 +++++ sonic-dbus-bridge/include/types.hpp | 191 +++++++ sonic-dbus-bridge/include/update_engine.hpp | 111 ++++ sonic-dbus-bridge/include/user_mgr.hpp | 104 ++++ sonic-dbus-bridge/include/users.hpp | 97 ++++ sonic-dbus-bridge/meson.build | 114 ++++ sonic-dbus-bridge/meson.options | 9 + sonic-dbus-bridge/src/bridge_app.cpp | 516 ++++++++++++++++++ sonic-dbus-bridge/src/config_manager.cpp | 37 ++ sonic-dbus-bridge/src/dbus_exporter.cpp | 259 +++++++++ sonic-dbus-bridge/src/fru_adapter.cpp | 157 ++++++ sonic-dbus-bridge/src/inventory_model.cpp | 267 +++++++++ sonic-dbus-bridge/src/main.cpp | 95 ++++ sonic-dbus-bridge/src/object_mapper.cpp | 249 +++++++++ .../src/platform_json_adapter.cpp | 174 ++++++ sonic-dbus-bridge/src/redis_adapter.cpp | 373 +++++++++++++ .../src/redis_state_publisher.cpp | 325 +++++++++++ .../src/redis_state_subscriber.cpp | 473 ++++++++++++++++ sonic-dbus-bridge/src/state_manager.cpp | 298 ++++++++++ sonic-dbus-bridge/src/update_engine.cpp | 232 ++++++++ sonic-dbus-bridge/src/user_mgr.cpp | 202 +++++++ sonic-dbus-bridge/src/users.cpp | 68 +++ sonic-dbus-bridge/subprojects/sdbusplus.wrap | 8 + sonic-dbus-bridge/subprojects/stdexec.wrap | 8 + 52 files changed, 7432 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 build/Dockerfile.build create mode 100644 images/BuildFlowChart.png create mode 100644 patches/0001-Integrating-bmcweb-with-SONiC-s-build-system.patch create mode 100644 patches/0002-Add-Product-field-to-Redfish-service-root.patch create mode 100644 patches/series create mode 100644 sonic-dbus-bridge/config/config.yaml create mode 100644 sonic-dbus-bridge/dbus/xyz.openbmc_project.Inventory.Manager.conf create mode 100644 sonic-dbus-bridge/dbus/xyz.openbmc_project.ObjectMapper.conf create mode 100644 sonic-dbus-bridge/dbus/xyz.openbmc_project.State.Host.conf create mode 100644 sonic-dbus-bridge/dbus/xyz.openbmc_project.User.Manager.conf create mode 100644 sonic-dbus-bridge/dbus/xyz.openbmc_project.bmcweb.conf create mode 100644 sonic-dbus-bridge/debian/changelog create mode 100644 sonic-dbus-bridge/debian/control create mode 100755 sonic-dbus-bridge/debian/rules create mode 100644 sonic-dbus-bridge/include/bridge_app.hpp create mode 100644 sonic-dbus-bridge/include/config_manager.hpp create mode 100644 sonic-dbus-bridge/include/dbus_exporter.hpp create mode 100644 sonic-dbus-bridge/include/fru_adapter.hpp create mode 100644 sonic-dbus-bridge/include/inventory_model.hpp create mode 100644 sonic-dbus-bridge/include/logger.hpp create mode 100644 sonic-dbus-bridge/include/object_mapper.hpp create mode 100644 sonic-dbus-bridge/include/platform_json_adapter.hpp create mode 100644 sonic-dbus-bridge/include/redis_adapter.hpp create mode 100644 sonic-dbus-bridge/include/redis_state_publisher.hpp create mode 100644 sonic-dbus-bridge/include/redis_state_subscriber.hpp create mode 100644 sonic-dbus-bridge/include/state_manager.hpp create mode 100644 sonic-dbus-bridge/include/types.hpp create mode 100644 sonic-dbus-bridge/include/update_engine.hpp create mode 100644 sonic-dbus-bridge/include/user_mgr.hpp create mode 100644 sonic-dbus-bridge/include/users.hpp create mode 100644 sonic-dbus-bridge/meson.build create mode 100644 sonic-dbus-bridge/meson.options create mode 100644 sonic-dbus-bridge/src/bridge_app.cpp create mode 100644 sonic-dbus-bridge/src/config_manager.cpp create mode 100644 sonic-dbus-bridge/src/dbus_exporter.cpp create mode 100644 sonic-dbus-bridge/src/fru_adapter.cpp create mode 100644 sonic-dbus-bridge/src/inventory_model.cpp create mode 100644 sonic-dbus-bridge/src/main.cpp create mode 100644 sonic-dbus-bridge/src/object_mapper.cpp create mode 100644 sonic-dbus-bridge/src/platform_json_adapter.cpp create mode 100644 sonic-dbus-bridge/src/redis_adapter.cpp create mode 100644 sonic-dbus-bridge/src/redis_state_publisher.cpp create mode 100644 sonic-dbus-bridge/src/redis_state_subscriber.cpp create mode 100644 sonic-dbus-bridge/src/state_manager.cpp create mode 100644 sonic-dbus-bridge/src/update_engine.cpp create mode 100644 sonic-dbus-bridge/src/user_mgr.cpp create mode 100644 sonic-dbus-bridge/src/users.cpp create mode 100644 sonic-dbus-bridge/subprojects/sdbusplus.wrap create mode 100644 sonic-dbus-bridge/subprojects/stdexec.wrap diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f9c5ac0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,98 @@ +# Build output directory +target/ + +# Debian package build artifacts +*.deb +*.ddeb +*.buildinfo +*.changes +*.dsc +*.tar.gz +*.tar.xz + +# sonic-dbus-bridge build artifacts +sonic-dbus-bridge-dbgsym_*.deb +sonic-dbus-bridge_*.deb +sonic-dbus-bridge_*.buildinfo +sonic-dbus-bridge_*.changes +sonic-dbus-bridge/debian/.debhelper/ +sonic-dbus-bridge/debian/debhelper-build-stamp +sonic-dbus-bridge/debian/files +sonic-dbus-bridge/debian/*.debhelper.log +sonic-dbus-bridge/debian/*.substvars +sonic-dbus-bridge/debian/sonic-dbus-bridge/ +sonic-dbus-bridge/debian/sonic-dbus-bridge-dbgsym/ +sonic-dbus-bridge/debian/tmp/ +sonic-dbus-bridge/obj-*/ + +# sonic-dbus-bridge subprojects - ignore downloaded directories, keep .wrap files +sonic-dbus-bridge/subprojects/*/ +!sonic-dbus-bridge/subprojects/*.wrap + +# bmcweb build artifacts +bmcweb-dbg_*.deb +bmcweb_*.deb +bmcweb_*.buildinfo +bmcweb_*.changes +bmcweb/* + +# Meson build directories +build/ +builddir/ +obj-*/ +.builddir/ + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +env/ +venv/ +ENV/ +*.egg-info/ +dist/ +*.egg + +# C/C++ +*.o +*.a +*.so +*.so.* +*.dylib +*.out +*.app +*.i*86 +*.x86_64 +*.hex +core + +# IDE and editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ +.*.swp +.*.swo +*.bak +.DS_Store + +# Docker +.dockerignore + +# Logs +*.log +logs/ + +# Temporary files +*.tmp +*.temp +tmp/ +temp/ + +# System files +.directory +Thumbs.db + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8ae2b9f --- /dev/null +++ b/Makefile @@ -0,0 +1,416 @@ +# Makefile for sonic-redfish +.ONESHELL: +SHELL = /bin/bash +.SHELLFLAGS += -e + +# Build configuration +CONFIGURED_ARCH ?= amd64 +SONIC_CONFIG_MAKE_JOBS ?= $(shell nproc) + +# Source configuration +BMCWEB_HEAD_COMMIT ?= 6926d430 +BMCWEB_REPO_URL ?= https://github.com/openbmc/bmcweb.git + +# Target directory for build artifacts +SONIC_REDFISH_TARGET ?= target/debs/trixie + +# Directories +REPO_ROOT := $(shell pwd) +BMCWEB_DIR := $(REPO_ROOT)/bmcweb +BRIDGE_DIR := $(REPO_ROOT)/sonic-dbus-bridge +PATCHES_DIR := $(REPO_ROOT)/patches +SCRIPTS_DIR := $(REPO_ROOT)/scripts +BUILD_DIR := $(REPO_ROOT)/build +TARGET_DIR := $(REPO_ROOT)/$(SONIC_REDFISH_TARGET) +SERIES_FILE := $(PATCHES_DIR)/series +DEBIAN_DIR := $(BMCWEB_DIR)/debian + +# Build artifacts +BMCWEB_BINARY := $(BMCWEB_DIR)/build/bmcweb +BRIDGE_BINARY := $(BRIDGE_DIR)/build/sonic-dbus-bridge + +# Docker configuration +DOCKER_BUILDER_IMAGE := sonic-redfish-builder:latest +DOCKERFILE_BUILD := $(BUILD_DIR)/Dockerfile.build + +# Main targets +MAIN_TARGET := $(BMCWEB_BINARY) +DERIVED_TARGETS := $(BRIDGE_BINARY) + +.PHONY: all build clean reset setup-bmcweb copy-patches apply-patches build-bmcweb build-bridge build-bmcweb-native build-bridge-native build-in-docker help + +# Default target - Build both components (via Docker) +all: build + @echo "" + @echo "=========================================" + @echo "All components built successfully!" + @echo "=========================================" + @echo "" + @echo "Build artifacts in $(SONIC_REDFISH_TARGET):" + @ls -lh $(TARGET_DIR)/*.deb 2>/dev/null || echo " No .deb files found" + +help: + @echo "sonic-redfish Build System (Docker-Only)" + @echo "=========================================" + @echo "" + @echo "Targets:" + @echo " all - Build all components (Docker-only)" + @echo " build-bmcweb - Build bmcweb only" + @echo " build-bridge - Build sonic-dbus-bridge only" + @echo " clean - Remove build artifacts (Docker-based)" + @echo " reset - Complete cleanup (clean + reset bmcweb + remove Docker images)" + @echo "" + @echo "Variables:" + @echo " SONIC_CONFIG_MAKE_JOBS - Number of parallel jobs (default: nproc)" + @echo " SONIC_REDFISH_TARGET - Target directory for build artifacts (default: target/debs/trixie)" + @echo " BMCWEB_HEAD_COMMIT - bmcweb commit to checkout (default: 6926d430)" + @echo " BMCWEB_REPO_URL - bmcweb repository URL (default: https://github.com/openbmc/bmcweb.git)" + @echo "" + @echo "Examples:" + @echo " make -f Makefile # Build with Docker (auto-clone bmcweb if needed)" + @echo " make -f Makefile clean # Clean build artifacts" + @echo " make -f Makefile reset # Complete reset" + @echo " make -f Makefile SONIC_CONFIG_MAKE_JOBS=4 # Build with 4 parallel jobs" + @echo " make -f Makefile BMCWEB_HEAD_COMMIT=abc123 # Build with specific bmcweb commit" + @echo " make -f Makefile SONIC_REDFISH_TARGET=output/debs # Use custom output directory" + @echo "" + @echo "NOTE: This build system is Docker-only for consistency with sonic-buildimage" + @echo " bmcweb will be automatically cloned if not present" + +# Build target - Always Docker +build: $(DOCKERFILE_BUILD) + @echo "=========================================" + @echo "Building sonic-redfish (Docker-only mode)" + @echo "=========================================" + @echo "" + + # Build Docker image + @echo "Building Docker build environment..." + docker build -t $(DOCKER_BUILDER_IMAGE) -f $(DOCKERFILE_BUILD) $(BUILD_DIR) + @echo " Build environment ready" + @echo "" + + # Run build inside Docker + @echo "Running build inside Docker container..." + docker run --rm \ + -v "$(REPO_ROOT):/workspace" \ + -w /workspace \ + -e SONIC_CONFIG_MAKE_JOBS=$(SONIC_CONFIG_MAKE_JOBS) \ + $(DOCKER_BUILDER_IMAGE) \ + bash -c "\ + set -e; \ + git config --global --add safe.directory /workspace; \ + git config --global --add safe.directory /workspace/bmcweb; \ + make -f Makefile build-in-docker; \ + " + + @echo "" + @echo "=========================================" + @echo "Build completed successfully!" + @echo "=========================================" + @echo "" + @echo "Build artifacts in $(SONIC_REDFISH_TARGET):" + @ls -lh $(TARGET_DIR)/*.deb 2>/dev/null || echo " No .deb files found" + +# Build inside Docker (called from Docker container) +# Note: sdbusplus is pre-installed in the Docker image +build-in-docker: setup-bmcweb apply-patches build-bridge-native build-bmcweb-native + @echo " Build inside Docker completed" + +# Setup bmcweb source +setup-bmcweb: + @echo "Checking bmcweb source..." + @if [ ! -d "$(BMCWEB_DIR)" ]; then \ + echo " bmcweb directory not found, cloning from $(BMCWEB_REPO_URL)..."; \ + git clone $(BMCWEB_REPO_URL) $(BMCWEB_DIR); \ + echo " Checking out commit $(BMCWEB_HEAD_COMMIT)..."; \ + cd $(BMCWEB_DIR) && git checkout $(BMCWEB_HEAD_COMMIT); \ + echo " bmcweb cloned and checked out to $(BMCWEB_HEAD_COMMIT)"; \ + elif [ -d "$(BMCWEB_DIR)/.git" ]; then \ + cd $(BMCWEB_DIR) && \ + current_commit=$$(git rev-parse --short HEAD 2>/dev/null || echo "unknown"); \ + if ! git diff --quiet 2>/dev/null; then \ + echo " bmcweb has local changes (patches applied), ready"; \ + else \ + echo " bmcweb source is clean at commit $$current_commit, ready for patches"; \ + fi; \ + else \ + echo " bmcweb source directory ready"; \ + fi + @echo " bmcweb ready" + +# Copy patches to debian/ directory +copy-patches: $(SERIES_FILE) + @echo "Copying patches to debian/ directory ..." + @# Note: Patches will create debian/ directory, so we only copy series file after patches are applied + @echo " Patches will be applied from $(PATCHES_DIR)" + +# Apply patches using series file +apply-patches: setup-bmcweb + @echo "Applying patches from series file..." + @if [ ! -d "$(BMCWEB_DIR)" ]; then \ + echo "Error: bmcweb directory not found"; \ + exit 1; \ + fi + + @cd $(BMCWEB_DIR) && \ + if git diff --quiet 2>/dev/null; then \ + echo " Applying patches from $(PATCHES_DIR)/series..."; \ + while IFS= read -r patch || [ -n "$$patch" ]; do \ + patch=$$(echo "$$patch" | sed 's/#.*//;s/^[[:space:]]*//;s/[[:space:]]*$$//'); \ + [ -z "$$patch" ] && continue; \ + echo " Applying: $$patch"; \ + if [ -f "$(PATCHES_DIR)/$$patch" ]; then \ + git apply "$(PATCHES_DIR)/$$patch" || { echo "Error applying $$patch"; exit 1; }; \ + else \ + echo "Error: Patch file not found: $$patch"; \ + exit 1; \ + fi; \ + done < $(PATCHES_DIR)/series; \ + echo " All patches applied successfully"; \ + else \ + echo " Patches already applied (bmcweb has local changes)"; \ + fi + +# Build bmcweb Debian package +# Dependencies: clean → setup-bmcweb → apply-patches → build-bmcweb +build-bmcweb: clean setup-bmcweb apply-patches + @echo "=========================================" + @echo "Building bmcweb Debian package" + @echo "=========================================" + @echo "" + + # Build Docker image if needed + @echo "Ensuring Docker build environment..." + @docker build -t $(DOCKER_BUILDER_IMAGE) -f $(DOCKERFILE_BUILD) $(BUILD_DIR) 2>/dev/null || true + @echo "" + + # Run dpkg-buildpackage inside Docker + @echo "Building bmcweb Debian package inside Docker..." + @mkdir -p $(TARGET_DIR) + @docker run --rm \ + -v "$(REPO_ROOT):/workspace" \ + -w /workspace/bmcweb \ + $(DOCKER_BUILDER_IMAGE) \ + bash -c "dpkg-buildpackage -us -uc -j$(SONIC_CONFIG_MAKE_JOBS)" + @echo "" + + # Copy all build artifacts to target directory + @echo "Collecting build artifacts to $(SONIC_REDFISH_TARGET)..." + @mv $(REPO_ROOT)/bmcweb_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb-dbg_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb_*.changes $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb_*.buildinfo $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb_*.dsc $(TARGET_DIR)/ 2>/dev/null || true + @echo "" + @echo "=========================================" + @echo "bmcweb build complete!" + @echo "=========================================" + @echo "Build artifacts in $(SONIC_REDFISH_TARGET):" + @ls -lh $(TARGET_DIR)/bmcweb* 2>/dev/null || echo "No artifacts found" + @echo "" + +# Build sonic-dbus-bridge Debian package +# Dependencies: clean → build-bridge +build-bridge: clean + @echo "=========================================" + @echo "Building sonic-dbus-bridge Debian package" + @echo "=========================================" + @echo "" + + # Build Docker image if needed + @echo "Ensuring Docker build environment..." + @docker build -t $(DOCKER_BUILDER_IMAGE) -f $(DOCKERFILE_BUILD) $(BUILD_DIR) 2>/dev/null || true + @echo "" + + # Build .deb package inside Docker + @echo "Building sonic-dbus-bridge .deb package in Docker..." + @docker run --rm \ + -v "$(REPO_ROOT):/workspace" \ + -w /workspace \ + -e SONIC_CONFIG_MAKE_JOBS=$(SONIC_CONFIG_MAKE_JOBS) \ + $(DOCKER_BUILDER_IMAGE) \ + bash -c "\ + set -e; \ + git config --global --add safe.directory /workspace; \ + git config --global --add safe.directory /workspace/bmcweb; \ + echo 'Installing Debian packaging tools and build dependencies...'; \ + apt-get update -qq; \ + apt-get install -y -qq debhelper devscripts build-essential fakeroot dpkg-dev libboost-dev meson; \ + echo 'Building sonic-dbus-bridge package...'; \ + cd /workspace/sonic-dbus-bridge; \ + dpkg-buildpackage -us -uc -b -j$(SONIC_CONFIG_MAKE_JOBS); \ + echo 'Package built successfully'; \ + " + + # Copy all build artifacts to target directory + @echo "" + @echo "Collecting build artifacts to $(SONIC_REDFISH_TARGET)..." + @mkdir -p $(TARGET_DIR) + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge-dbgsym_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.changes $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.buildinfo $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.dsc $(TARGET_DIR)/ 2>/dev/null || true + @echo "" + @echo "=========================================" + @echo "sonic-dbus-bridge package build complete!" + @echo "=========================================" + @echo "" + @echo "Build artifacts in $(SONIC_REDFISH_TARGET):" + @ls -lh $(TARGET_DIR)/sonic-dbus-bridge* 2>/dev/null || echo " No artifacts found" + +# Build bmcweb natively (inside Docker container, no nested Docker) +build-bmcweb-native: + @echo "=========================================" + @echo "Building bmcweb Debian package (native)" + @echo "=========================================" + @echo "" + + # Build directly with dpkg-buildpackage (no Docker) + @echo "Building bmcweb package..." + @cd $(BMCWEB_DIR) && dpkg-buildpackage -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) + @echo "" + + # Copy all build artifacts to target directory + @echo "Collecting build artifacts to $(SONIC_REDFISH_TARGET)..." + @mkdir -p $(TARGET_DIR) + @mv $(REPO_ROOT)/bmcweb_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb-dbg_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb_*.changes $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb_*.buildinfo $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/bmcweb_*.dsc $(TARGET_DIR)/ 2>/dev/null || true + @echo "" + @echo "=========================================" + @echo "bmcweb build complete!" + @echo "=========================================" + @echo "Build artifacts in $(SONIC_REDFISH_TARGET):" + @ls -lh $(TARGET_DIR)/bmcweb* 2>/dev/null || echo "No artifacts found" + @echo "" + +# Build sonic-dbus-bridge natively (inside Docker container, no nested Docker) +build-bridge-native: + @echo "=========================================" + @echo "Building sonic-dbus-bridge Debian package (native)" + @echo "=========================================" + @echo "" + + # Build directly with dpkg-buildpackage (no Docker) + @echo "Building sonic-dbus-bridge package..." + @cd $(BRIDGE_DIR) && dpkg-buildpackage -us -uc -b -j$(SONIC_CONFIG_MAKE_JOBS) + @echo "" + + # Copy all build artifacts to target directory + @echo "Collecting build artifacts to $(SONIC_REDFISH_TARGET)..." + @mkdir -p $(TARGET_DIR) + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge-dbgsym_*.deb $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.changes $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.buildinfo $(TARGET_DIR)/ 2>/dev/null || true + @mv $(REPO_ROOT)/sonic-dbus-bridge_*.dsc $(TARGET_DIR)/ 2>/dev/null || true + @echo "" + @echo "=========================================" + @echo "sonic-dbus-bridge package build complete!" + @echo "=========================================" + @echo "" + @echo "Build artifacts in $(SONIC_REDFISH_TARGET):" + @ls -lh $(TARGET_DIR)/sonic-dbus-bridge* 2>/dev/null || echo " No artifacts found" + +# ======================================== +# sonic-buildimage Integration Targets +# ======================================== +# These targets are called by the sonic-buildimage build system +BMCWEB = bmcweb_$(SONIC_REDFISH_VERSION)_$(CONFIGURED_ARCH).deb +BMCWEB_DBG = bmcweb-dbg_$(SONIC_REDFISH_VERSION)_$(CONFIGURED_ARCH).deb + +# Main bmcweb package target for sonic-buildimage +$(addprefix $(DEST)/, $(BMCWEB)): $(DEST)/% : setup-bmcweb apply-patches + # Build bmcweb package using dpkg-buildpackage + pushd $(BMCWEB_DIR) + +ifeq ($(CROSS_BUILD_ENVIRON), y) + dpkg-buildpackage -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) +else + dpkg-buildpackage -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) +endif + popd + +ifneq ($(DEST),) + mv $(BMCWEB) $(BMCWEB_DBG) $(DEST)/ +endif + +# Derived package (debug symbols) depends on main package +$(addprefix $(DEST)/, $(BMCWEB_DBG)): $(DEST)/% : $(DEST)/$(BMCWEB) + +# Clean build artifacts +clean: + @echo "=========================================" + @echo "Cleaning build artifacts..." + @echo "=========================================" + @echo "" + + # Clean root-owned files (from Docker builds) using sudo + @echo "Cleaning build directories..." + @if [ -d "$(BMCWEB_DIR)/obj-"* ] || [ -d "$(BMCWEB_DIR)/subprojects" ]; then \ + echo " Removing bmcweb build artifacts (may require sudo)..."; \ + sudo rm -rf $(BMCWEB_DIR)/obj-* 2>/dev/null || true; \ + if [ -d "$(BMCWEB_DIR)/subprojects" ]; then \ + find $(BMCWEB_DIR)/subprojects -mindepth 1 -maxdepth 1 -type d -exec sudo rm -rf {} + 2>/dev/null || true; \ + fi; \ + fi + @if [ -d "$(BRIDGE_DIR)/obj-"* ] || [ -d "$(BRIDGE_DIR)/subprojects" ] || [ -d "$(BRIDGE_DIR)/debian/.debhelper" ]; then \ + echo " Removing sonic-dbus-bridge build artifacts (may require sudo)..."; \ + sudo rm -rf $(BRIDGE_DIR)/obj-* $(BRIDGE_DIR)/debian/.debhelper $(BRIDGE_DIR)/debian/debhelper-build-stamp $(BRIDGE_DIR)/debian/files $(BRIDGE_DIR)/debian/sonic-dbus-bridge $(BRIDGE_DIR)/debian/*.log $(BRIDGE_DIR)/debian/*.substvars 2>/dev/null || true; \ + if [ -d "$(BRIDGE_DIR)/subprojects" ]; then \ + find $(BRIDGE_DIR)/subprojects -mindepth 1 -maxdepth 1 -type d -exec sudo rm -rf {} + 2>/dev/null || true; \ + fi; \ + fi + + # Clean host-owned files + @echo "Cleaning package artifacts..." + @rm -rf $(BMCWEB_DIR)/debian 2>/dev/null || true + @rm -rf $(BRIDGE_DIR)/build 2>/dev/null || true + @rm -f $(REPO_ROOT)/*.deb $(REPO_ROOT)/*.changes $(REPO_ROOT)/*.buildinfo $(REPO_ROOT)/*.dsc $(REPO_ROOT)/*.tar.gz 2>/dev/null || true + @echo " Removed package artifacts from root directory" + + # Reset bmcweb source to clean state (so patches can be reapplied) + @echo "Resetting bmcweb source to clean state..." + @if [ -d "$(BMCWEB_DIR)/.git" ]; then \ + cd $(BMCWEB_DIR) && git reset --hard HEAD 2>/dev/null || true; \ + cd $(BMCWEB_DIR) && git clean -fd 2>/dev/null || true; \ + echo " bmcweb source reset to clean state"; \ + fi + + @echo "" + @echo "Clean completed" + +# Reset - Complete cleanup including bmcweb source and Docker images +reset: clean + @echo "" + @echo "=========================================" + @echo "Resetting workspace to clean state..." + @echo "=========================================" + @echo "" + @echo "Removing Docker images..." + @docker rmi $(DOCKER_BUILDER_IMAGE) 2>/dev/null || echo " (Docker image not found, skipping)" + @echo "" + @echo "Resetting bmcweb source..." + @if [ -d "$(BMCWEB_DIR)/.git" ]; then \ + sudo rm -rf $(BMCWEB_DIR)/debian $(BMCWEB_DIR)/obj-* 2>/dev/null || true; \ + cd $(BMCWEB_DIR) && git reset --hard HEAD 2>/dev/null || true; \ + cd $(BMCWEB_DIR) && git clean -fdx 2>/dev/null || true; \ + echo " bmcweb source reset"; \ + else \ + echo " bmcweb is not a git repository, skipping"; \ + fi + @echo "" + @echo "Removing target directory..." + @sudo rm -rf target 2>/dev/null || true + @echo " Target directory removed" + @echo "" + @echo "=========================================" + @echo "Workspace reset complete!" + @echo "=========================================" + @echo "" + @echo "You can now run: make -f Makefile" + diff --git a/README.md b/README.md index cf75752..733f3cf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,509 @@ # sonic-redfish -SONiC redfish submodule + +SONiC Redfish implementation providing bmcweb and sonic-dbus-bridge as Debian packages. + +## Table of Contents + +- [Overview](#overview) +- [Quick Start](#quick-start) +- [Build System](#build-system) +- [Patch Management](#patch-management) +- [Cleanup Targets](#cleanup-targets) +- [Dependency Management](#dependency-management) +- [Configuration](#configuration) +- [Components](#components) +- [Redfish API Endpoints](#redfish-api-endpoints) +- [Troubleshooting](#troubleshooting) +- [License](#license) + +## Overview + +This repository contains: +- **bmcweb**: OpenBMC web server source code with SONiC-specific patches +- **sonic-dbus-bridge**: Bridge between SONiC Redis and D-Bus for bmcweb integration + +Both components are built as Debian packages (`.deb`) for easy integration with SONiC. + +## Quick Start + +### Prerequisites + +- Docker installed on your system +- Git +- sudo access (for cleaning root-owned build artifacts) + +### Build + +```bash +# Build all components (Docker-based, produces .deb packages) +make + +# Or explicitly +make all +``` + +Build artifacts will be available in `target/debs/trixie/`: +- `bmcweb_1.0.0_arm64.deb` +- `bmcweb-dbg_1.0.0_arm64.deb` +- `sonic-dbus-bridge_1.0.0_arm64.deb` +- `sonic-dbus-bridge-dbgsym_1.0.0_arm64.deb` + +### Build Targets + +```bash +# Show all available targets +make help + +# Build individual components (automatically runs clean + dependencies) +make build-bmcweb # Runs: clean → setup-bmcweb → apply-patches → build +make build-bridge # Runs: clean → build + +# Clean build artifacts (removes build dirs, resets bmcweb source) +make clean + +# Complete reset (clean + remove Docker images + full git reset) +make reset +``` + +### Build Options + +```bash +# Use custom number of parallel jobs (default: nproc) +make SONIC_CONFIG_MAKE_JOBS=8 + +# Use custom output directory (default: target/debs/trixie) +make SONIC_REDFISH_TARGET=output/debs + +# Build with specific bmcweb commit (default: 6926d430) +make BMCWEB_HEAD_COMMIT=abc123 + +# Build with custom bmcweb repository URL +make BMCWEB_REPO_URL=https://github.com/custom/bmcweb.git +``` + +## Build System + +The build system is designed for **Debian Trixie** and uses: + +1. **Docker-based builds**: All compilation happens inside a `debian:trixie` container for consistency +2. **Debian packaging**: Uses `dpkg-buildpackage` to create `.deb` packages +3. **Meson subprojects**: Dependencies (sdbusplus, stdexec) are managed via `.wrap` files +4. **Automatic dependencies**: Build targets automatically trigger required cleanup and setup steps +5. **Patch management**: Uses a `patches/series` file to define patch order + +### Build Flow + +![Build Flow Chart](images/BuildFlowChart.png) + +``` +make all + +1. Build Docker image (sonic-redfish-builder:latest) + - Base: debian:trixie + - Installs: build-essential, meson, debhelper, C++23 toolchain, sdbusplus + +2. Setup bmcweb source + - Auto-clone from GitHub if not present + - Checkout to specified commit (default: 6926d430) + +3. Apply patches + - Apply patches from patches/series to bmcweb source + +4. Build sonic-dbus-bridge + - Meson downloads dependencies (sdbusplus, stdexec) via .wrap files + - dpkg-buildpackage creates .deb packages + +5. Build bmcweb + - Meson downloads dependencies via .wrap files + - dpkg-buildpackage creates .deb packages + +6. Collect artifacts to target/debs/trixie/ + - bmcweb_1.0.0_arm64.deb + - bmcweb-dbg_1.0.0_arm64.deb + - sonic-dbus-bridge_1.0.0_arm64.deb + - sonic-dbus-bridge-dbgsym_1.0.0_arm64.deb + - Plus .changes, .buildinfo, .dsc files +``` + +### Automatic Dependencies + +The build system automatically handles dependencies: + +- **`build-bmcweb`**: Automatically runs `clean` → `setup-bmcweb` → `apply-patches` → build +- **`build-bridge`**: Automatically runs `clean` → build + +This ensures a clean, reproducible build every time. + +## Patch Management + +Patches are located in `patches/` directory: +- `patches/series` - Defines patch order (lines starting with `#` are comments) +- `patches/*.patch` - Individual patch files + +Current patches: +1. `0001-Integrating-bmcweb-with-SONiC-s-build-system.patch` - Adds Debian packaging + + +To add a new patch: +1. Make changes in bmcweb source directory +2. Generate patch: `cd bmcweb && git format-patch -1 HEAD` +3. Move patch to `patches/` directory +4. Add patch filename to `patches/series` + +## Cleanup Targets + +### `clean` - Remove build artifacts, reset source +- Removes: `obj-*`, `debian/`, `.deb` files, subproject builds +- Resets: bmcweb source to clean git state (so patches can be reapplied) +- Keeps: Docker images, target directory +- Use when: You want to rebuild from scratch + +### `reset` - Complete cleanup +- Does everything `clean` does, plus: +- Removes: Docker images, target directory +- Resets: bmcweb to base commit with `git clean -fdx` +- Use when: You want to start completely fresh + +## Dependency Management + +Dependencies are managed via **Meson wrap files** (`.wrap`): + +### bmcweb dependencies: +- `bmcweb/subprojects/sdbusplus.wrap` - D-Bus C++ bindings +- `bmcweb/subprojects/stdexec.wrap` - C++23 executors +- Plus other dependencies defined in bmcweb upstream + +### sonic-dbus-bridge dependencies: +- `sonic-dbus-bridge/subprojects/sdbusplus.wrap` - D-Bus C++ bindings +- `sonic-dbus-bridge/subprojects/stdexec.wrap` - C++23 executors + +Meson automatically downloads and builds these dependencies during the build process. + +The Debian packages can be installed in SONiC images. + +## Components + +### bmcweb +- **Source**: https://github.com/openbmc/bmcweb +- **Base commit**: 6926d430 (configurable via `BMCWEB_HEAD_COMMIT`) +- **License**: Apache-2.0 +- **Purpose**: Redfish API server providing standard Redfish REST API +- **Build system**: Meson + Debian packaging +- **Output**: `bmcweb_1.0.0_arm64.deb`, `bmcweb-dbg_1.0.0_arm64.deb` +- **Auto-clone**: Automatically cloned from GitHub if not present + +### sonic-dbus-bridge +- **License**: Apache-2.0 +- **Purpose**: Bridge SONiC Redis database to D-Bus for bmcweb integration +- **Features**: + - Redis to D-Bus data synchronization + - Platform inventory management + - FRU EEPROM data export + - User management integration + - State management (host, chassis) +- **Build system**: Meson + Debian packaging +- **Output**: `sonic-dbus-bridge_1.0.0_arm64.deb`, `sonic-dbus-bridge-dbgsym_1.0.0_arm64.deb` +- **Configuration**: `config/config.yaml` for Redis, D-Bus, and platform settings + +## Configuration + +### sonic-dbus-bridge Configuration + +The bridge is configured via `sonic-dbus-bridge/config/config.yaml`: + +- **Redis settings**: Connection parameters for CONFIG_DB and STATE_DB +- **Platform data**: Path to platform.json and FRU EEPROM locations +- **D-Bus settings**: Service name and bus configuration +- **Update behavior**: Polling intervals and pub/sub settings +- **Logging**: Log levels and output configuration + +### D-Bus Configuration Files + +D-Bus security policies are defined in `sonic-dbus-bridge/dbus/`: +- `xyz.openbmc_project.Inventory.Manager.conf` - Inventory management +- `xyz.openbmc_project.ObjectMapper.conf` - Object mapper service +- `xyz.openbmc_project.State.Host.conf` - Host state management +- `xyz.openbmc_project.User.Manager.conf` - User management +- `xyz.openbmc_project.bmcweb.conf` - bmcweb service + +These files are installed to `/etc/dbus-1/system.d/` during package installation. + +## Redfish API Endpoints + +Below are the currently supported Redfish API endpoints and their sample responses. + +### FirmwareInventory Collection + +``` +GET /redfish/v1/UpdateService/FirmwareInventory +``` + +```json +{ + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory", + "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection", + "Members": [ + { + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bios" + }, + { + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bmc" + }, + { + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/switch" + } + ], + "Members@odata.count": 3, + "Name": "Software Inventory Collection" +} +``` + +### FirmwareInventory - BIOS + +``` +GET /redfish/v1/UpdateService/FirmwareInventory/bios +``` + +```json +{ + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bios", + "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", + "Description": "Other image", + "Id": "bios", + "Name": "Software Inventory", + "Status": { + "Health": "OK", + "HealthRollup": "OK", + "State": "Enabled" + }, + "Updateable": false, + "Version": "N/A" +} +``` + +### FirmwareInventory - BMC Firmware + +``` +GET /redfish/v1/UpdateService/FirmwareInventory/bmc +``` + +```json +{ + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bmc", + "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", + "Description": "BMC image", + "Id": "bmc", + "Name": "Software Inventory", + "RelatedItem": [ + { + "@odata.id": "/redfish/v1/Managers/bmc" + } + ], + "RelatedItem@odata.count": 1, + "Status": { + "Health": "OK", + "HealthRollup": "OK", + "State": "Enabled" + }, + "Updateable": false, + "Version": "sonic-redfish-build.0-ddbc425a4" +} +``` + +### FirmwareInventory - Switch + +``` +GET /redfish/v1/UpdateService/FirmwareInventory/switch +``` + +```json +{ + "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/switch", + "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", + "Description": "Host image", + "Id": "switch", + "Name": "Software Inventory", + "RelatedItem": [ + { + "@odata.id": "/redfish/v1/Systems/system/Bios" + } + ], + "RelatedItem@odata.count": 1, + "Status": { + "Health": "OK", + "HealthRollup": "OK", + "State": "Enabled" + }, + "Updateable": false, + "Version": "N/A" +} +``` + +### Service Root + +``` +GET /redfish/v1/ +``` + +```json +{ + "@odata.id": "/redfish/v1", + "@odata.type": "#ServiceRoot.v1_15_0.ServiceRoot", + "AccountService": { + "@odata.id": "/redfish/v1/AccountService" + }, + "Cables": { + "@odata.id": "/redfish/v1/Cables" + }, + "CertificateService": { + "@odata.id": "/redfish/v1/CertificateService" + }, + "Chassis": { + "@odata.id": "/redfish/v1/Chassis" + }, + "EventService": { + "@odata.id": "/redfish/v1/EventService" + }, + "Id": "RootService", + "JsonSchemas": { + "@odata.id": "/redfish/v1/JsonSchemas" + }, + "Links": { + "ManagerProvidingService": { + "@odata.id": "/redfish/v1/Managers/bmc" + }, + "Sessions": { + "@odata.id": "/redfish/v1/SessionService/Sessions" + } + }, + "Managers": { + "@odata.id": "/redfish/v1/Managers" + }, + "Name": "Root Service", + "Product": "SONiCBMC", + "ProtocolFeaturesSupported": { + "DeepOperations": { + "DeepPATCH": false, + "DeepPOST": false + }, + "ExcerptQuery": false, + "ExpandQuery": { + "ExpandAll": false, + "Levels": false, + "Links": false, + "NoLinks": false + }, + "FilterQuery": false, + "OnlyMemberQuery": true, + "SelectQuery": true + }, + "RedfishVersion": "1.17.0", + "Registries": { + "@odata.id": "/redfish/v1/Registries" + }, + "SessionService": { + "@odata.id": "/redfish/v1/SessionService" + }, + "Systems": { + "@odata.id": "/redfish/v1/Systems" + }, + "Tasks": { + "@odata.id": "/redfish/v1/TaskService" + }, + "TelemetryService": { + "@odata.id": "/redfish/v1/TelemetryService" + }, + "UUID": "00000000-0000-0000-0000-000000000000", + "UpdateService": { + "@odata.id": "/redfish/v1/UpdateService" + } +} +``` + +### ComputerSystem.Reset - Power On + +``` +POST /redfish/v1/Systems/system/Actions/ComputerSystem.Reset +Content-Type: application/json + +{"ResetType": "On"} +``` + +This action writes a host transition request to Redis STATE_DB: + +``` +root@sonic:/home/admin# redis-cli -n 6 HGETALL BMC_HOST_REQUEST +1) "request_id" +2) "req_1775040896_000001" +3) "requested_transition" +4) "reset-out" +5) "status" +6) "pending" +7) "timestamp" +8) "1775040896157648224" +``` + +### ComputerSystem.Reset - Graceful Shutdown + +``` +POST /redfish/v1/Systems/system/Actions/ComputerSystem.Reset +Content-Type: application/json + +{"ResetType": "GracefulShutdown"} +``` + +Redis STATE_DB after the request: + +``` +root@sonic:/home/admin# redis-cli -n 6 HGETALL BMC_HOST_REQUEST +1) "request_id" +2) "req_1775041067_000002" +3) "requested_transition" +4) "reset-in" +5) "status" +6) "pending" +7) "timestamp" +8) "1775041067766120204" +``` + +### ComputerSystem.Reset - Power Cycle + +``` +POST /redfish/v1/Systems/system/Actions/ComputerSystem.Reset +Content-Type: application/json + +{"ResetType": "PowerCycle"} +``` + +Redis STATE_DB after the request: + +``` +root@sonic:/home/admin# redis-cli -n 6 HGETALL BMC_HOST_REQUEST +1) "request_id" +2) "req_1775041121_000003" +3) "requested_transition" +4) "reset-cycle" +5) "status" +6) "pending" +7) "timestamp" +8) "1775041121924146637" +``` + +## Troubleshooting + +### Build fails with "debian/changelog: No such file or directory" +Run `make reset` to completely clean the workspace, then rebuild. + +### Permission denied when cleaning +The build creates root-owned files inside Docker. The Makefile uses `sudo rm` to clean them. +Make sure you have sudo access. + +### Docker image build fails +Check your internet connection - the build downloads packages from Debian repositories. + +### Meson subproject download fails +Check internet connection and firewall settings. Meson needs to access GitHub to download dependencies. + +## License + +Apache-2.0 diff --git a/build/Dockerfile.build b/build/Dockerfile.build new file mode 100644 index 0000000..1785ab5 --- /dev/null +++ b/build/Dockerfile.build @@ -0,0 +1,41 @@ +# Build environment for sonic-redfish +FROM debian:trixie + +# Install build dependencies +# Note: Install meson and Python packages via apt (not pip) so dpkg-checkbuilddeps recognizes them +RUN apt-get update && apt-get install -y \ + build-essential \ + debhelper-compat \ + gcc \ + g++ \ + git \ + pkg-config \ + python3 \ + python3-pip \ + python3-venv \ + libsystemd-dev \ + systemd-dev \ + libssl-dev \ + zlib1g-dev \ + libzstd-dev \ + libpam0g-dev \ + libnghttp2-dev \ + libtinyxml2-dev \ + libhiredis-dev \ + libjsoncpp-dev \ + libboost-system-dev \ + libboost-url-dev \ + libboost-dev \ + nlohmann-json3-dev \ + dbus \ + ninja-build \ + cmake \ + meson \ + python3-yaml \ + python3-mako \ + python3-inflection \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /workspace + +CMD ["/bin/bash"] diff --git a/images/BuildFlowChart.png b/images/BuildFlowChart.png new file mode 100644 index 0000000000000000000000000000000000000000..89c1e2373a8e018b46736a65bc623f9585f464e4 GIT binary patch literal 1601715 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%0A((dt_2WwW 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

788aWx+$`ypfpadK%Y~5_%i|WKt-Rx# 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 u5_3{8HYS+>6LGrp0 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%0DD^-ZS(##%iei-OCM#3QZneUs# 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⩔ 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 z z2E9q^=Bvjk1J^tC*s=;IQH{JL3!*b0+vI|@N_R=Jcdfs-b?NnnUA)ubd$dJM%a|So7ZX z)^hfZsN*=dC=N}7k_8YS`9O1+Y+3H3CItp`>ET6j5AH_lJ&5D~_STF4@cS0O!}F0i z`(8Cz=VBsf@6;1*yTvYyR-<{>lq>l`w|Ot7A%BE}RHG~s01Sq9k!g(mteismO_5st z61p&J6@dXk$-86kMzC&dO*ikDPk!EWS_nDV;X)S%F;GH>mqnZ6I9jeqlj7#X2dzj) zTcvChiP9731vk28+9rPIBKj`+$FzerGKUugP=z($?*e|6IDo6>ne%OcpDSSyvn*;Gi6n-(K-|~IwdsuBp39?Eqboy zG-J@qVOB%K@$2Svg}3iBjW!wY1!X3VRs1x}-U2~ULETWOMNXEEN77>4he&`etf$mE$d+uj>-;uMmgbnEiLSej0?Zx3@w z98?Jh-db$TNPozuD(|?J;tye$MXy`8ckt5h)I^!cOK=@?y_Q_doRKr2a`c32nX!YD z4DQfC=Sz)zy6nx#XzqnxjY(={i&~8cqcv_@6Vs=otp&^O z`|?eIMmVRIgMMP&U~SP|OhOyimIZahkt*w9t5Dr=eXjg1(KH=(-)Dp2PHMgn+}qyB zA+>>-rETxBFaJDMOc$n-ra=N9J_t$vkv{rCcn}xYY@GJLk4+gKU`tzYT>2ji`qWAke2qfoR z4SRmQ>gL6|KOq;&wy)H}Ft4U#av$P1q3{NfCsvWEr8}tOW^FrPJ z>H|SMaQdMAK4~mKzY-lPduF$>bctr)z4O6!wJ7A|Syn?uF*=DplF~rl0{j`!SjD3C z_d>|72ODzlKc`=Czsm3`3g)tNw)-SqbE}{$Sv6b1IDdVYms=&1!_W!Z!IlgI>C(Kr zZ(COFW}6m0_0B!ClNL>XwK(*GzDzM$ZQ7mdiEZHpRkFPWmzGCabi)@m?gNz746JFUH>7K%Z+ytrmNyR5E2ZiBKYQ`w zg>1v^`$^z>vWP�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

hD(L6c05UCZf*pt!%$rFk|%xe!#pcdhMvU~ zJ5MiWO^p^L!AwHvpOzr4BT3rbqDt>H8Ow}<58WC7#`15J$Y!q9MK_!#r3*=_v~7W7-^}G(P4Ac zFhAa$*zzd3e+Vh^TFEGl*ax6T9xH*+F`vwWQ*~07I*c$g-P4*(o>Xp&hdvHe2hL-f z5LoRpPo6qH!;EUyu!o?e*(UWl>f#zbhqa%D0cBTr9L-tRNf3z?*V2j%Tz+95>9TYn zL}Mv}X)xH9{CnVC-vRJZ*3h_45^%`zG%G?q-Qx9Fgi?JMPzSA`jbK-ehPl>L^ zQx~s~*_8j(;_p0gVv#OoLI8&<7MREzuAPBzKR3Y@Sq{~{?4@#3VWPY^z}THQw&e&; zIez_xyG6-L(Iy0@b=~3ImK-@Of_pY zCnsIAhWQMkLw4uMk+bpwq#d5T$ziKJXx>b?8%@mT0cF&nAUwY-Hqq^Q*eHF!& zv>MhHBU|%}s|{`}&ZAPO6oW2w#~DEoMHp#r5mYE$HaKD72iw>D7>+@9JkksKL7|06(n4xd{-&K zxcJT-bkv^F{wcCzckN08Wdtv7EaenaaF?5&X53uOsg$$KR{k*tkHd%|hJDb^v%is! z8X2j*pc-M@yV7D;sVpHypBhsAhWw|S^r_0z^iGvV%OHX_S7=(vZ#OgT@Lp~rss({S zaF5jSu*m|qFs0<18_O;!d5Vd#L{+I=Z3IPOwq3I;F)W2<+C5l01_|neI@CAam|;}( z^+_AHJ+JzRF!zNvGJ*5L9n-O~6S;NfOvx~T*x2Z$swvw?tKN1Dv54k^4z^5XW*K$k zj?WbpsH+NB`lQOnTKosZU+H+`FYjk$(0O_barm6wL~7ZBWy{@ho!lOO*M)w9l>Z@N zx9U^B;m&CJUTCg=V@!Ec8z{`{hOLTBq8DNq3g{O4e(@~e{rP?(tyD+cIDOAdrLQJ! zF;b*(n?n@JI#Vj7;%io&@J_#~WKU4Bc;1PjnDW8%hoH8KfOsgTARwD+n=cu6nn-~Q zN$RU&0t6N4#<9sQD`q!SkTI&IyG5CUNb6kqlD$kp4-+Gb4O&4Z2PBk&_#L#2w+^~5 z_SNy|rj8JlGV!SU zUYQSQ;KZ)z46oZd2n;;U@#=9t6~s_@r56OtN52Sc?zLnHx+<4zRRdq`wbFg081FQX zt!gmcVA=%RenurO44KV^@XRaKAdI0=E1yl=bP)oTVEL>qzG%ZqHKBiDROmTKStmjE z^vI^=*3C!};V*KYL?z*Hs-Y*n5k(jKL?8GT7eoEeyZVM|Tv>B`wP@Ild1Ii6Zz!_3 zGA|CD9_E7$st3^>Z3djwCtVgIUCp%KA2_^wiLAlkr$&yNgv4a8jwa%^`QpEXn6gVat__W0m*<93Wf zRul2gR9w{i`Ub<0pBI3tRLh z&%(Q1dK>Le&@cBjAazuv1hlg5%sTZw6;~B6wIcV}D}FqiyvT4wwVK=`#8f)q8vzw?g<3hVMK z-G_%CO;;pNSCyxLD$(A>JL=&L?ZQR%$TXr`$J64YNJh&%_0yD{J~&bzf21I-S^DkK zKgDWE&F9Lw3V8S{pNs>?pOdyYG%sai-+5+o21LaFD9=_2v;#C=t{rfVqvf- zf3}I;B-CCPZf{BiBgQ+SR-)7fxB2q|-$QN^Ax)P>sxpY#ULw14K)#V`J?hI6crgyg z%H72)!ccdDx=d#o@>v_v4oY`V62nqrX<~4Cit=Z53y0--q~M13n>7^=kW;>WQO(y`%^wH1a79l2>Q4;fSy^JtRKg(A59EjnH4A z*+^jF!C>Mm`;YIsoT7GLkP%sZQ~$a!Mwpcm&@@!JZbjpu`rtFNbZu*STcPc4h(?)O z&)l-`(AmS#M1au-8sa<|Ca$vJdQMOmq)b-I6(Jwe`rl*?JWI`)&BhdMlxlkFKapb7 zMAXMT0WHp{V(RlM>YDe)iC+(*PxQj>`Jub>xO0hlt|6`qW2%)|0>l;r?0T9FG@;1a>l$xQF-y4bMgQn<(o<4(iLI&jiaD{+0{&x zt3fvJ<}Tzg;nF~~0ZwWgX4*WKN^6qefSL%Zz9YD)y4F?x@V{n8N_`J(a_QC3b()1& zdJHCiA7QZm!eHewI+R7&wa9g|o@?avM74v+dl1)?bO`AceSP&G*!M@HFZ$JTP_Dmt zrh*H59AVqRowg2?%L|pa#5=r0JqH=u3S@?$FSRyFlw&eeX@{vvEX2q>cAp;O)$a&1 zt1No^Qj}!wZbtjYTw^8%C-UU$m<^3S`;>1)!~UI^i&ygBPI0f}q{g`T(eb9Ej)vCN zPlq^2Oa6T){AyV4>A~#PZA_{B)7ePP8lQpmA|D6s$i*p0+8+X0?{DcTIUZrgeTQ7k zC>H-JZuxeQNMgkhF>pMaLQch7iX^tZyIM{9>d~N=Yq6>q2>$7jqYoY7lqO>1EY`nI z=N?KJ6BK*f0x@po!u_?va|wC_nte83-fbz+E< zlD78F`6x)97H9R%IZn0+5WNiH7I{L%3OU;1jGo;PN*?CzdUNqPk;o4|O!7MptM)6Nr?&DV~aWn<>;d%Nx5oE-T$Bh)U@d)lWn3<7Dx<=2X zll%58*=|X0UU+#^Cop$u#oVgq*Pn^cG-05BAzc{EsstU)fke3-j^ju@u$$;@{AoJi zhhWtlBt%q@{Jm}2$-KRC3>e+IGEg2Xq+>fuA@6m8!DV58jjdBZJzgbS^CZ!!KAtRQ z@%c~gb2Y_d4!W*#Ps+u2R9G~5&c@Jj-HnF6LTw6p9G{NYtr6JI$-dm#OH2l9L1AkD zaBlPOVu(f`oN1GKf0E+4un3fq^5%bL;``|rzXE*wQ~NNJKhCKAidp@}-96q1eNalu zOR#NI(agdk(8?wNGHPC)jJ7WhvdV-bVQ4fj{n|c%>eY&s3U-4E=!12QmDU`Nvz<#O zW?_NM#l|OszW@C{-$9e@PENLx@9yF@fpfqTjRxv|4$KbZ)8dSGTb{FTs~PsyqdILek00^!m=Y~GZ=3%GUc+ezeuc0r zq62nA@7No?P#bajw({x1u>>}8XP!9%WeCk~Yv?X|q!Ghg=v}Af7@orkVxg!Da*~QO}?3YzgMZfrd?Na_`YY2j8 za9{1t;{OM;K7A$?YR5fK_z9d>cbeoqIli7SQ-CkJ1YxAD3vYzOkB0cmXs{kS-38FL zr{Zb8{oxOfL%;zFxHVPwrDFwT;Tdh&L2#8h$(H5ApFY7ECTXMq=Metw7XNN*X!$?t z0HKsKvhN8`97n*w_rSTaUq$fpvSV%IDdcs<6O0IvV zM5xOfMk%4c4Kh-FcPSYOZrysv#f+dWICzhTx2X#|^gc~C#&jK?CfHtbhF8T+lrSP0=3Z>QVOYsPsx>1 zf4j@C9KF`@0|SlwPrl{_0UUyG9Fp<+PRs zD8&oE`Z8fwdC5rG;ttCE-PZ2qiow&`yX38eS|tZoj;HL<6B}&}v)Opj;LD+_Uys^1 zKLoW0KqQgEZh2W?ZA7;en*Q)Z8~GM($ls1*n}D+MgaouuIA~C`>%&{~{msOPJ@o6@ z-9AUNY&_;($x4WjL@1jx7D)jF<6polX6<`D~;b7ag!o$|KT`= z9J96oa4Vpsrdo!qiGyw)F__prauk1@Sx#()5ePvopePaGH*uwe`c)|GqgG^y^k9%Jit-vh5vh znb&y2=i$Pyv*DQ1qO!v+!M~8#|Fi2*6m-~B8RhL{qhmn1Dh|i&#Djgke19+jh@a4K zq-BTT+dfHMZxn>=kM}6HA2<0)(;`b%4z(aYwsSD}&eT7+A>y0Q-#+}>U>_OUCQm)Z$am9X{vFRQI}5bOqAhzi z~&hg8XsK^{J7OxG_Pi-ZeAMx2;5rD2{Ut z5V-EVoGwpd{`DVz3}kNMgvCB+b`7ZZ6-vo}z=I^IVugI+OR5V{SGucEL5etDU%lCAOtLCNVHGR8i4CB94nO;0vS3 zQ)d-bl9H-1YQSJqYW9*4FJb#)r|4K(Z(K7J65qCs0CL#QqRwRQ#s+n3G&a5j-$ch0%F#2+Ibx`fBXHvXTF>;22V+?8Kb z7t)puHTH~PKE4f*By>#B46&`1v{F)tgxaX}7apla$N^kqW22(R>FKlP-;$yW@nZ5N zmzS@;+1y53PY-{y`Nidck8k$#^9#V$ZY~=YW%)`FLwSg+fJnt>HFEyJnG)ZUJl}}1 zAUH{yE9f^XqUDqj0ZV#rbxf(W?hBHW7<m~$t9$2cXcvfzKK@)?j%;6e zvhhUR9JwyEZvnA8@p;(m$O7VhTKjyWfbp*pC-MR?R%TXK3|XoVi{0iy$q;~&$qon{ zXgypi9h#Undjo7ub`VZ~F;7DM6E0d;3ipSig zH#-$e{P6>!V#hVfIrlDA%!uqKzRQTYz>eQi_31Q`!6as5|9zgg0s@V?YMy^Z4mG#8 zeIS9(5ICzC#{AIxMVY#>2DIXE8uoH2yBd^^0KdXF)piHdIKjek(WIcw7SOD-<=3RfBvORV(~tTqaPBF zNvZw+jO=}}BEq7RYTTLf++kD@0%+t-LThv%S+WEpBl4&s;ilnrDSF$G%&DGp0)8*` zwjgjz<8K=IPMj52AjT(DJf%zbfADn3Tv%}=Q%?GWI~ezl|7yNW5KA#$i#PS&LbUm? zIL811JX~|G6+??=Le%QWI{oyz|bpZ!br5?*DE{ zq}H^jAJz|A<~b`u17N0(wC9M{DI5i~OZP}Ll$#jbt zHaI2WT2g_L`KkZ)N59N7+VwCr1MpvoB_7M}U=Q%G*MewdI3eK4m$|FT|8pD%(0eQ@ zskL)-^1No6*)08Z#7k4Y-5-DSOCO)W;D*j>q_O^wrZ4{ManII@6A(%AT(*Q*hOECe zFs*p^QvP(57Su{zk&=>9wuvfCEIIIRXX{6|DRy5BGKk{;=81mv88PvFIv+I<13obS zEU%|qhWj2h?Oi&OgRy=EFoL9;_vg=;xi!lOw9`w;x+}m~Y^*hACJVeE`Tv`I7FOsD z6yEC108s3rge-E8wgkE*Ta&WHU!wH_)|mWs^(o&L$cUp_y$FqatN*wl~w z_31kRw(s%$f8SXMf`Ykck!NAn{rr?0bT7k@-I4-kmUej5Un^g7ms337?dCX0t{X91 zOswRaFH~)jSvmc$i{Ovt{Qr%A?-JsX0VDFuE;ppZgkjzhu?OC>Q8r6;7@hOi_JCNU zhPN75aj~=W!jVpcAKB6WVbnj`gP--~=OfxRcjxP)U1{U^)G_iZs1tn9f`N0g3)YsT zuQI~|ginI*+p3bh3jf4v{)6#;93U+H4T|(j|Krj(*h>Z-T^2Y*Ix#NmVnv)P`)-=Px;Ekl8d*yKI6ry3 z#!eyg)DclN)|^wb`P8>?(Z8!*M(hd)c#xbq%h@!+lJawPR5Mv5G*6JP_^{Je|IJVu zL&IUS6O^3)<8^p6k9#g=Ww9p-e9|Iolj<oKv z_s8>EaLV+(Fc_Y$;1SN(%V@7pH!iO2*5&?@dUa!aqTAuc9Yq(>&lmQTarh)Xpe8-b zo%=g0#~aBvY9)*zRmZ1<9@F=ED$=|(?B@vh^>D~99OaCUwhl{YUD4p*d$-EtG@19$ z-uDl_u(-3b7~h-C+np6YmH>aQ)AP+;P7N2A!>1k06z2EOFYM5c{2Ry)Bc+7~|8$ge zn48!h_Wf7BdI$Xp4m-9B45VQsXV8O`crShVS~6d^$p|W^UoAP2I9dL^wg2dy5-tLS zQowioZ)V26Z;q?rT+Nkar7%Y2WSIudoP6Z3ZCyJ1CkCB-)@9pe^VBJWK2*MaT+vs1 z!DCJOL&mCV{SSUB_<>knq2n3jGNylF+kbu^Edm?PIL#Y_fB%)Q*P|oNi}3I`*{Ay# z7x~oUyt-m)k5nN}G;?^4#WaVEQ7_9SA64+8|CYs6@QmUAPcHz%+*Xr4mmEA&FtGsgFT>I{6zaD5J(^KM2Ho)S<{U${zu}yNp&l*-aUlC)OpJ zX)lic^nxx``Sjs{9vgN3LF$hozu);^4vYW#_Q81eE-elXe{VYf;$}-!$nV@X$=-sc zh`_Lg{6E&NJFdxWX=#p?%vfET-fja$1e$QnKNhRnP=wA)S0lGI9JkkMDM;>b}R3m zIQA?oc$NV~bc!PEROOA+Zd+!eTKD}&S5L2Cn>a1Ql@72=H z>H$_-Y>(*CkHSnSo9v#Z=s_NEghz2+=D@eo*@O)Ky3wCMK2rjCZ&!iCe*>?7e*NP= zeEW%+5Od{0&hX^1RnCJ}YjU#%&R%XHl}evn7jLC}D(yDXU0j@yILXJ$>$m&` zMdyDGd4g%Yju`u|Wby54>vVxV6iy)Ke_!kJ6YKKLSH=%^CncRs(9mshq6X{kb<41Z zhA4MP+}MHH#Jg?WHQvK);|`18uFkhl^v(6ZioN<0h^M5GLiztDM`I=+Dw!vIG{#<< zYVv$U&zt7gI)VW`FSDVx@IwdI>)2FYz6-q4C6|cH!>^pyv7LWmrN2Grpb%L5vi|t- zf3YNpz5DN)xafxa>!nNR>++n5kbGBOY@Hw3FWlt?=4CiF6ccR<5~Plqlbnm?PT7}q z9{BH=(eES|cI0YG+9eMDERlP)8@0@A$}R88x1o&D>zb2W-bLw$K&d~0P5fYvM~?%l z`|!i<-`!%9yBKjA!G2j%TKb`cl*#qW<%TiGj*5zy6srcjqMEduz4|!Xmub1UHcT~2 zqsDGFjB|?~=Yp0oX+<$`VFI(5j$-e?{%t9C?QuN}9-ULj?BA@#QK2Sw-w1Qv*KO9h z#B{A>%S<2SErVoC@hnyoloKB^QpAX`26@r&8L`p&uOL4oby?Z|jflQ80`%8_k~7Z; zZP>1RL%jpF{@RDAFgH#<_1;U`lg;_tMMLyXf<~2@vB?M6 z;hg_}Y#c>Qz-{+E4gd*40}(bh|Kj@ew{iyCCM(WE7*w%(x{r9t|?6|($nnZpAC1{|@hUYQ#37aR1TwN;Y5s zRz05o<57hluP7>tkh^JbR%FC?fVK*i{`6}Yvr=FoxqsLPH~-P#@u~t9gG75=p+}VZ z|3Y6Mgn;#L_F_Bv4>euu=`-EF_kLrh$0791LCSsYQYOV^GAFV!LC83>d=?^^THG1s zx2GXhEBUc)RNKqo@BGg?+VsOp|M;5=+FTzNrSSwYKi4!UUVxsYpUm#Q1zF#W7H>KeHBj~7GlpGB)R2A``u~o-C<>QHX>qTn%)6fQZSY`! z1a=n>yssS9P$JCEOeLuw+#j!QnA@x8LR{g_lJr>fjK>%XvRY=)E%15i=gzDTy?@-A zKmFuPAz1kmmQ!2L5rrq7G4nJEH&4(?ZR6(XHtR6R*P9$Yb@ytCl%<(a`u)3RRN1i9 zg;`L!Bj<8Z5l%Cn+Q0Na5ik8!u${I!scs#kswf*fJHHsT(AY62qxP$1dDafX{i=rT zw>gz|6`LZOZtHVSIik+pFdfGxp`#Gg%o+rY-S z@`X{4o9k-9-)N=!Tf3D69h6~GW$5T;ch{bfGl^GzhxFJV7ZDn~9p-<|q#&vcTJUzG zF2(G75tq$XHID8eK8oCepEaZGv`I(;!#~-nA5{I!DMU)j<-4GX$$P(*s9+U4&IOS4 zd>xU~ca82ZA8xb_VM5^x14_iV9Ap`P2E!GFkCqFE+%xeFf&%oC z*nZ>q0X@e0MK+ABWXABWpLCM@`9}WMs+C8AtRQC#Te9s|&8y%I;8g+Zy25IP2V@Mu zD&DU^=-2CY#t4aLg}}f!5>#O%EbbsCes%}xT z7s1)Th%4rYe$?83_~bP0>44d)rc%!#yWqh$ZDZBl;TXUd+R!6yibuD}L>)Y>e~fD8 zJSW1p-Zk%kvWwQhE}95^sk_BDJd`!L3xugpKSYHPLk2a@jRk<-dQLk%7)SF0)kyX2 zy6;cbk2L?k8RD;sa~j}NOwW0Ne~{e|+7w=PCcJIj=K;byzpHwphdojo1`yiBe2yqGJd^7Q}d~} zDCF{)UJaTKmEEDoP9*q%*meBL##U2l-|+}-CM)y0El`v%0lVgKp#Of(J-2@=$cAQ0=eKmoh>$m@ns=lZA(P!ET%$r|_uYM!^%^CXCAmy)6(BCwh9guxB zQ%M2!!*d=nSwY)Lzy+9gmZ%PPHNUxf{G-}K>tBht>9%-}^~GhZ3m7*2_RRi~E&Be^ z!t&PZi98?Juy!o3*t#_V22M#A8_MW)5yNNPFr12;$QKD z`;XRzftqrW^R?_-TpM6sDdQ|C>)-8(oPiB4fXM_24c4f6h_0AX4c1&1= zRA-Cb%``AVUOEH;nb$!b%>P7jw;`&4n=S14(!RxXm+`Az1wGC;G~@vr$mU0-`TMMC zxzUHcN^~kfgA<(UpSa1Y-Tb?dHUJm@^d`pJC?WQ3>&sgdZopw?rG+oqVr3a&2abS) zRj=Bz3G{}a|^3(Oymf%8pNHQSVKbJn)R<7d%oNjT3J^x)3-{uR)A%)J>8`{*t zUqr=kTsrB-PR=}*BI>vP?q3JAZbP6b6?g*4wVVH!ue#5kcP3He674&c^q2i$7WX+m zw=vWM{fqd%b8%xT*~d0!nFN17lbCbNiUk3^bY=5tIz%>wY9nMeQElxxA4E`)%x+6v zR_pv=Om>2SaNv_e#S|O^|KJr00>9VZM8I^`~pJmmaurFu)^=EnnWqX7{6^a|tZk_-N}7 znDeLW%6=P&bNlnCt&!K|MRY^keL!}W{Z$07mrq$JpDVzFeQmRHX^th;ditywbLE&^ zG2hI#!C>JNgZlL^|G#Bie=hcONl-?FT=x2>GmqcDborzGcN1Jejad*X6R7CfU7xF@ zWz+lXOL`v|y56GO0!ICrvW7ndvNWI1v3vUG(|)hI-#^ozzcKcr8QSjpHPg*{zsmIZ z(+@!*qIdBnPi`ZNns0@bzy^zM0V-fzD|jj>#PaMGjrRKY1eIKIlwzEBSd*Zlz8cPNkdCqLo>u{wDyI_zUMI{-{8iJ%0=6-lg2~?!0Sv4`RmHv2|EtX%{*1Eb zgbKSYRoEKm?V4r&qpVO!*a1>#PqNid4XO?UMybRO0*YIT-OdL-Aw8)ZezvXr%g2s$ z(ECp;M>2+gLXH|+(LSk5jTot(y#J?a{j>V%gn`H3o$a-8W773N#u4#L{Li&Dv}84iOy0okE|9{$Obl)s<@!Pa?5%kS&2{CYPoAEoeD zy&f+&oD{R(DEDhSbw6pC6tGE*!q zGh%@fR39?F{MwM`HbzC&&sSnPK~IR$ndV=frYkwj}oy9A>=^$$0&gNtM9u9p_IHTvq(UzxI#pu_@dlb`T%Z?8|Ixr6*QC0BIh;7H+h zaDLPa>ar6guf9BJtA75r7~1>MM)1G?@#7zeVL?hj)dfqruEt@>{NoQc`b4ykf&_@9 zl%M#(AM{!DIwfh{xxiVuV!>%CeDV~UE>}-TLPF@n!l50wFEQza&Y~1b6(PuJ&4~S+ z1eibjTtoNq>7a7dkz<>W1Is%orB_7lTU$Bjf>@({6;MyXFK#JqiMx8LidTv)jP%Fj z=4MA|?Th4tG=w12qTc?f9MMOLl9_=6bN^TmJcG%G}P`G1g1 zDki!R9N4zb??(ebe>J2?tZbV$69Ml;7?djn05o9T+lf~h{z0d|m5uR!iZM`~*6#)KWTCAB&^mYko<73yn-4wr1Di$f zAs0Ym8YR!lZRMhuXh2V1zBC9K>*b?Y?0jA)-@2{LonhCW2dFct&MijcmlyBSM_Umo$@?TlNI35(2+G_IR>0Z(${&;pq#V=t=P!1Yq zc0&Z6aM5YGxz}dVtV^NF@?xtk_cHCek{@n_;X1AZmzcz}rF5`7rPgfxt#7aiR9>|M z8%Vu33)8sIOcVmDJFrhiwoszCN01J|=}=ZYtdNN$l!QY;E}dN+0fEeQ&j=c{ZJ_GL zd%&6m+_t~8d7&Bm?&9!UG>tS!ehCm#wWUljt~DM2cXQo~DHM;cmxEm^3(+B(reR#( z9{cGYHNHeciRM~iwp*y$90k}D;sA@=0{>cV@LbG5B%rUV9O-$wpoR!)5aU+d=K-*5 zH$3^2s0A7SO)N&Fu-0!yBVPO;%%UGNdo@{>`<=qazqNY|&n;(=>|s|RK`igcjvPue z$o@rc=6z+QkF`gGpXq8r#3NiY*~6* zk;kjo%O}}ui;)^Q#&>mxM~{o8uiIP^!L~Lenr=Nj2~C=k54Wb0$cYQ&9|`W zL_6Z>FHP)Hl+s0n_ssilvn7Lk8RTeby%J7FC269!$AshmbhXuwfUNu2X{fMe2@gznYRuAa}IVc0E`DptX&oVS5zuR;KnCF7FeIw zp?UL1X3Kw}8R7$6YMb_?Wtf42M{+utR1D*#l&hqPWEO&hPN1r$`)OgLMA3%Jx23iI z&yNu(fbl0}Q)o8LB9t%Dy~CHWf6z{C8;`bPO=8=L)c{Gky;nd%tyYV{vXlk$M5CeQ zG&EmEzOZ(~*;wm2?u}gVpD#>*7N{q4lhEI6^iN*vpjMd@ zDMgBF^$AWJ6e<4KfZU^0kGy&aYFe#g&i?n)|NK#Yiw4X^xz+ZPVF@+H4)9sAUZ$7^2<6$$wZxZ2xvVpxJ0`lD7jz&q<$BDXn6BR;Q$4#qNu(E z1ICiRU4>@b0~7xfXk)SILOr3RtDIXYUuL&KbldB5+Lz3XfT?2e$mJd``?9%}#tAZ) zmR7m20CcD5LL^quIL zvM=?Qw@{#rnC>vO5UEtCPHZrd6(4ztt{mBQ_sl$0+W2#Sdu?6-p`0oqWM;*SNbuH7{kTV6*t>Z1=;C5r4E~F>qdDG zre@pW4^M;aS>Y%cX`(;CCZkxwz-7Uq!U66B?eK~y4e;r+K|6+$78$y6juGe6t-vs& zf&1~0gBfMBQI2!<@Ym!ARXBX?bctDq8z#0A%%0_P?}uVmJeFUuN?2y=Se`DOS(Nk# ze0Kg?@j`pPN!y$HN+1AkFf^-s#jAU&;MsDibK%1!S<432p7k?DpcpFUfW}@)5do)_%rm5tKvfE76iy(cEe+ncljA3Q@`tZf3=RccAmPYs zzr+wpbQR~>j3nlkuNAF~Lp<^)NVseV&!tLUE}q4udyf6YURe;3yhz3BGpuP5NRH#w zip_b%{2KIWIs9|t$B7_5KeF?za;5B@p?iP!0*Gi>@|Ksg>bot=3FbjY<0r9l;&Q`Q zp>#e|`O2v#m!<|aEI(Q7qlRL;vHnakv)M^6!L;a9$JL2Y8fvaAc*~l?oKFd zNK=&;PH>51<$>zJ$%bw%{@%B^YT_T;z+DVUr31gy2{W+8z^#_X)Zu+k%lmwAx@0xa z)&0jR4>Q8vUkTG)36;)~iM`t73t74u^PN_Z+Qcr1fJ|BB2#m#bVa{ zGr_#h(LBe>D_K^lX4q$0EidC2p5VVkaLH#yncn*Bx}fityF}Wz6EDL(gNx%=92OhE zSMnYtOwRa}wdi?~S+osU8kW918(8Hv+Sf%|9UkOtg!_C(R*-ldjXmEhP4liL;1?Ip zpsQgUfFe;}piPx<>XUz3?0C$z_Aq(lN#0SX6jopI8utCle1ht(I2FMT#K)_PS1$JJ3-I&rmah_h z4fJDX1#4cTAX(-+lIuMDVRxIHu$%BL7a^W54>VFA6}|LcOW%%VZGogI6lbI}7lEEv z6vFg?9uCS1Sq=s;wJ&fLu_HJ$@=T{=?NLSDj=GY$6!x`)ir`36Kr?bcRfI`BmZo;{ zSnJ%2AXw`x(&J=C_nCaDesPQerzvyKxlk9>VkN%sSys7!M-?tn#CKX?L7iUKw_8>n zyu?*pf1=CczRDQ|*Kw->NZ;baVnbCNIQhb*A5C+{7h9@g0w%Ls%h>Y;XNNcXuBZ%D zCc|Yc|J3M_(=azQ%E(SBKjMo;6BI z$l;dNnQG8$k-GywyJ-R=OA_W<94{16{QyTSOC z&Q=in?d4f%@~e=>#`L=`xr)=liX44yY-NRf5szq*Krn zhpD&~08ddFD$=;}D@36-ShA1H2<~fs_N@z>p{K5t?U&d1u}0XT9`bhT5l!JGu1eE> zd`XJq^rDCko@?1}Mi%SSPde*aQ+j!z>7L)*NL*w8GQlgswW7O}asL(Fr63R=hIlQz zoTImNU4ILe-=dT=1}{GUZvM|{7BJT#Lfj7XE!~QM(M;wHstpV+qVpjw&%SHJQ>S)_ zsV9if6I2f40sYRka`0FLCHp!(>)nOCt7DmR-CpwMb7-+@S|M;F8CyrWI$3Av&u|Xy zRZ5kB_T}pN!b$-n!U(>Z?29{dj;bcH!JavO zwY8>zelln-2HNgXxj)WTM^dwZ%V&*A#J-bFmeH&Aa2Fv|1$%rohQgB}oS}=dihD%j zmmLWGC!W= z@STnDb;- zYbE)Xn{)aWCVhkL#i|S7*)M+j-!UA$v~2PfQzDFdQaqsF&7drFXP542;r*)Z>70`yFe`(`zqJ?t zxveiZ-mTyZED@MTwD4C6dsT~AB*Ip7?FQFfpEH{-c z#9No+Qh|fRHS5;wWl*pYU7zR} z{9G95d|r+OjW<*t7S=QsYoy3^_l^Go5NgK5Um>Y(tX(`x^DEHbqN|}yrok|bt-_Xs z+`a?M8nu)HUD5CCT(cl&fq5=>rV9Hrc*33p9_e+Sup00OzOU$Oa>gLp^e@o^m4u1SL}}>#?Dn7jaYp( z?BZ2psYo0KDAXvbpWw<9A;VTudpK0?7vBLFh}H6vBzk5F-| zPfg^>nwINJ)__5U2M9ejp+m}j9-ovgP};C2C*RdI-%k$%0|QrkcUEMSP8k&H7n_;J?_MtX-n?^E1-I_LeJ0}B=fnqNlawWNm|^f8HL7=@ zi`}x5;<=0ZmZ(7y^eWrHOWw820vs-Y)1Dq(^yQ5s4vnKv}v76YFHrLt(0S(wY^E0ej^-swC*YHP-9eAJyI9 z@V{!e_+LSuPR5QvUZ;yvL)Sw0P?IbB#Tk^XM`p7E6{X}Bz0{e|D{T%Htx=2qU7h_l z5@~(zgewsAPGXc$0S@I8DEZV#Yz}A4+m$9;HZCqgZ|OT@Gm!rDaW@rztkcS~0r487 zlx=~o2cNnso82cVVK<2rP@|TeOeN}f6K-IPd`M-e4*aml4IjqIx*VKjtgJ*em}1eh z*az%)v6+q{zelWCeJJ|{_tAHXca#-oO-$m^T>=jFJ|PLNVy|X`9b_b8R^F-yg!+!= zg%6UkHkKarlL8HC+=}%fQj0!)Q0v?beAggkpV88nm(hfUmosk!GObDreS z<&VA?yMjw_U#znH;H3eE8g+m6CCvEUw?4hQ2)({@ycN`H%buxY<5LtCy+TaH$6bCk zqph6%%i;%Z8a=v4+=~+H7Q=UmE1KUqd^NTpVYPz`j|MRPeV$Oz9Ld z$rI#a6RzsK*N|6yjOm*DjbT3}Da(xVCCPIgQhYCJ;g3{5e#l>VcoRk?gS2@ya{(#5oD;Hao8%S%r2MWfxbr4sxuL@b-w!cz7U(? zoe-0?nAHUcZhwO`j_m(bK$6a*xUPV%ZwkzZ*Jr9Pooer{u!@&Mj>(CQ&UEz~un~&7 z?Ny1&#WQsA1L+;EtbQ{>_uZCWv?rT&w4?>mq0q`{ZL* zGoLzkyt^i}lM#*g&va+$Sd7KRU|iG7#Hi4y`AAD_p<(P|r)4JoqosV}+VUW;1I^di z0_}(U)W$`%e#slaTUw0n-nr|4yN>ZdxPCoj91j?~70Wsy?fTW|a{p?GF^H#V!2B>3 zbrWcDg_gbpONh^u%51k6HZ^n2ZHa_)h{E(`2DCXy3&&jbHt)_tRp%4>d>RWDssg8(MlUAv2nO8RD&C4x6qyz z^O}8!pHYV$UnuBbU0F1#eUzB8(BPjOzoLYn0c&Q_6HsKiYdP1jzc&x<*2bla2wxkw&T#sg9jY{3xdYTJ7XC8&jU5@je?r+$`ALHrTsf5A~4W6UF zds#LP4!fq8qCZ74kL~U3v4~csBTg48kEf$ohHs?gYxqYylpM}ip^xn`Yc$lHAZ3d( zEAkIYa$weQlZ$Flt~UC)E3tWj{_JvvzRLnBFF!_;$3)GlEm9Ux$GN;aCh=%Rl6!|~ zU42~?EH&NY6#-J>s%xF@!WS^YLf5})OY~TN|B%xaCDgJY8w$7SaIPCmfjXeZ8d~+R z6)ue=q>Eb)`&;(*W1i_c**Sx91+qV`+|NFlPb{b6e6UA$ zQtFf&jfjYkbbfp9Ir`q9%xNw$c5A{}Vq)LQs*A|0_76hy5pLn7nH6gevV^RPI=2R1 zU&phaqY26wt2%F|DRIdpcljluVo}p~cU!&T0`x&I6G>_cqx7Hya@q8^e3-cn-%VuxxYI)JU2oXSHz!B9ID-4i8zl6)pS@zSKtRK zEB7ilT$&ns0{;p^*yGxWta z*4DJpz3yz-kNfa!#QFM_u3s}Vi>0-vl+ArNd!heaTAsDTbM{rMm=SFGX{(+GUAzME za4%9E-XE@S8|O`)Yb43%YuP8D({g*DECj{T=Oj82j4XQmez@q|V_v;Xq)z3Brvge7 zybfwp&P_3r$?YperwOZsS9(PG1(A5Aymz3WYSO zwSJTc(=+ENbgu_HW8zo2DgFp z*|;wiu&M@00oIO11MhNEte9lyO>2tDrsg$ZZjeKYoo=k-D#< z((}eF+L#Q+MJ7HT(<;L>*Kj@J=qS9^{Kb(t1*i4F$)_$I+TB)Apih_4E-ydS)X7IR zVlK}E_cbY+)JE5J$-AHn(Ik9UWr#dkka4N;(u%f{PT5l8$G-eeVz9VRAyzG)cJ_ao zPO%^caE7Fh;GfmNW~%0~Wy>ScH+lHe&9b*4E#qo=ItpYAN7L(|3ZtL|cT?d~1f%czk?b6CLGHln-%GA4|MMh1_d0!`#7orSo z;JR4h(rIRJ2G{!{-Ko-9$$InM1k%8`Vp2}cbHSRD9mr+r6N{x__^$YbZ~-qw$S@~u zbevx`>S~^XPLN8tpla`mMYOs~y1CGmXo;iw6OST3VW)jto}73*XW}dNB(vk;uEi>a z$NcIasTZg6=G;wc2-_N`3gAkSq9(rC-EHez-RBoT_PcG=FI#YvQhP;n1mPo=myw?@ z-k+YGEv9+fuq(37KJ#X|k%3K*hmw+6k~tgIBp9*eo}3RaOUROMIU}=4|M>^|HX67i zwabstrRP9H$KzEdZ#$KOzepq=W>RDg7l9}8PFFu7UN(Lo#y3#p!E+EbJM7?5d`AWD zbz=!0%uDxDIfC)B?_@TAWrcsEtF)SJ51fqDu%Ug*Qbf$~sU$5b9^mnruU++cS2@+s z5X35!F?ob^D-ZB0%FS(RF-6y!OTMh^=ttup;S167Xjnq1-j~HzyTZQMWe?+3uc8$X z%rK<(k=gCfJU-JL?(z999X6T0746-&2fui{+Mwx^HJDEVu~Xzt-CTjHaTwh@M^sW$ zQrWqEtr+o31^AK-oFQ7=2IT3>1yC9JW)b_d3fHVl`u8a7KraVx(Kk zQAO1@nZX4|Zf>s4LH=n>6&R~^vf$J9z1ssD7*Y(q241LVZskn~3e9&S1 z?og-IaDf*Y%H+TF=BZh3eUkqiy7_y_?VtZ***HWAi_y?(q8J^Qjl-gDO2xq`}pRycTuFWavE7q$A5@ zr%qG*x*NJl5$xxMMy$m~MW=t0S8LIkeL0x+c2+%oeOayOJW0vIo3vAPAnSuYL7zVn znbmSBow~P5{+Rqjjwu$I4h9ly)cgN%tf<<@{o|THpYW(`=tm| zfyq>aUPqGMK&K^SPfL>OCByPhN9!s8E%8*ZahPx^J(1-?D92N+Pkom@`}8AqbRhiu zBm6Xt0p7m@A&*cGFrgh7`iYrA6@E;@ulKwwL@&Q|#BjrDuyJI6QKv5#SPr%vT7Oqu zJqTRIQ>W9kn|zbm9dlSo|D+_Zqv9t)(pzaeCkKa0gZ>z!Zsq)==M{o;!1Cs#sqk*n zhW@cXNoPO5h+n;|1A%*9CAkJWWcX;Z%er6DL9IR&_P}?iX3*e#$TNoRrh}@IiPV=+ zPN9Ys)tbi=`=YfvyrYGbCK%APsYd!w+Y|MtdUaI_kBuirPZwhmj&Hr#2%l_|_^uLn zR0c9J1#-i#O3i2OoI^mxMhPqJ`u79wTXf!_KPpc;OlDofzL-;rsobEaWDHhq`arg5m^!@9wS_*MWs=0l+%AM-ar^LeIr7IrGOub{LAM2;FH(0 zTvxpiyXoTgKvur&K2NPMpVeui1~u&PT}d(-e^P7mzKQQVk-tjacXDnZqjdU`Fvbg# zYZ0r$wo~U&fO_mwhFJw1zW7DhV>u|^@Y?AtT*-v}_$;b}T`9N3=SpmelZONMfkouX z_p+oJp5Z%*LMqncol65GyY)7wVQ2Lcw3+KIVl6iY`KB%%2E z+)}vTTpzWrmybOe^6aQ>W^wURO>|sF4QZ3t{&Rf}uq_SdOR`Qm4ltouDHiGl^wa(5 z#*WkCS()+^@5S!!3Q-to0#2fa7s5V`TttBM#YEsOB%#Y@AZlbnGm$Y8>0qszV7Y^- zfI3vjVCl;EAxr2Nzk!{+a$@wH5`y{adM1wvj_5vxm6JzYYaf}Le0oKLME1hu`#n%Z z-UKws)**RSf9!!sm-+_2#9JA-WSms=#^WciKHf1yX2;LgiD=u}DFrezm{mVW>F}ibuk}CF zq`yN|b~W>ZY!%|z+d)lKN=!*wlde(zQ<=(4^*30_*a)d*zX8v8X1*9b3B6#r}; z$ZZ)=FA=RJ6+E{C5eHM_fh}eK-rO$V>w%W92vmb=vul{uMpw1BXokA&UUL(-_&5qT zbag7g*Cy{KxDEUYxBy{2jD(O;*^&JAcv_16aEM%9S)H(};bAo*)uayO)MYTvDZuTU z?F`(^RiwrY9R#|R|Gki-ci6Pwxsj@M!`4nLtMM;0^t^EQqtC?!1qDrAT_p|k_4Ps% z28-3_#VaQ6@1A6tKB0H>nPR|9m6_dfh~b)C9dtQlZ3FPNuA}@KDzg+V#!+ix+~>st zU$s-2CZO;9wh-awzV@JOaOtq-P9kg>Z2Dvc(g5?$4BAk|wV4qLi_-7>e*1($sgCyZ z*^1A|%tXUtNydz1Obh1(eFn zsp8H|O1IJcBAccSsaVu{{@`<>O1C(C&gc8IE)+~DFr?pOKmr`-ZrH_j&LJK zq;Ag_kKVXb%eQva_z*4V0}H@p*sg`dDKVREhV8J#5fy#qY(g5Sv#lOgOHW7;dl#`) z=^+l|#}$njLKRV>Zb|_0#OQI}^=FHNJSj;x9neUTyphrbY47wRE&!U%5@bFb>X#>m z>mW3ey{^iyQ@ed)S8#BTUKxx(8}-M&Li{H$eu}Y>x7cY6E6Z9Bn0=x zEw*aHQ$Jh|WZ>ke4&i>xfg%h&R@XM~TT>W)b!opwA%4E4F{z#EoXMiDtbe2L^h*=_ zO6`)KhEt97lO&H~tKjtn$^7~nB0;=FxbCn0{C98mofyORylW~Mdg@lETQQe2Un>Lo zBr*}HtF-O0QynyPkUz7!x;OzCSn?Y}*>Hv?d}~->m$$m{SWbi{f3$?%W%gfhUbL21 z8IVM;LBs7?#^y#}s?U4I=-Z=CxjneIzojx!!(sddMY>g=e0olUE$p~TqnsGxQZ)?M zNd`$-^#Fgmc->^7;z$K(i>S+pR_*X@pG^P8+8`0slku*WZFSUZD;LK*Dv~2jWZYa6OvoIjD@d6$%(lUwO5m*)AaIB<|{DMI`o)fTJ7X!mNZku zcd!3~qlSn9q-<>GMw{+?#Krz#$E7AieSQ5~c6L*TE_OW*0BNRU$tk$DJ&8eP?nWx( zJ5K7{<fm~iohVJOgJsVM1vaRqGu%0s4p;M@CE-7|GzJ90oULx~v{ZAd zU*`4zp6Q&5i+-dgB%&+1)E`RlGAkmZ0!zx|sdh_{6NFlM4VJx1W3u8;PZzZmqzD8z zj)!!U_x0s1PNzUudhsO2uIHJbjz#>DWven^rmHkgw{-;V?YlEY* zYUkM^C{ql27S5L&3Tw-3%j$7^+KqnknQ9Yp>il6uKtMGtPfz8qymylXL@kJCqbyES`z+_#MBV@55fiv&0gN(vGQ@#M+-%t|jlg>ZXB zKGQl`iVSa;HmO)@T_BTiB1!Ef`W@yGQvbvZMx%;j*OFNXz5L#yndhI7#qjvmP`@Z{Q zKBK&;FSfyUQwz0cUKs&qqm+#_I?#&U&iusZ+kCX4nN69#qs}=mKi_<;ooAm;1QYE8 zKA)Mk4k^jgl7&MMz!%cbuw;^)imt?Lk$pK7cGkG!PVjv~33)B>e!DCidAafF!0&Uy zf(P5#a4K|G<8l_#n8IFf56_9cIEEQy%wR2l+(zI$}OX0x|+m7X3pDH=Q|OtNSmsaetD`Twjxb( zT4TOo3A)HjUaNnzD#sFA6cD5oKu<$`fTphu?6rzw2+>}r#cx|p#Z*mL2Zih~n28?2 zug<|m1QX*Rgw%e2oG-CvxpB&}Va?QYWz15O7_M0~JR(~Os)N&8^^M3Y2Y+JtDD>lm z-R26yNaqgG3k<ZzpiR+CKzFXIK&d+YkTV-|K6SI#IFcojF{1)0J0z&T;@n9T zaIZ`VGFpLVdmXGr%ElQt^nT^Z+P@F$PjC1|eeLrIc4qKXY zY=7ob38;np1OYAIseH^VAJoB)OqxeMR@~dLc3snRDWT?m?9=0Gl}jg!li9&Z-r!;bVO|a$>uL5ZOjDE28+~Gon<3#+`#x-tvL0I4q5a!x-tWxH zpQin9t`}j%+A+J(QVE!((io8RWV`dYAF8#~+Q~~(+Sp|ks{qJl26e>++oHuj>I$-v ztL|NBo%9->*e;5rgD@5M^qH(KIq_wfeR&uB;oyr~{S?P`H#63wPngRMl<-jan3T-u zeaCE1D+ubA2+FndjIiy@%P1vOzZiV?C0Wr$k6q04w^~^5SQBQV=jLM!iy=W>q*#vE zJ%6e|KTuWD$BxD21+x}W^AAI!fEvIz!ZSWn-&9y=Jv9J)I+wi_lgI-_rrN!B?PnlHY%n4Z`|GfCnV11Xl4i*hIpV{Xm=#&z_mKUb6{;l=vcT7dg7mk-`lt8!4)Fg}4z z+y4>Ma{eYrK)$`LTQN00KJH!e>P;W-VwgGa4Z}Nc*SCg$W1GLRP)$k*B_`Rg%=x32 z@0tqI-geB_s*Io^!P&VheR02toHDzFsS2nrzlYn0TglcX@o|Wc(szf*O0lvTno&zRY`FQDjCQrpYb46cgr&{jo z<^dHDdR9n+1B@7Cf{iV#3tTlvIt(jnTQE)r?T6u8A6EoR_QY9DO$cRCGw>=*$q!`0 zp-1vg7cLk-`BIpnn|qA@;IFSdlVR6mv#Trys1;=-%Wy;LH;oo3DWYNr_&B?tNWc4} z3CXIq{qlP6kJv6E>ROI#qS}_S?wz_77__ zeu6eZP}<6cM_I_FzHb2FN3jycGQ z`A!bwc^0Na$CBDrC8z8;lW@Y%nzL7giy~BYlUx&)Vp*>u#Lz*7`` zj-IQWC*b`110x4w8SkI@ z)c33S`s#j?4`hw@-LKyGrN7b3t4U|}z1M~)@*l~3cv#srrltVU{!<8O=MF-S8iWoI zChZ)CIXq%vA~eG)=TKt`H_C1uD(}I7 z6DpcMetq-^Re;gT1TIjCDcUe$Z!W_rz$M@ZgM|0sV2$0mz0b9cKBp^lbHQL^i{3|X zI(6lpc-E>eKh?`;(|=`WlIwkR?piYG)PBWW#`X2=wGaTs`3rJso9QuP3>cO}sC4GpymwUOyDw~?kn_qKnHaSC-L#n->zPnP)oAyJ35(J?YtSwW8QD!6pE8fB4q}!x3_WDbcN-L+-ZbO&*xNrezZ`9ufUPaQ0Jd;12)M^w%YO7mu34l`cuEW%SmKuH_{9oYO*`Dlyx`ngjC$3Au=C7bL6 zo02Q(+;h=a!c@4U3EtWAR1M;%Plxv?r-MTs__E8q&ByeHoyB4t?8=SBM^ffXf;V#v zv>fiK)TuR)`kq-3Jg6U3L;X{(kLz69fE*#cZ_rlFmw&^?m3>c z&w1XzAH0U)H^Yv#SKRAfYr6n|^gQhrCAAfbsdxMVg2bX^x9!pDovJha`6C@USynQB zP~`Zy038LvgSHXIZgT~$7}B>I<923AB-d;r%2z*NSCqnNPWDGXog#BxE|ege=e-OtPN(jL8pd4fn@9~Dv7LbnB9@0BnV4iL%^ zKRdn+5=JP_=-Ihr^?Eoa-$Xs;SV7B`z2=}?nO_h1L%2Pzar}qbQQ7JC3`)l<^av%kVZ;>LP9uE8>F)Nj>^snU;k@6|HS zy)7sT9YHRZi5`N6V((T~YW+Q`_ID3g7GW{CtjubcwAJ_Jk=vbXY&IV|K%(N~R)0!% zV}9!W_4!D5^P*u|GXM)voqQK+{Xt;t(faiCNMH%VXUhoL?>WS=jj(7S47S@jXT6p+ zcS*<+lv0Op!NeuQDo8^MhnbCCQAGkiB-~t5uWwKtg%3a6FJ23&s{f-G0A8(V(b$9L zY^}1EICRH4 z`ySG90@)I-QFPRnYVm2@(Yxvm{nik#$T5xU1jsz`AAsav;?}T36bg{wL+nTbCOrh(bHowOT$+Biu)gvz z%7>8s@?z0Z%x*t0PV+AM_9M1SRL-l@A6f85O;-7wn}QpuDoOto@qfHvdjz;6XGe@o zjsEfWHy6+CChIHr(K@-xzP`S4(XP->AMi>68a$QTfQW8DtUg&fjtUi=Qm6KPeLEBH zQR>i;zh(cvC-l8PSWSsv4DN$cuyb0WI+f6O;YZ(~C<1~SPDS5eX*<&~i_Tu02>|d$ zh{4%n@B8*4f`Hf&W(YN%HEX_5qv9)Iq!usuy-|J5H2U)$;iF4CfbNrQK^Zp8SCI70 zwfiI7CI%|+-5V3BU(t9kPhWUGUru_m~u;^pg z|ESf+9<-@Ef$~#_G{tY|u!Nc7E~H7qlm5%%Q_5ZYjZD^p-0!bNv7kzmuK1_RW-$C? z1b<4}=NBoVpeDqmk@y#y!?THDoH@R#C#MB?#V)fROCY1Z^xnE8@NxmT5$5>DneC9m zHxD~HI$kR;KlH!v?CWdIcWXD75Hhmp{>2~tOJDs!zB{ncQ4UG*x?hzIPdA{(*TN3B zob9K^8)~vx%SxLC#V0rBBcG4j!q`hTe#Ekk>qo&-#06eII{d${(Q#Q+Rx9aPS>=!e zCy3YG2N7!=yEe2$78v?=^*{1^GpdE;IH%iG5;S-6Z{oJAZD{*DvC30Smy0Vf+hsX$fGZc7%>2@3kUSpd%OT#6sQhgx&{0sPOT)F(HlNw ze6&|}4kZ?@1A-~0LXs3tw~^VU1uM%lpd8KUkazPrn(_({kuGkJ?LVaMZOyWVz`d(ZYpP}c}1!Ojf6N@403M!ih(VeN8 znVIpDU1Ob}{*%G|{#ZY2k_vG7Wfnn>^pB46XSwf5LapU~jfBS>aM9B43TpwZx%kke zMQ0(Ele;K*;q8y?_216UzY+jIu?JV4(k;^d!*YG|E8a27$=GY9##I*gU4=G{D)5+I zwOiCXurARILyFfN>Q#W19KicF((re+`g!wG)ZF&=c*6VoMn(ctWB-c(e=0V>*#{%8 zijD34nWYCL_*WQnKnSMK0ciH|OsE{8a9B?%G6tNhux7(E z$I@?CYujz(YfbRN7Z!M*rz9vf#C@j*`B#?j2hUJ~Ygu#{eSZ*aepWby<$ua{m4L=lG1RU7slrmnqsNZ$zHe0l-SB); zaVzLnye11l;3h#K!Is_s&Cm+Kb-`I&vEE8Q(|B&V7=gl-fEm6I1?923+X(_h>7bQe|_H->KC6TJGYwFhHnh zqEDs#7i<3Or@nZn#~lC$5%$=Ze)^ePVl@kTJD@SJx9Df5g~kD7{Ux?i?|K@vhLD!= zfvc}mJ18ZEb!hs{ezklQFNF;4=y|$rj7P{X>jgJ;U=UQWWZ(a+U9GO%nV$akMnsw7 zoK|RcW%`rE8HxJTdJ3kO`VXRo)I@W(fqKw0{P(%TZ`!FZJwH5*tzEpIP0H;ICiQ(A zwVGu;Sb{4}QaguH$vO%tMb0hndu)R!bnEd#sep0`vin~&_y48geKzYSE5Y`=9r-N1 z`f~VRn0-e2SMH0yd#!!}L0g2v{UcHEhq8PO*zY9a=ZAwHdv7un^#whtu$pCDgbfS~ zxDe@>`lp{1cl}S$-OtZkoF)jDr(e$h?1F`7%DPh@&(Um;g`qjIAItg;8^vaA!LJNU zlua$^`I*uC$+~>!gbVY47`Umk>t{IJNq1p<6M|OuQqy5MIg_4@)TECgb|eq4$Onjc$HUAEKIH=WqiQHgSZ*#LOsf^OJI z_b?*l^Z=8l^@u9~2kt8@IAG5-Pg^Ysn${xEfJ;y;<^RQT{x|D;9Cbs^F=%$-j{`ur zLweNSgKFn~xMVx3{p(5~<$FEvt8}_q12?Ao^ls=_TW5|8{|ifcT;exW_5e`R4HlBm ze}84a-0qGlR5deV)@bv`jx~tj+TPo;OJ(+)d$ycQ3cZ*OT>daahtXw)hZkzmf_Bdg zmkAV;{PNMSraU*dZ%KHnvC#ZqTmmfy;@2?r_@CV)D}hDr+Ch7A?&9+$nx)3m0ETZg z?%XDn@82DJ%Nt;t&s#G2Y0UaM%bIvuXtTyNh{|8X)3%ma`>YbTcyH#-VnZE#zpxe&108(~E)|2CPSHhZ=uH$8e zf;;0}u*fDLIq`tO%1cA_%wwr;S>+c>UcR-6Ukvl>6X}S$LJpx8>Gh>_|Mkf@{}TWf zHNk~PhUs|dW(c|vCLyl5?O4BZUkf>tYWncu)si;q^h|?>Gj{X^Tgy@e4J~V<9U~)M z(c`24C9Cl(^Vo0$N?1^s`v=wj!U!x-alCoB_<&kY%Psw;_2Y}|x~!O)>C5l>$WTeK z(CTuCC=2vr!y>;chb&82GcKN1U}4vlh5sYNae9LQ_y`Bn;%Yy*#!|Qlm4r+u=yhBd#1Y#JVhLDbOK zo3s?b`Lt?a?yY)r-&|EE)n(zw3iRKO@=sCzr52N-bt!$0;p^?FO~)`E4}fWP203ps*qiy zqh2h?M`Fj%-}(hh@`oy$3m0BP5IAwYEc>Ue6>dMlasyGb(jnrXgmc~CV+X2W)#G3b zcCEl4z$FKgpT<4Ou|RtS*c}1^n+Tr^bfR%wB0g<%30#~Av0p0K6cWkN*~hMH57hsJ$$z+`Fdh*~ z^3r0l(uv~2fQq76z%jS0z>=f`OTu|QJ&pbMJdO&D`7^~hwncWp`EM8F58MJ6-GjjS zb~Gmsk``hUqGvl3F<2tI`)?v|iT~%6gQAEoxQ^!j<^m`Dtbp^*$`)S28+ZY3!t?jV z+xb;a=VDDW4qKn{A!|$#gzEBy%%P11Dz0uYWHSPU>2nk$^{gq z*D*=nx`n-*HceS-g}(K2=~}Ac*#aNh*4C0KuKyl4&Rult7Thm+RJ&P}!QDTQqhFI4 zrbSpdV70z!ay;=q+w#G38R9I0cYK3|Vtkd3^kUm?4P9BfF?ELuIvv?j=Ob`4kPXiP zkx?aUl0vOlj+qHb&~SiTO-!4DAL9Y^e~-6WKVXbYHZ1p z@@ng6lh8yE2zpo;ywa`{7ISNt;SNRZ&oRQQ+E;- zhP~gLTKYy92B6_|?FwELQ&qu;f8rz0eLyyphoAXv$duB*`TKZz`AEJ~Wr>^J+D_<= zd8l@F>Fb|BYl<+kr{olM@H$0YuX-fqn zT0oiI0$li1$ahNBK|*y6mASSwx&6go)ID})#0hbH+`oUce5~!R?+9f%vZBEwUFF^P)=)X{E~v|K550K)U8{OxjB9Qg zP_gWkY|XQYV9JfW-W3gyI;ep_?&1}=>fX-)&u?o$JhAh|TM;Cvj%LBiEM-tJBpHdt z4HThL(1${Zr3GZfSN8g4aY5%2W~Zy%zxjM_Ca14z6!Py+%&H{dKqtf-+(CUtV&BED zz1Gj~xHW-WVbaP|&;3)K9|JuEA076yVsmS{YJ~9(gVubg{_z8b(pS*XO;5P&dT+Si z=7)k7J)pSy&gXcO0}E8Gpz>@;xN0Q&Di1B7GMJicIgJhsyk@}5%0l0o;02_Hpv3JV zC+vPEY=DW$-a^9~b~3+7yNBxd8znt`RK1!-#IePko8@8V(IkIzFz>vYx}tnA-gKCc zUj9ql#QY$MPy?ofaC&jYP&}$()dq``wMYEh+g0mj50rfWO=CXx(wbA{v0~1a7|@(WY=Z%)09t+{r$h&ud4z3^Rn3oYyva{ zMqrSC^S))M32te;osrkemtFOk13Hwv5pdI^w2!CpPLsK_1WI~-&Rz{4K!bS$=%o*)!^VLEhQB^Fpw1U?ws9~xJ*xOTjk8yUJR$4 zoE!_s3;UOu^x5DZ-D$=OA+On->UH~s^uFAbzlQe)}}X-ZvvH!2aNWbN}!X;HZXb;Ir(H=Qu|3+62c^B<=bb_*=e#rd8)jq4V{ znI=BcT|2drdM)WVqv{h^QT7v;U;IN*{u&8}>JxV;+Q~$oZ>|{LPHc4|X!tusmv^Z0 zYFrD>C7o!$sz)TTOK5?P+CU_78>i?#J2?j4$6IJ2l+1#Hg7l4hJ#6W;FPdwpJX=yV zgSt~cJa3XP&zyezSl?h{?uI|KEpy5y6UqrsxE2tjMrNtsRL`@ln~yMeP4WNEDE}Jo z7q4!=6i!oSW2X~6=91l# z{z&-Y?al85pGKgssySh+BH zVIOzueR%fI3H++U5yn&vKmYQ=p9ezN;I!Fbu2ziWnnUuy9%N=ivd6}9-?wo=9)NyXtsMve_0E5B#1E>OiAoo4~a zS7b*1zP<-X{YNgg&Yvj$rvpT(D^6Kxd|a)_R>W~MAwgswFzW9E38X!u(v`osFp zeQWJrsJaEw$uy>i@3}*vhy@m)Va~y8tABg8<%D{H2~qF|^BJQ8S4A2gDKW7}*tf%W zWN6~C3~B^N9rio(BXnhbXuUxmV(|fQ;L@;d6Kh&uL?6{>)%ipS zeZjJIr~qCdJ<^#L^yjhu=Jq^geRXXo`4jfHMH$ZvJ+^&Eoo^AS9q~qan*7I~rvavq z-vm74a|hZ#Ku_HeVVePQ6^7+YRRU-3k>S%FM=7BZb=Y3 zB}z!r-Yk z=$#Jag$26eN8?XPZ#+`Pq2RrI3YR=Uq~3I`Qy>2#+0yH5wYRs~8MI0hf|*q$UJ|f| zGS`Z;XTrt=kcR#_h|$QY;zGmbkWkaiRD%(XX=++osn9L>M4k6q`<7O&X}>m)%f9<0 zxx%({z*`TpyG@Jl(q8f{A6#8heIAtR!pI5{=&hwP5wfPe18fO{!}?6X{_Z-D_WE=? z6OCl($3Vox=PVEQZaDSTNEx<0)vLFZFzY_q=8xte09nYNtmK6*_@rz%&DD5Z_pG~E zkGK=VUqaSjaNCP1G37Bd&m^x|V5V)dD^W7n6^6EpM3Cj0&XPA8k63zO5d@o>YEJHG zd|G}j$DG#;$)20R!EkSb3OJW?}ncJN6KQj^Y3 z4(wMm@9yTQ@IpqcbcCD9(yV#=`brBW=J8iN;r@qwd_(#FMBbj9a(n7==HqePtq>Ku zirK=Mz0JtcP^8A|U>mVQi&2&aze77;cR&LdA9Hr_HR{c}u<4xVSg9j0OJUBBjO~pi z>$8x9D)!$M7wQi7O0xa|Ii)u1D-qB>RC$pQAsZSjMFMT>048sO%~{2p0?HXwITlMN^_fFztv;w?iDr1nB}$w~wSwGX(5aLv+%GI8 zSy@AMe}n^|UyZElO^L#R^BeehD4hnuD3M)Aax^{ZsGD*HrB>!M^(*sn zIS&HWnP!4>EPNc5VAh*_iM9oWetULq9QDKs)D<>%i3}p&RA6Y97-9pnzLy|h8s==T zYJab)kHL0=km2F+E98NtnnuB` zF<9UJe4*yWt$9wd1(=*Di5)?TMphv<#cEvHD-}b=l5UDB%fJ)sVND}E-qKmornOCJ zqvk~tk%g@ZcU#|OzKJV`nM=tZnhlZe&egI?4XXs*_r!s-GHV>Ls(H_&31TS8Hzi8C z1bbkGHa1ix(&YCV963*w|HpX|GYG*UrR^9qI{Lt z7=O4rprc)@LN_FuGmu;+mP=#Uxm`Qj2eb0h z*o>v^c!k-%wF&pmaKD44A|b;rcZTpLfs6UZ{UfVIbqWHO6K`zDTK3Fm5v7C0FQ{~t zglR&({r%fRF|3u5uXAFq5yeQzB?s=OwyMpjtI)*e1=_ImoL@}6?YLY&%d5OOW>O;( z^0DKcbiMV;{}hn|Exke=7r5}+oDtK1W$UAJ-7BU4s4TL-PG;9;;>>+4ph9fKgB9qUhRO zys;%$F`J?JFeJfpp{(2RkXuq9Q@Z2rG_&9AiX~g0>58oa{OZ-Hs+QqegBLk%_0ne- z9HCKgG{$?8>P|N^M%NlBA`M!zTwl9nY5FT6dbbxBOc}-3HAtGxmo#3ehf&K7ueVoF zk#L(e_C!e#?sPRjzAImHD_rlLFwMMzDMk9ukD(0*m*%K*->i|m>AU)p0{K#d zxIj6utbjwYrnrdC^)ih4@O{9AuF>}keC(EoqTzv#@7x1%w_IyRsgev0o5Mm0bR3)V z{aD}2mEb&p3OR1PZb9y8G?dbk__$Xvo=fhP&OlRaP}P?hZ3g!moQZU0&E|Dk__jF* zX8JJW<9~$uUySd|hXFUt%D6vGVn5K{=mcL}DW{6RLy=3E@>_kdajEWJ+Iw2A`Mf7AEF~ftnUY zD52Lz3)d#4S5~B>@KjpXrH`T%&iCiJn@1gb5Cgf1Or%Jr^RSSY7n>Wq^(n3e?)2KJ zj9RJDkLe?Wa7>QKQ`|~u7Zs|Qva0qfxyI9&+$C)1E%+QJg427c1tBUhwa{xSZBJ+x zvFhNTNR!t&H7nt5t1B;`WT7)+YJ!j(D!@PNhqa0E%uNQ^Q@F#BV%JTGc3Nb}?dQtF zZ^{2RzntJBLUfXsiBP!G*C)MIvd8|)9FrJeu!wI80I64(l zY+dhD5?VF9JS1m&ELH1(?}KXm)4e6<@w$8R?>3Z{-zhx*j`L%Hf4aprq_yYjiLYEG z-BWJQPT@A|i^O)yaI9Z{-e~DUt-)m(MBwA~3E*q%iUJDG2eGb=FB<9%8MljsrLU7- zb9{PLJ71HwV$bISqhbe)R%F2*G78{}6IJ-7B{*U<&q*kb-j(z0^7QLf!Hxjj^+rOC z`j1`!L>nEh&Jy$~w5^%i1u~Tp2QeUksYX;%(~t!Q`1{*Qk!}{{Bue5>&&KwB^ge%A z(mS+hXIOJ@l@V=d?jGyTRLIzi8Q%zl8!O{Z37REc5yWoH%3kLn8k3Qhuhz)PtsdK@ z?`fxbvZTwT*!Dlql#&*UIck-!!rvMkC-3&v2}$#Obl2apb4`T#fw`ek3r;^(R3&`S zA%myr;KXMbr25DyPKbliP1n{;`TQacE$z#Y+jh$Miw=A;vkpo+TEljsPQ&DzUwSNm zL=8WPuTB?M2hvDBgPs}sE9^Uc&rP02^7YnL8qVJ9nOI2)2~Ewc70lhqt$j*4nwj{m zBV$WwL>%c={A_Vqw?#!Y1pBn^@MVm~^+^&wI-1NiY__!%SyfHK_ktb{YK99=W;~(B zU$?J0rkp)IAhH`%WTmFqmHGZIex_1dpL%LcY8&tfn{*-zn~)S0mqVDs+ArXSJTDe^e%nFW$##yNLWK)YO&6|D5CZa1 z!Uyvh+KSK|wDMP+=KH2yssh`W#wujTV)ngY2ZP!7^K2g4sR##d^6 zcN@VyE;ikD1ftZXS%l4SSb%3iz%}Pm1 zT32rF_2O*5PQD3cgFIgf+8i9`b?>$t?H0I0igwLSPO5KqF)Jhi%4i%NB26=pms>(x zeJw5a)hhwa6H4-e1*%>{qW*r?)Mph9so~ek)W5e%Uxu%L6U1DNYM$BNZd2Rsp!F+% z#zPp|lt!6RXqFp0tLMAY8br{<`(}qq`nAIuw>Ok`@N7dbpFViz_ai@Kp9t5WARPj)nXQ>w`3v!3wNa1TtlzcBsnM7+^u~DN@$};fI zd35M3$IAPo9nPHVOedpW7fX`4jBY<7C;eDotb+8gPM5kOAAId%7Bt639YY*WpN zX6NNtUOAc-;?3CE1CuMkI57aVF62X@)-y$8>Aq!HQ9Rbldn4@hx>YL6ZR4`xWXtTb zlL}Qq=XGKxQq{#8mL8GSER~UWabrYdsiB2nXDOwH;)5ih0g~{epP|uH0lUdZEZ6Y~ zxa$L)Sy@=xv^bl-b8vnj5?_2m^EcF__PFS7v_V^9WAj+%p^|ASs3l-ZpN4zLdM1CJBkB>Thqh+Jj)mA$jf-c0aqH=mifBTJA=)K z?H^W)4OTem$RUNGLuL*Ky{TwC4Os0J<93%7EqMc9uXv{*Zx=z}E|Dw=%>GUbG`nlw z4ny{~Cu_#JCkArPa~Nb-#1<6RLI!dT%YY_yi_1U;MZ=D_`F?xDw=PoNkA-HD3H+sC zKkMacBR5&W!=?c0mf4ddq=Z6S7kBOYwYdWpS>=N`wwI-w4*hmIpP_8wC(qcmc#m|R zjdr1Docc6v2XDPV) zW<8mDphPl_d-C$~hBINXhl7rr^OsAkb>4t&FXx@Fcp_jko(XkrT72a1Knw$*$kaTz z)cD;4o|r45IL(mbN}a$Uja0(jN^SGctD(0UKo@$KHO$P+3bEgl@EOTh0+2?+WWk{! zb1V%Cax;%<5zV1)kL3S$*1y=;U;2^q1v){S&gqA6{n!}#s*K%kt4MH{b3kZ@UgG^) zM|qGgkZgboPMU^q_M%Hd^6~^tQcy7uCxJ)5QO+$f(B&G;=>PG9(p6&v6UbapSPaZ+z&f~1T-skZ5j3se{ zLj;+S0wD^wh-e}kwVnV2C``0^2rBpoMgUG?d z-Mb@r-`F0^<9^$J-C=pvy)D9n|J6BIq-PtiYaFr&V^UG)wKKlbn^kf5%%v7qqR{4+--f!7QK8x*aOuaz7x+Bu&Pp$*;itb5RN9F4ZOw&I0s;C5BzH>(WaDSIt z=de8Rnvu-C#&7^jUMaI(3V^x7=)DP8?3}sy#_1^9gXu)ia;04+<1GxP2t8UXY@?`m zXyFR^)Ec=|ADLOCc>r)Yj>XPoX6X%u{%pzqLMwA$(}V$l$N;R+YW!A26t9EC*5V*5 z;~VX#?DfFo)DW!deYr5kA!(KDV_|F+6wIn~S3(n#NXp}^=%Q0}FA2)qym3J?j2gfX zVYlt7=5UnHrwI5ejGD^UoeelyUyF0c`%+s^PiK4s>46h6!~a^HCf0Kt@+(-ETp2;= zm03p)lZ{#_Y~X!&t1+-{I_V@N@!jg9yKiotAZ=^9!pW)B7Ng|!G6l0%qsT0*)zy4` z2bygoPr(SSGV_=(DT7qCrYRqdm5K-+Ofg9|^i;j^>*2&_31w8OS#>&hK1id-j;?M+ zoIR>X1bet>$!5pCl=W(KM~Z=`Q;XTvh4*oGu<)5joxKWG3=2qNGBV~H&-1#5s=Jwm_fcVCwTEE8V;p@x9ig4_d+ww7m_iImyHTY%t z%vyPqv`=dvwv;$t(xlNL-fp4pHp&t8cf3c;^^O&!#y4zAr5=yw?F<&!iX`C>p9q5O zf3(?e)9uWt#_uHiDA;vh`&y(azhw07p>=4AbD$rJ~mzO1VH^zw33O*OMz%u`iU z%P-Ksk_AorAE&nm2I{5f-QQp0F{aKQDbX)7WAD3sub&4ma@6%o@Ouz5-yUr*l|EQf zgoX3hm(tMrY&!A}UcBDt<}e|I+gw>89v-0xpT^*IOX2k*%d7<$kz>As{=F(`6KS$d z0alZNG#EocrJ~6~$p!?1L(YHI)pA#q%VI>&_<*LDh2+~hg);6uurV^vt-jQ`m&M}V zvNNnUc0Ti+qCPw7=lC)Eki)J`&w=ZZvm3L++ShBQmYn33F?z}HUEf=r;!P!~UJA_W zTmcV2R%!Q)VN_jG7UTTrk^t{V*BIy9Nrd9bNtJwB8b@VyLiSPv+a1+qcb1k5Pc2hW zF}Y|iu~5fC1qa!w`pwynfvfn`-bLdrnrUm*8tLr#_he{DMh;}QK{%%hx0p$_8SnLj z?2th~z#`kLNQs2kj}>OilXYKh$lPlth5(~xT#(&e&(6%BQnlCjgyZ?aAXs6~ z8BgE9P^{q%Io8h7xTlzW9v`2dwrrjDaZInq&4SeOD06P}p&omRNSEUOAK8Ut=oTk% zNN+3_j;N^?i&4#L_-CEhb{x)^S=X=(y%$dbp$_X-Qp5}f%ogU>NbXP-Z3o#0QnB%A zj5;K6UTlDaab;q;4-K6qLhhpCrloE*B5zh?IzF{@%-YkQRO=QxjR& zP0o;f(?}_Y+3q-iF~O)f>mL+xg+^MGYwP*I$eAMd$eip~D*OrB71sEazG;X9?RmeU#y zPBU=NZH(LB!R(EmDgEi5q)WGCaXhOi^3P8BMB%}!Dq@~qerVDc90j}Mhl$EM39z(=^i=3EEUc<7# zO+cGwF><$#J4t-tEqPFMCs92S9L0VMjTY^8eA57j2jZ#Z+V=t=WWT_0nts_Us22|R zK254fQD}FPkphS=z($%E>5L50O_^R^@_4QoAjR^iMEF(r%Iku_~MD1LbyQYyT zQ@YEA?LG!BxH#p_X&*S>Ma$`w-LHGuyZk&-J1K_jXmP#K%5e4Vyde>6swKQTfIc1S z8OrgvW_WGMXj$Pd z0AV6%7rV&`KRi*#ngl-ITl_7+*wCS?Zkq2Urbbj8<=P;IbjmX8c_)h`X(-RmB)MqB zI<1N~*tfKG1I=o6bR0T$uq|kGoi_-dCfghKgvo+#zxvBOmlP{fNctyTzy$3m48ReOH`s(cKf^ z(^)VA+eZ1f68<&=iQtR1eDZ>XRnydPSZogU94{2!|mX?+w z=W>3smF-|%#fe{~7W=ByuHD64!{qY%Gu+WcU#IhOn9NGI?sB4Ce?2@h=v~k{+Z?6> z_&{$#G?$R5b%7I2y~x*T3o{nnW@RQ@LQgS0)%pNcZF`JRIMYCZq? z2@K6oJ*nMmy3c&60P1c7Xy$Ph@#L7D_S&_Lf$_{bD&!dOIEMug^KTmj1f=Tg{a0S6w-2^m zRGC_{*U8wM=Qi4W<)GA<2G|NSD!GEQx{QifO-soevZ@Zp(}{!o&&gs37r~(K^}+8N z5eV4uZr>7|JcyHNg#44?o4pF1FRz0 zY0fQ>o07OIxSQQ?>SsTBX%4lV$Sv{?9F2^d=YhKXZ3nK?(iZ8r5^gqq&%akip#w?` zU*)Xu9-xC{&(#W~&8nlK-8P(xaXj3D&wk|v%Y}_KKn@@jzejA+ZoM(bZhlqqc-{jR zwxuD-^OIL)ak$LspWK94O258Q4{v~1EuUuBcpyNTwgALi7u@JK1QvfZfi3a5#3fuopM58zUqPDVJ2Y1;FiTSGrj zTTV^JSBSgovN!x5G~0VA@v#V8(X=7Jx#_&;q$KEQ6IGQwZvX3w^gFmVE5<}a<>h4A z*iQ1!ghuHh)q0e^ZBh+BEP++ni2>KHTgYksu0Z#2nw`-SRkL(kngD&Zn{d{sZfJhy zZU(nEx7USe5vAurFo&^Sb_1QI>syaXXFdJx<@Pp~7B->xinN*My9zS4iZ|ihruyUf z#RYY(LvMh^O!3_%dA&6l`4)fW&K)%!+9I)lTWf<6aHxKmCFIcCbtgM zZty!+#cdHk`_T1rZklJ**A#Pfmbk#>)X^|$8eUTij*_)cZX%V}NwW3dDdS3Y6+MA` zY=0igBHmLNM;oI8Vl9$(zb6s-i|`7iH+q9lY<7z{_Y9zn?BRn`y0T;+!>=XV%nitE zFf%mnO-_27em?NDY1zh&Xmo_kZ z%4(i0g>DjPAs;A+rl%1kzC+u3l5?s(VY=KwFCW?*aK#fS=||Pn#$%jluODiZN;Uc< zOC32=HtrqhyuF>XG09PR4|C-tZi%eoQ(-(& zb2TmBcv#BLUaolwh{8>K>$N=j_yt%2)SJk;4r|Pw@E)L@n>0bIDBA3uTiY6-}0n4h8zzpn*ArX0|0(C~F=h)2+#a zHg8Jd+MXu`F>6WcO)c(orgu)9nd(;dd6`?O>{WP9`V$E*rrxmK!#6x#xwsO(6u^|VP2-`IZ?N1x&U$oY9NxMR?$-8e<*YPn*?jH z1g|j%^y@71&f$IS!DeCb+L+DT;b*VWVj}&>_{No7(X~qCZXP7`@jI+x?AhEjXWgA+ z@7}TmXr3{D+A|Po1otM}I0hlFL89?yHF^cG5V-U%;G_zmV@EFyzGY8j(z1#y%!BZ7J?l90P?$3yna36qO}09 zvv6`(E*hHj^IOv&14P!Qo71G963<<*Z;jyQ+Qg~*1o#5e-tDu-Wqly$$N=0-E{jWS z8u|u%`GfM=x-KYXGu0YdU^?gCZTUg}3OPp^1{E2wvGm%vVzXt@w#!UY__u3<u8t6jMcxDJpmr#1Kj zjE07$H{T`hsclIEzi-i9>7yfZdtOnt$=|nrrXax_iPaK~EC407=eHeEkV7GDm#z@+@ad=nI1i2;gjQO;Fn?2e(c zVJr*%XXM1+zm1PSAXjDx!g%4ry)1g%me{FyWIZS6>_M^Kk$~c8SScbI<~y8#mY3j} zI@>mAaN#n6w2SLL(FYTKsP|~uwsGWKC#dU~Vd&WJiIx+xLNOUMN^kj5 z2;El~l6(JX*H@05om~avB~9~i4%l!I7+(p`#CZrxL%NdtDd)!us+{-7!*U(gxx^*Q zQqp9;$7aWqbBjVV_pSeGF(@x%tbO=kFnEJid&7bwgxhO0*9=cE24$&+u7I2SGJWqj zR-17chv(89%&_MPxwP!v?gQjruL$}y{Pl2i#^v;QS_sU(ds9Bm7LsaAt&!%k#3^6= z=w@E+Gh#_e$si)Ydya_*`s*!iJhBwB+;ta)zIWFK1>!WK$drrkCLsO&!EktAF!5ch zE@IBi0Kio}HAQu{UuIyM+D36ZMA4i4!L#fsSi1s(JWPm-LH$mZ*p{6!3~R`tr_IyYi(?>vD~W9^t@AQmVai{ z7L}vuFLC;IuJBlSrO=g2jTSy+C@+N42E%cCi4pkb<4T?~G5m=cS%DoGdTD^_%40=6 zXs$r#v)+KQqxMNov+T{o&Kipb3QUhTTw9OIXAesJL7WzkrwzJTyjH;PxzSnz{z zy;II0U8$nlzx!ItH{E-1o_Aw$@Lr7T@>zu_0Fl2O>P_lPPSwZ??J3E8uHX9FG^;{g zBBWBnYKpCq(rk$L=69BbS1Izh0x4F>NSI-!)H{JD}c15cF@erUe=cxt%R!ys5&D#e9cPe z?@27m+g{tKYFKat?xuR>t8orKs`F2iu8JSEutY2-$!2kyDh0W0k5N%TcRZ#ik9MH( zDWd>}4bRHbkhHiS)q@0RMalEydxAa7IZtpvA+5&{BpYcrdN(X4^ZAn}5<}c3JqjGg zUAMjbDG1O7-eP?*m!JM9ymOimp4QwLL|0=Z?1SM(dFHys$bdZDIr%F4J%*jTmkWE7YHx1MD;>P7S@S$B-O4^1yv0nLQn0R-*VzN<$h><`XR=m zOS|dwi;wG2R6lojCBTv=-!($Y43O0Bvi>Q5fD3%lCO)jivm>5{P< zz_)!7#fM${74Ggk^@h7kZPGNW3Z@I1cK?sHuMUVhYujEC15r^>P|_e2 z1Ox=6QA7l!V`vbN9*~X!MvO(IhmuB+j-fjYIwglja)1Gb9$<*?%jGw;uh>&a2kwVN@%4oxLPet%oOME`OS*2&KwaQ7R~%P%Ju`d5$- zT~?r)`+Lp56jP7NP5U&_jUGPPHTxSsgDfojVI*R8kY=Uppn6=?`8p^x8gV1-@7m-U zO1?wW(IsPbM3G zK^`&H`F3x51CpvG%4}2zP~yO>AvBBB%E}XmyOG`w^TYR5mEVio?A|BV>M7a0J102R z944#h;SsZ50ZUsLt?EcUls;DQg2B^i0eJu?1!&_i{1TR~5Zb196qCQo zSF@S>b{AfRJ&ju4?jp5mf`%Xi`lg+M+}Xkn*kn;4h8@PKE5;*!KY6GzU4Pg>uUl0+ea>8 zh^w_X%K&ekIgz|9*GZypL_dbaOOax0El{qjY_f`bbI#{%WELkYD<-_R%3%)C`bJa= zMp{^rT?T@Hdo(!an@>KEaBs(=ne?kGM`=^CD*&jM;HwMG`XnehwQ{nhe(@4N5z3*W zY|<9Vnmu&ultzI)`bM}s-BR!)iMVj126^HvUFvTX=eOVO)p)kC{Gi~BK#JeFZx(Xn z1ON(`yKjAWd=u`D@L ziM8teK2XxKtZ-@r#1Z8SbaYG>+$$xrCXKPqj<{r!k_M~6QnhlYas^5-bem89GLaW0 zf&KFNXd%@AL1BD!$#DQ@cyF`LaQz#p|BDR$(}xHUTB})1ACv%Owd_C_=-+!h`tbu<7$O2x4?5?~8hKat`Pi<~)3A_;?JhVA-Fo`;{2?I^RJNbD;PI_1U!qDm z`HIsy<({1U|Fl_8#owGDurGVEAuWreX)C9=`8;1ZO@X>ua5`2VRsV_W{otu_7qyEN zM190@0nwM{ojDODX=z#7>bOi!v}HPo3OV?Bm*M_Fek_WX&ckChB{vjyWkmPac`q)1 ziB-u%cL++%<_M54^R`4)g^$bbWIkI%05&*@l-r*c6N0K{%(W2mkA-c?|vMrnvZ1at0j&JZY&GIw@x90A9!aLF2581-8Cf+7%x%@4aI+pSx*9mpR8XdaL?* zXK}fn1LZfC^EaoFFZF&<1~<^n-~MeN`-nBS?tySI3@5rc`zz@3ufr1p6+#kZE;j95 zc_iepWyW}t=Zld$teLb6RB4}<(6k;!g1k^idy={#hn`+(2yBIMgII@zP zHO3`b!1`Wq;CtoptP0__qs+G5d zs={EY*rAQq%~vc(ce?Mr4|u%z>rRuPS(TyMzmBXYNFb*5hpS_!Kmr=)iVK>M7JyQzlS=I!^W^zhg zL}@A4S=RTt{|nf^_@y&M=UG+Hu)!|1OVa%5!ZkTRR~yMHk)%5e#SHjPVY7D}PdPLQ zwDj`Cl`qbA8kH-CM+|u^{QJ@kuL`>wP641tvj}c8^ty^Z;>G!bWNhrn z!;TvBNp&g1Tir7EgT{_4+|{HAe1S>m%OX&f3oYo_k{V8iCAXM1gMPv*8AglZwq3(& z%{Lc*;1Pp30M^>!#OOCQz^7`5;309)fl6Ii#t_WmxR0^^MWG866d`%n_SVu>OuNR8 zt;zvVp#F#rjf@%%APS(No+q3&&u9lzbR4i4z>#aFekR)I}LH~(5pP}tapVtL;> z6Za7v3S4j{CpY%c{U3mc|2(08cr{B5N>h&k%&R;%X&1OH9{=bgZE;2-4zsTY-fB`8 zOb(vP5w~c20f?G8lA={LPxhZFG(1M%dHWkSN7J^gtE+3OG1z!9U6nh1VHB{zSuH$> zowdvCl9TsOIS#+Pwx;xjplh2@p&}{V?0^zYOS`xaIYf{=PDI41)SSOByPE~>K;LNd zLgflf|LTe$V2DVE^dIHMV{plUo;paH>mZ%@9EYWT2X%mU#u#+ntBJAIm~s$>ci#?Dt50+X+&tJ~5suKy@#WD7avl1Kz7nz76)S8jbK+bp^2Z|(LP71RlFiXBi&`-a%c?ku} z%0j3^xZ8>yF?=$g?r*eZ+%wKf^BLk_3vZm|l3)@P6tsfQk3ETXvf3BjUGZH>xQht> zEMKw#M4ReFlHS@u&;2S!*t(DNXWA#aunVG{B*FUf_DV}bLK;4L8$}?)( zdH2i&)g^=GxOi}AetnKdJ>&kpSc(RP=B!B4LZd}MLuBu}S+&s5WS_@cx4CQ`f-2qm3C;o$uN&V#Q0WPobTEP9XY28T!S= z<%m>64tb0KyL699q#OFum$K{Sjj(tz_y=VX=djI1IRrs%sa7kp?yVRO^3A{tR1upD zJ@p=^&fQ{;iK0b5X&&w__KYXa{x7lJk+tf zO0&2EhGT})Sog4y_RzmM<>gDoY0(kI29bxhUVOCQG&?6c&Pphgvo{laxzHqzJ3_ zSvN*@?`|*Z`&mw5icLE_UBB#~t){16pIiWtg;I1ZmBVsEDiEUX_CUQFj%^Ml*h5fg zW0VS@9dx-y+#WB6h47EMtzE4NAS-!J#ja&7_>Mz&D5_q9>5bE6xuGzfGCOmlcJbSL zfZ|}>KsZa*w`l`2bJ(1LyxOl7^Y=c?B|9)Tfl2@s75p_?D2U_cR&b}?YHj*@$7m&> z)7boWlDw9xz2GFVpmwEP*!=0pZGUu%PP@J;Ib;7?8YW^X;O*n*lU6D#Y@gEHHO0Qhv65B9a4jI{Jd4=-{e zL!`jlqB)#%F;7GYgkQ(b9z73GoC{mJWY4vqU%nUg)N(=;fs_3F(lqV6;`~F~{>>Zj z4@lE$HJ^JA+st#>eiX7>nUL%jy!gDcQ>hC8>n{3si`9Te^8{w__?$oSwm))@w0`iE ziS&7~{bkv0bUeJO@3zZw?yz&mO+wEBV^pyEONE~Z?UF0nQ4LpJ&JVi7Q#bN=%K;@* z6M!X)J!3HzW=3zxm#6XXcH+XrnI{{nSP7B-oMKm3C0>LVdgGTnHt?}3kz_3%@e*EW z-vcn(D4i6hmeY4f31d~cw#i~Q`}r&~ph#KZ@}sa~El|lQWwgpM2zh61s&OxjPY# zU4ZFeqqd5}@a_xWz`6xUec%NEYo(UVBD7JcKG9E~|}H zPF^L5SEcJ%r21S>dXf2X^q1!>iM*!hc zLV^s#Od#H=doQHnhN8rhwb6J9QS-$4tk`;MZ$O3j&-dIjnHx>6$W zsp8A~9naQIR(@^9o{B#>ktY2BH_Uqvu#V;Sx6%569;y`FYRbX|>>v}cTP%V^tJ&5z zzhSI(13m3<7RgNFXJn@?T>tc|@Zw5L#>d}^1dUo5F>jTZh9M6?F|%FKZM#A0s6XNk znaFj(+O>6kAE*EZiG=__>6_v+xE|S6g98?0fTT{@;6BQ4-GAjO0|O_24;1qzEt1O` z-Qj_E;#u5pVDOxKFzf{IPTg)McX$WXnC37&Z{vqiST0w?dzA_(&(UF<bH!p6H=ByPV*e z+2fHxj;q?P_ZGdVU+y5?^P=7Rn5em+PbsKdDp$I2kyerCb&Hsoi}Ph0r(z7evE_0$ zhs*uN%f+p%RHP=VdwSLmNe@Q^1qF@r*?ixF{EMpoU5LT5;#$#}9-eI)KC4ZOU$V6u zUc2pUl%(@saC2a|G*p7^Qp;1Vob*#ZrD&A7|h*PYXa2KTV{$K4i5>O z6^+d8?cjtzW&u1ps6L#sLCAVItCquu!N5C$T`jauBPKwp3FHNcW8nJYM(#s**VhXJ z1!L=!kCT-1FT?B}e> zvfsPVhYj<$R)I4_@mZ#k;&u1yF$@p7wac6OQ(34n(^(Xb*_9(s3tNylnuGGRBKOu} zi{3U=ku5!qbi2dsofK%ZaeekNGbx32F3D z-zv{;-{5t){G%AutA*H3Z_|hD8y|MYmZ)1amdOGMz}XHVR*sjX=R+r1 zj175%by{S-&Na)e>cDH1o-Q<`JHxQfPPtg; z`gMRhc@RLGBPTs7%tgTdMue5&&zwKc1Y9O3>&1kDaKL{i*G3{>ON-YX=XKbo*+PQ} z<=@Mbf*EoH>6kLd7O_O;1*Arv7HC99jZWFr>_zU2(vGIpI+PUITqdQu(R~^Xvb%eW zdrMUk$fD@>9!LMVU-?;W);R4pM}z&hBE%sjX$_ig~R zG8Xf^P7uQMQEo8iLw95d^tpN5Ga7kOs-aivoo^t=DMDCEY>}xlgLSvOJMxl%mZH(^ znpT5wQ-)(AT^%>8cPr-o9=jJ!iiF#q9A6#?KwS>4!HhpqxOtQ~hS0weK;Zm=rC3>+ zjH&z9lKl~0e-n@V;Efk=pUNaUsyr{RFF@_wQx+*d71ZDVYuD_|PJn3%4Q~e4g+ssL ztWg%pa$4~5<+;)bM>S&rh3a}cqT2=7BV7d$)3W_?>Uy3IuE8DFgt)zf$-o*v^gcWS z>%T#w6OZQ?`7HODpqIC@dZQ>!nm)%^@(OQ#)+HbX0Rb9hBGQ;4Kr9 zaq*eXpF*=GLGntsX#n&`w7%J*?mY>~8`4nJi)MExqfyDaLLizV&YBy~!AWb4N^pSs%B_&0H(2 z@9*|QrdsEC0(cn=4GrHp#m)m#?G`%}wmM}_V1~~*T^w6q=)FEWDGI#}2ZZE?oIbjA z{h9#PisILKqB2YkA~7sBev{aNBa?d7pt;CMV;Ka9%2Z*)>lIk?sS@5e6hdjtS0=34 zls0atV|<5Z+$s06j#&f9nsH#Lil-`1-)ki}y4Nz9bvjvme;2_YpJ(E?!mqz)o&4^d z;L_yOlu^DTMl9f6;(Wyy^9o$Gkg(e2-%`czH0o{>f5aYGJbCm@DDj@<5O3aqm0dyV z{mctZ?bd)UrNS#!DK})Y3apbEh8c`QIUDG2zhGe(7Imu>AQl3fI#sL4#9Yo``| z_`$>5;xA>)`m?o#kUQ3BSZk)&uP%>;^t~1FIo?~zDX`;PjG)D)!23mRwHlz2pdL7JQi2+YU;{%kh|3v&*6QD!y(nYT03Dt z@nOk?)C@*TqHaTqA92IYO+0YNjg)xFiLXwjeE_IX zD2W;q4qUxaOb9ZKJZzXXssy$*(}9mlV}z>*3c;5ur(bwv6j0~|gaj;NZ6Ds-=->WD z?bYko2#6j7`oX<4L};ES#Wm2Qa9{3ZEJKbN^_{+HkqxFwOqV-lq*YT81`?`71k#Hz z6UeI~#R_BA_0D24G$pbIJ+o4haxyrRN&2<>Y%Y#vrwMq{mE++uy41GZZ zU`$qS$|OR3@E=uPD1EQZ@VC&GjVv6F|zzUdg%-)-*UFIXc`MdlA!{ z)?~N)%$HrBDn071&kh)o(S>7n8DO|WCX%ikzid5E#&O8KK9P2u)$jw6g`Xi+MP4nX z(L=u`-l#WmW)FGlYu~)7b@8vi0Q0Rfg47aS>lY`!SH51{B2rNH=H-Y0%n7%UZ|Z?| zof!}~z@eN?0_s~MkwK#)xqGLdUma`Oa2hjm(b+8^H5#ovveMek*&ABWH%Qerh{5yf z4@mE{Ax`P_5gy_cUPtovRS45Z+-yd9I4X9% z^TyCp;biIs#yz7~4Fg4-bCfZ@)o|;ud5HSyeCdU3cao|9%gb-Br{W(%Djh-aRXmUD|NF*Q>KvFHw z@jDW!kzWw7Q)O(zgTe9?Vp|``*q}mAR-Pd`5W$4sFNpZg!vC`aKYXDG^}-%}q3NuG zp)5*}X^(L9BNH|#T|FB(M*jiUdTVBTTQ;p5IW}WkhxMeEi@KFQTi9EXe^(3UQ8Uvm zZ@nrSaOm)kREOTkBr@_|^!A{j^U{UXc-OntowCo%QxB;_rbe z4hvNsuO1+}rVF#RBUFm+X52CdBjbD^fkOMsm7J-zN#!0L^-2x2v}5=WuDx1PZ#|_{ zE%P>h+YL#%*YgkAw?}KX`!bW@2cnLADPG^ZTjHAgArkzF16r*^f4$oxEngfVKD)~1 zc`km)rh~O)r1V4XBMEMj&gv3d+vNC?A!|(OIu(_g7H7nX23nX|jN4#dygFU=+U80f zcf8oCsX2qxaf!)&@BOpSk3u6;>FqHlE!jI^0Tr?{Z#A`-h`i~l;lp-#eZ#ef`OSl) zc6%%J5gh^oSh4jqGiZ~@J`TPsD(F0?p;X$H?-+S3$z}(wo4$dljUOp@l=g@46ZC8H z6<1Q`kTBY*>3IaadIn;<&gDHdoRau@V}&}?EbdfQmS~*!-7*x-PSGO|;x6J0L@8%B z+4R4>&E=Mr*Te*3Ytd#u+_7fW86F6NA%3glnOFZufzG`WA1cnCd_8t>3tJ#J%D(*m z6MubUaK&^L)?a902#Kqg)D)xYs-QuPrRYaXdunvEOD8zB9qcm?7F()x=gen$yv?o> z)n7AbfdZ9Ew4FStG<1xH9t*9Oy_9X8GmSwO@jIY&7rd$9U%Z~(9Y!)l_z1%L4CmISz+>N4x8WLi{1z%3(oiQ>ag&n_IU`uM zLG}oaPek5dHL$5JP6`mct*_hL;`!^z0l}qxoTF_!N*{2J(rVg`ed$rm>Mme862x+*mp56Y!wdG9$5^twW%#MXGq}_n<oIgLpGD1kEmZfDIpZ$`irUJKdY)4m%gLi2KlfyE$BF*Lv>xXd73+E8)hmj8 zwqsXpYUqXUJ=WRr^}QlZ9)e|;E_a+(iwLduew*Pz5VQLW zqLu3<+r7NI%>t>lp91&T+&1R*)KcX1YCiYr#Ur<0%g@BY7W41eu4-ew>8q~aXV9o} zrev(qRTyQ<-{{kZezx)0393X+?*JX#6f;mQN(~!UQShr0K`?qhE{ThTE#$xs_?@Ul z3$1LoC;dlpU`Y0(Fv5K{)&wmL+5aeQl&D#dlD-l}+%Al%b(z_&nDpaONDFgLV#H!g zu^-^~?ArM~6%-t2bj`-j_G%hkE=;#UUv_2b_CF|R&Dn3^v}Cf?U#(7_(pA9?JL|5` z4P~B@4;J|5vL|5E6g!BcdJ4ARoc?NK6}^d?4nNfwUhKa;Qz|i;LWA`a+gsUrKu?=x zB}=a?f~({)oc#=C&D1jAecB0Y2>4X&TcfiVSc+*sW=~xM!{w~Bt<}(a)0XQ4EOY5c zF2su$sqwb%wC;`QiJ9o7fRZs!vC+6yPxr0yECmb;nL&}2+MclqyVkA1q(A{igt0RP zi@XnsP33uH4d3-q4`;0#Z)$Fa-_Q&%kIODe-#=U?DJf|?Z{AQxqJMz`H-^&~c510H z+T9|F&tXG7H{NU7RS?`x0|Bdwd>h|brRkhRY?%&=fTKo=GICU;*}eJT5u$Wy7#UA* z>aqRKWj#30wqX(1VBZmtxhdZCX`o`ETw+1M4t3#{Sqm$!yVA8_>!Xj63~uUJnS$_& zl`y`wh3mRKyIKQ(qy*yj6X44OVx0#rbCNZTx?yTmP+>Y^u!TH(3t`iliTR}y2(Hh8e~BH8(trS!P2JZGqA_)y>YN5<@rzyZ+xG=ZrUh$DW%03BEDhk_ZZY&VcH<6jn!*0GoD2`p7(0AafM#hab| z^*7wpRi``~L<|fLG8{Cu_@$qOGByYqw$8fD)uASewXyyz^lR#)>BwsJ58Nk@V!a+{W6+yJJRG~55VnWyA&dvG znYjp7tHE>??-MQjYL5sOUvEvf!hyqi2Z1ADBst4Jy0boazGiPkL1rw|cCN#d!A9N< zHpx0I%F@JBvs0vUwJf!3)Lc17>GYAqN3DV-vNIskIV)qjuC{Y{DeKDdfS55cyZ&)} zgX`FB9z?CXx%Mi(FJKOE)4MGer-Q=?XIFR3N2Kv+roH+co|hiB9@#3!sUJu}!3?qNA912l z-_Z+IN^mJxqglA8mom)l=$rkY+RI|E<=aJ z>ggEccpg(dKacsBE~`H1i6RI~-EON;WJY=R0WNt8=4m`L!o|*wJ(K@+1p1pKB$N~R z_dPD2=WBPaxbyt}OwaTSl0dYo0@HtA9Coh!y$?$qg-xZ>_9x|%(N*+?a*sBO)br&L z+Xs*@9gwjz5S@M00cEH_`IjMdD04oW%KF@Rb6BR~&U)m^_`2rGhhsbw&&_$brP1N{ zQswEA>?7p!>L@)7YhT4C>f+arb&D=$Q6IAecpHyvdsR5mR{(?*A^PNe&&74 zsY6ZG9MH&PW;RHcpLFE0=PV}lxiJy0Hy1-BeJ4W{C>y$xTdug?=9M<+ zEtkuj?Ja<x63QJ4boP#MT2A&Xsuy#}18yzu|MV5W{l|mA` z%0k<(^TbbK-+O7BEOiFB#CxkWj|&y3KsRAY<%hEGqd91Jnb@UO*Jz#wU$j z1Em{U>(V#c7#qRlJh{-&(0iGE>^$gSUlSe6LCdGp%)b+c^*f=+jzNdMFy9&Gc3YeA4^| ztz5tl1MolcmB#q@sP=7Z;f;0DFsCj2*e;{fkflcQhF$jOaz~6=*E{K)UNN4HYKOri zT$^Q7Y`WNZvmxUv7%p0t(%EYKoUwz8LM5ow!=8S zu<46%ZT5H9M5v!gzWafs(5&;y(UTWcpRDnXcci?(o*F}gG$9vPEgsoLiq)SMvW95# z+5-7gmA#`cXF;#+*rR2Q6H?qUx8(s@&jIwZ>h+XDNi3X?S8ZYa3SAB_&xahis zhh61^GRzP&thI~S+R#pfo;$Az{1(eho3>(9sLgi%`Q)0#F}s%PPO-Hd->F!VQ?_h9 zMW_->QIw_8={7gQ#A^$G22RW6%P=Y+pZn;iLLkt>PS7hI!oUq;Nv6V?YlS;8tI7|=rOWk z3rBZAi~g_kbyLm-0#O)P;v_8lTsU2bLSW&noBcu-U2Pk3~dlmAKH~a0;T^=fa`i(}#jlw$B-OF#2VV99fIp{dXk)cqO`=A^6 z6|_y&*GuqN*bU6GQN3R~HL}fMZKiF0+BMUxjgXU?<(w+Zs*dyCd4lAhTC;`{uU@{S zsV{nNms%?np?zkd1=>b(PUTNm8l?aIK{*E;*9wGJjiTD{O!FWoO3Ymf4XC zm;<(x7c>GXL2eY#R_=V=BOR7>-=A-T{Dk2y7+U=}Cbdr6ri!M?w;Q0hD1CW2J1%zu1ZRiv)!qXxwvdS51;e%&i6c4T2R9Cldfh%#f~ROJcqhO^f5hTUqy4j zYk$TSz&}tc>|y%D82lM)FJC;nh4yz&$#IDHz%}mvQlo95^Ygp?XWY z3Ger>t@K4>O_(A@J=7WT_1eDSZAO72POnFJ>JJ~=BqJf`r(BJEpF#m*5AT)vE$M0I zAVwiNk1uIvgFTq&=J9KPE=l~UxYvncNA&Y_9-EPJwFP{ch|1)DJGwuAHTaPDqvI|U znK#=*H2>?+{@AB99xvdx8(>&@Svu?+BQk0KuP&1O?sk7uF^HD`lB8)rF$$yi%~Plf zjgW4Q=6NZuIoKAV3`pCfo~C#Ph2$A>*X_j7* z;8GLgd<7=J+Y-7wWbJwhkV$*D+9ge;8srx(p)ot7E5NyfihYeJv-}$bE}cUo_gYTH zX0gj+FaKm#fx;`N#lb0$lXT>lf*8CUF*2*&!Fqq$af1+2;q6-cJgb4#9#>k&^$+P> zKRl*{C&Y{kY%%taQ@#^1Tj(0hbv?H22I>)Dze^SHDlsv!r}S?Y_`|mpONiocXpz_K zZufF|>||*%xXkzs*sdt#_%ZBm4bS$k6hsu-+&9^aIM|7L!(-~1t;IruueSfdIaz5F zNBO*XG*P{w%hky%F|pnjw4?k47)-^`(YU$Ds;f$0Np`~MiQ)B*3S~4vtpxSkWqPLD z{%=?R<-@VKM#1{CM)ytqNx!2V|E+T0UAiON^7}o7KI#1GjZ7It@7@a8!7HriL5x{X zTIbHh(F1->Tp-*bW-!3)r(YIQMW%44Ut^sPq=>gg6zo;wto+Iqb z`}pq3WGa0*-A}eGv~koFKl~*pWD{&3$)T*iBhzQnJi=h23;yqRGSEt!Bc+D!Dpoy@+oKBFen04m6hV8gu+MFj}qV+SCqwnTay7kU) z?VU%d325q13?kuJV9ia#{3!ql8AZt*UG~iy=BwUAONOHb8~U=f>-O=15B*8M-iiOn z>`SK4?{ZTti~sW<|Mj9L{Qbw5@wK7XvB^$wkTxgR|JR#8{EJ^dI<5O=)_q4tV7MeMLmXW}pZT>9 zG&wbFDRQyF-FEjEt1K7t(90KY=IY;qmXBxZhI8oBug$RgZLd+*_B@0KitPXncjc{A zPqlB0?Tt0>OC$6Z7T0^a1AQskwcphr`OcC2wkofWJTyk-nIs5P#kt-5Qt^X-mDzH~A@W!lxk~>EHuf;uWrT8B_|s zodSgp7QQydqL7eF zaQuHL$0s15HTF@&*+l+ZJADaDl&xLT42u_J{9ow9ynKRg1)uFIRiK})(}-y5J&*Hk zSxPf6r@ZO%^xapR5H7PH^3JPWXNO_3an$Y~tKnmKm-!vkvG%R5yu6O;t9|g+Z5wdo zCZS1!$mKNUI{(dbx6gwxRgtj40T$K$X7(arY{$bU(Jl2W-NC@s!RGr)y8<6PZz`ik7g-+jsq%R*YE zf^oN;_|6}Dpl|p8sd(IxsHrlsk?*GR-+BI@7pW*kv^ZGeza&y#9|t=X`04Z*CpEuy zOi3_+_Ma6xO+%|7vTgX%gJZ{7`sMVgpVr}|Yrg0Y|9G8Gb1a>A#)unkj`GdNA7$!CUnb^Txe5CQyHP+1HJHpa;abfoI zew&f+T(^g3+9Mehg!k`OuGCL;8GDqiSE2Pj8PzU*GOW0KI0?`vBA9tIz?KdY3XeRv zrgtvbkvT3F9<)x$l+G!7;Y-EC88#q4ik=0=G)Hbt4?7dRPiIpjQuNU?^`U3Y$JKYs zEMhwzCkNepdt4;Fydp99(pJZ~!0hVb?rjZU(LXomZ=Izg6_EPgm-$>j`TRed)^iE( zcU^szO-C}+e0wzB9uwVt;?&2qP>c`IoZMi#y);c?+W;l2U!N<;xRo5qVL;AMIGz~Wclp$ao&)==YonQi&!!W z5WE!7y5LXEtHqGBjy=|GqCRka&Y@4relwgDVMd)RNjB>?zDR=&@4s2tbg2(HiArt4KT{DzY7%lWG8kWOdal z^_Kd;cvZJ-h-pxvr9d{4O!STBft??^$i?uJANbqD`|U6` z?isYlY^U?g6>CNi_B;HBUX&w=M9CPlrMt>82vUoVe}8hxWuX&oAsoi&s*}$E+x=iW z`zStBnY?oTboG;QmKE>?6yf`Ym)+nY2wG=9WnDZuVtjK)Pe$n zDw_lg>JDOexgpXrOLNVnm)dB$S#2eRVUGh8LQAw3c{3u#B}!8*nG<-w|D(TAhSjTz zLJA@?rq*tk|Jg8o^Xc!KJOhg3l@Zc!oDMt`Oz6sFBY@d@Nvl(A00wgxhUq1* zS?S1<94|N(1L_F4xQ2YSflDAqLSNvsda{r^SsYA@&X8G1 zm)u4A{b!cu1|i%;Ke;P*6lMr*-lFd>?|&mSTQ`nB^f>smwcWA*#xWg+EzrJYIeNn~ z_Sxwi*?14o9q4`@ebcVnA6Gl1lAi8ULs-0g6e6 zfDH|RQIm#)Jr_0cu9reuZBt{5eX~mjxGk$Ph(oqhq0)BcB2r7VAm(~q3;(eDGP2B* zmV%{{4r_{#RWBA<*;=#Rr8?cFwb%#%y|w%)sv2mJthT|f)Di-h4R}q`$CYNvr7%q# zKseAuJ7NJm=Umt+Nn2anN__jVU`D2g$CV>&IkXai-uAZsOSI$b#F#*p2LtmCE$b2FC zv4tykGGZ*n1I5`#*V`yLsD@0Uvzx;nvt3(<2@Va`{^U_8q6p5osC4BgpZ{l>?@{rx zNz1PNy99cNrs6Dlh%W18Ww@lR4uC7Q^rcjMZD~~^IR7f z!ULqsE8Bax*HZMJg8R06y3_Mv>{}=~Tz#OYo!%{ro-`|4y}%0GEHz6!H#0yjM4!Nm z%=AB>n9JjgV6N6KGgN!&i1-N9{#*k+{0Zo(-!5v;eR#LR7-<&GW#m*TFc5>kDvzBqkTuwL;;PAYdElAlpd4}QSL+(bInU;FsXB1o zVUoED@-8c;{|t66A7lUU=M0ZmIi;Bn>M(WSU)|MD+V1athu6;4<&}oDiHUffNR|9* zprHO-Qgn)NW*g=_){xyr9~Qj_VGj^Bu?N{a_A-5t;thYOacPEZgwe4`(>o8Zc!#pHIty>N;hMvs8P7__;=&zgRpbS@(ICeb5}f+% zkp!}($G&{GJ>3>sXx!U3-@bdtIMW&#uQlCT5Rj>!U+pjS5OIpx-ga{z`9-DLBJRDn_ znw^E_Au^Z@MQ0*TQ^ZWRP9Ce{d(c2uF2sK31VAt4%*w3^%V0*Q7PM2> zb*Wk)OG(YT0itHAj6V3T;+Ldi(xknv+qEPr$_)#s8fO4naj_8APLTASiM;16m7?xC zz70_^qB$1Msb6N>c{ILcz$x>TC_YHc>sKcQw8DLbpA3W2s-M2_=q>3+{9nnE_?;8( zyDOEY>j<&>BGhnH_ihRGXa4H7D&#$orPyU4l}AV(#tL3_%w_Z%k^fX8>kpv>MPsEH zht;#`y@-2WJfbnN)JO}1b+4o=1DOR(K8)Urq1Ammp}AOp6iX_H?fPsmxFC8%pEMNQ z%?7$HhNSjKS&t#CGIn4{#3hr0PCDxiH5|ihC?;^9FXm{;;z4 zkM`l=@0|mHu$KML=^pQrzZeA)mgY?!rSowS=>e)|jL(x^xPh2dW5BtgI z|541utH|Go**w}^MZ*IKz6$LcYd0Uf5{8UBCru8n|33Fd1g1A%TRdcKU~vN_{(CRf z)MBH~HzK7zgZu%x1m*ejYRS@N<BBGs6#i;Bk zX!wR}IVuJCkcQX?vrD6~$Wo3t4-*{#&v+NWq$uL`tDOSGW<%@eEQff46KEi1(m|@e zS7ZL?u;M%BIE|mkDBkUQyAUoFaJEBZW_qfmPz2O)Eg=#FIeK%tzfAOf1JFTAKMasE zqP*&1;>gkHWc3cn$Li`mx72`O%LLhoD3*#A$E^82P~vm#OQBnR(q8V2jS{R+l$2El zHUZ!rttJysi5|>l&`i>x^=M0m-SsOs`e1o(8&RhwL{$|M-VS&7YFDZMa77}tCwE+4uDs&*Xq?MHPSD7q3TJE$M3h4YVydKjm z0b41&{-r-(aykI$(K+1khS^*kF~JNSJvmFYw}T5{Bryu4A6d;$u{+HFnF!}_SR^l8 z@_UZ)YmI*To|!5r*Cr&M=&$v;Z=U-X>JtR_(&P~fXz|=Y5gLT@vEaTb-uC@wA24ju z<m%imFj+wZu3Wz$lS8OZGP;Ioc6|y;FKs*wF^U(nnoQwQ|%7`Y>bgwc9sC-miJ# z<65zaAzAjr{?$p!oBGkbU&y;ROug#+V({#yb|?*%_Qr`e#d5f@7q9A>Xui%`JsOc z-2aFb;0*KDyI$_NVth?LmUHWs(=zXe6}t2=J7;7yQf( z;I8ts00fuanSm@{{nczBUy@LC;GLH;`sv^?h#C0LD8HYrb^gtX{LfoQt}NGMLM9a; zBN}s7&eYYq?sF{-QlP5HmW|iU31TE`DP|&R9xSnm&VGHt%YtN~0Q<_Ks3jS&WhM!Y zSPozr%mG&B3{+REl~!4mc;Oq@LDn zp!|7V?>!roixjjN{O7g&q`OFCA!1X{^25PJk zx{Xfu@iS{tQ>uT=0{Fhp{at2*v0uso`k&ckH>XKi?}Y9vOyU`9^GTPM%(u|*a$aFcTDg+J>i%l{v1 z-yP6&wrzb?5D^6xff1yr6zPH#>DZ+!AT1P;CIpD|4k9Yjks_Ta(yNrvAy@#Zk(N*s zq(gwv1BAeLGIQH_=e{@hefK{^0?9f1x69gV?G0+Fd8vzk(#-#U&Hwg`1w@lYlzfVt zKLxE=tR0~ThwzqVuE(W(?WL8fwdENebVAY1VD~(oB(V=Ov?O$~aHL8sR)zh8&TM2} zX)QhF;@!SUIY4q+7R2uxihp}a*N3^EuwEEZnk>N|D(bhhU8uqfk|bTWoB9PPDTm&Y zB(L?}SOY!iNAZZ!KC3I||77yZr3LEjXVXkzZAJy@B}y$A(GX9X0)>y}RGh1wNfpo-ZfR8LmsskOaz6+=7_rj8*5 zRyZt>`uc82ioh-tT_Y~I{_j5FSMv^(KMuBT-c>jGlcmPLb1?sSR&oUc0n3C7dJ#xp z6a-?X3@R6BPhcID(XT*%UmNXdLR~fHUeNzOW(vm0m&sSE=CFMLD0JxNFAR!lMn$(f zW_lX^M*2M;9@bJ^y#bU-^#U4Fxe(w!QHrGYqgGZ*{RuDp+EOdqoV(LI%3hV>`KKmh zV%+ljV1PevS6F-mEF)B7U#qccZQa`m)1H*1m5B4HN3%JnvWiogQw;tXpV8h8DY&;prw|bb;!Wg9lmkhLW*6L4ipkTujbR`e3 zrSZq&q7ux!72L5_q~nur54HhJxVkZz03K3$F#tXG6dLx`pR5D5nJ0O(N}B`{6&K2Z zLmY?r@X^vZS6J#gA{Mx2&5swx`UVVTZdur?(65d7_RG*|mdgB_6?x^LwdJ&Y|s^7^2F`K^zE`3Ri1S(06kObykvh7E&%6 z>NHX?w2)ai8)pgfZTjVsMFYS?6KY^)?1TBO_j+z6IXwU)DJxYGkrWsKiJYh{3}LEs z$Lkg~LO(n}?x)x+ZBcApaFW-$NGI*l&DxxTa({}=(zOg+& zAq*@txg4pmKkhtjMYmi>T&-Tz4~U?qV~!UtUb&{SNSwQbYT;2L-+Z~c`SND4Bl}pL zhsl8$EFe~9e{rHnQw?$%N~Leu0ZIJfh1CvhTf z-{J-J;)`wf1SQpuRw=&uQ8T-Dtr(=z)#OSVomO=^?%7`x+2m?Mq&n#wr+=KDBtpI> zJ6qjf$=_!P2eeN(^`Zps^u_P*P3-E6k7%Swg_wUiYQw%&h1`J{@8hBQ(=lkLn{_#T z=)Av69{v~a>Bj#(Q-tO!^MCId*g0)baaqCK3^4I7sl-SI>}PCWj@_^a`h!xybTugT zwF09BYb8{Sot#u`(~>)_K?m*ig_|@3nPJ{z?iB7juw-Pvh(iX2#u3&?F1WV0f@-C( zX1M1KL`EngnSv6{P@iRQ2?`pn7TYiD6ERxT>u(ycR8+kJLB6(#l(~G=q2V^z*(01R z3EQ%TgGd;~k{%$*;kBKVC}XjeGi^&_5jm_R9G9>b%;_x~;}<4O`f3U|VjK$6VVY^f zckxn1kB5M!2D7Q7ReuWfW%FI@MSty!XzSWG)D}MNETw4{oa|*><53}rpt!3?02%$- zqmA57KdCFj6}D+^p=}CebKa1tsWwUhl?^nk>j)mq9D9|LZmmZL_xVL+^GvB1oTI1C zBkIXWv6}=8E1xV4Wi8Mv32{r}j%y=!f&A>TWA<2|g<1DJE2m5Up*P$G1zIDYf|nrk zl5dTJ@FiaWx9v_UpcqIqrh?9 z2#WDp=K#Ygh_5LSH2xP#rvkKhH?!PgZh85UHoLi(p-jRMDU`83PZmZu<`>Z+o37nz z)mbroli_ofwMI*d0K2R|-{`W6tBhU0$U~?u4T9$6aE8REX;3xJN(?VX&D<%|uRwfD zEjMP|lAQ9Xy~t+uXTy^NK$Ywu1_yug=l@+q`p3&zbDL^oz}RuC0~2&*P*o^nK;a`Dx_%TNtu!KZ^}iN0PI0Xq9HwC})1rU^ zvYT_*5778lwHR!K%)&E)st&}bEjfEe8{heA;{yFWQ;cKUWWj9u`7a(E+F9;H0tA44 zh*{3PvwtXMTL=KG?Ol-c_>+BLy13Z-_m}9GEm_xvOb66-xtP+6BTdXxMnr=|-JdkWVeX2r* z0%>#+?^wUe2!$+x-0!;GlcR-_Jy){G1&$`cB>2ywO7^OOyeZC4E&h!q1-{~4=^oLU z^w8gv#Fv3KSmKTt`G7Jm1?~O(9}mZ$O9d#~)eUb1BiQO6hfP@b-u*N3Ok`13q7Jfe!;vt1X4yZ{*K#ZDtk2!FE z!`;H>GIdC7x9QD+aHn&B#_jcO=b2Pa*KdkW7s37Y$0=pfttAZDJ?vnFjBF}r}PvyT5Ww$zcUrvygK*+ zr8@_yTmgcpP;7%woUrqsuq@L4>ol2OxbB8#p@W(F;f)wSrO6nG+kDG!j}ZW{Eo8hv2^ zs1e)s`^zflqk7A={d1Fdv(_SF;LDSGxFo#@~G@mrkK1U z)SE2UuYb4W5gqki=lE3|C7R~utDd^;K9dap1yElp;^3;@Rq5jBP8+atJp`m!&5?5S zkz4G;j>cJBiqe2?0j9lF{emDCi*1q_CL4&^3H}VIR2ezufHH}1aK#2+s%PT+cNQy>(ZDZ0jy%2cxa`cwt%P9qpHbRF3mEA>v9JYJ@ zc)7Z|w_frUC|9DQY)}z9>n#4mRzOPk!R(;R0*K=uSB-guntyrKzY}1y?J7=xtUp6J zCes-(;+!u@Y!HSkh#vhIVuE^#)Q4V==jzGVZhvlc)_4BGf4Kr$`Qsae_V1Va*Dv1r zAKMOSS!ngTLic-{QyxE{?v^2CfXXVN-3!c<5^zMWC(n(Pc+?~wK0LtmwBez?X59^z z%OWBn?5`H}e~42iXvpskA_c-F<33Mam_@DavVm99|MYwRH&1)ff3FXA_WYMBkv(m0 z6auyXL~~)3P0}%ywLmlwAnwhe%O7SgcQO*Nfthr$-lDubv|TM)?Y5yRYheC`bQmbe zDgK8(r;F{b$5hDHtH&%C$VF4tv}-VUca4zo^@K}1#_C{;zK4cpB03&ybYOUDWC&<|dW{Y89833-t2R$F+ZF$aIP z{Sn1s-^U-GG)p?g2lsS*Ihp!&B60giRHLD}I%sgYi9SW2V~OL{EqF3DRW;oP>vW*X z7x)OkgK9E5p!H!uwPO&K9~&{2o1nI(-_me8pn5I9g2aBb^`!K^VzQJ&tq<3E;MhtGJIU&BBeWSDr%XsH0<9nJd- zV*kXBp;-V~hSB=Q|7K;s4`0eRnFh^U9oYJNV=_$u_9HOHaP6t3t@!6=xKKz|67Hrj ziaSp2Od*AEg)THsn%Kwqpl3M#2Zy--v$k-O%|)bX7!`Fi;+iT-;$Wc%m4`C?R*4N|DJRQDsiV z9G7#R-uWzr>EOGWN@&5CXtb9$2Ndu)#7u3Z$+~UB-d{R=(s+Dw$c1hDc!wy8B-fsD zd8p!Wn^Hh;%qGuOw)(Mm8gkb^{A-Nw4^bXdsxjp25dW!c0bO}OmG*So` z+IBSgF&GeLe`-CD(yd+41H&t>Iacpi8q~Ua)db!RALOS@XELq8rZ-fZ6_D{&6`^GD2k)gEZ0m^}(*8t!{O8(GL3)4evibtdk~>CSFwKr*_U3 z*Kx#rEO~GC3;OQ6Na{u}Y?SuhxR0Xocb+NdQv~OyQ1WE$zs)1)zZ)3L;d>EZLC<;V zjf)=F^`DJX`N$dIVh*LLtNqT!fbx4Z0B5oKg>WDXO6c^eNIuImx7l5rR94I30eq42 z3-9VT3ocQ9+c%AOnU*GwOamA19|;7qF6j5#k14gS$4Prh3jb$ASmRmgk45R%6tr@9 z$%0-v&@AP)J4pWZ=Irz-4UFQQ4kbZ$OQOQ7Rxo3XwZYphiV_n6+zB)gQBezfb=R|k z@<3l9P~iAkzgIX~?c4cBACj{Ju<^C&Z!UQVl5OjX1|H=Bo#r6fH0Ix)uD?B? zJEsgl>uPVKHKEnSLoqRGSzvL}hXsJHUc1fJ+cvmJz^8v`aQClV36Q{o<%6M|dvhtJ z_O@G@$fe;*{!Z%TKPxWy+h6@>gUr1(4#4)@%sV?PfZ;kBfx(5c2RrC1=DzsNt_Cv? ziy}9?)l;_27tT|1ki7{EE)3*IaRn}v*98J zy_2}^sp6!v@YG@0lg~gv^UzVSizLm{rFSInDi~UKQ~Qrs9>e z?|iFj0*h73c{kdmuzgy{%jRZMTw=f4`o|C|Q(q@v^qZ2JE$N;dSV_OENv(S*7!e}$ zt8_iE_S77<0h;PGL+d6MC$Ts3|}HEp?&b)*nCg z|9toV>a>3T&O&+9AfH+8)&__FT;BGsmyK>+!z=JBww1P)k93Ai_>FIO^!O0iZx!Bq zK$RtZUG|vv*^e2|LSH|7mXX2L{K}*>EcbF~Mz2o-ZvzqQqqI#(LADaAJM5*}W<+X8 z%j=`Dmbj#$AuXwtcURXbn;71oHYoFaS^6WA0a2-ewkf>#+qmGsQ^!-~d^G*pNmZ-I zYPTQ@{do~if4B}#MGG9H3PE8y{HN^$htC=y?9%G@dY{4(f>=XMkR=Kr?DXGM*!Fn} z2P_WK8df>R)=Ms0XdPB6dAUEbGh9IUR%GQECywT1`@=u=(NwYo-?Ae>Bcrx%cdA)#RLJ!=DEfkHeb)F?BjmglsQp)tPv`ad*aKXLrOS z>r(?FyluDQjr~yBy)4z~>0mL=4tx;lH5xIJK94r*h9e*8zxa1M`2N$G*}oo^x$x7C zIVVHPg-3N2y*MU~(>4la60{e(YSVr3A0Lam{#l8e(?(s|$zKQ0`>{;ilIQCUfBPTRQ zN-PefUJge6{=oj}H~;7Vp*%>Z4wu3Vw(g#^Qw3v%6;|6l#vFxm9KiG3{R)7&-;02flM4<)@BFU0uDll0{JYisktO}9?*-mt z{+1$|P)d5hul>v49#v&7aVinh`X^muaGOPY#6o;=iz9NfvH;bfU|9V$scLNTCiu(7 zjQ2hvuN#+VzMm3~7GtC(#SodAhAx4l`N8*ee~)_S2MHI>4jrg1%~VT3|8{2oeBG3f z8tqE0%`>Jm+4-~KJ>^{?!u!Ih*QYy#**WbT!bxnokdoS|&Lk6hPQ?Ypf?0rOJbjvx zS42(2`r?pFnQfoc&`1CBR7JNty*BswULKzYie%dw`};(U8En7$+MNU-I> z{!Qok2_BU+S%hU-_;KcTKI*kuCXJ&7q%#(M{!3Vd7MMbC$!BYE{lpEShxspz_45g7URy^W~feBdFfnCzxCs{)1fA$1!Mk9fJ_SG^FIVL~m*JxSVQb-=F_-kFZL zpO48s@1vig$PnyRr}>wQS#Ztnm*V@hbE7z>gW}Q|K2F4pD`)u(S5B>Ll`$sfUhWPO zEPCEMsF_ZenL+QKltqpX=cIJI44@i|$L?o7z1|it7aYKsbW06hjz0LlGnKyc>7Ywk z$)f8ddS`pSFDGFSz55qxx|!IEx9L=~Z>ff76Y$Gp08H`46gOl*73ON0fnVjV)lji3|au9>K7ao2fkJeaJrCxJtPhR&MUT4oE zfu)x7JMx*8Xvnv8g_No8_?ylUXi7EW&b^Fu*NdF;7toJt!19ebS)p_USK-|T`c0SA zfm&>t4QgSh5B174>_?@olC%M|9{`3u>n0C!pB~~jFQUza>Qgxf$N*PhkF6gw`tqb; zR#wz*EJxLVc+{kiJ8?7YOos->@;=-F;^B=BmbEULkL7paMUjgQRzIhcoOI*lpgYxG zk$goyoePp|Q?C)(@x>{b(9XRL@Of4?~LrJ2C~3D0yqJ#ZJ_UFF9EMwfr$!C{98xS+atH#cjq$zvMadkI` z9mMm5>3?&^U(Jr%x8IfNBWaO$C9@nG>|%JJ)&coG?T$lbH%%9m`k@MS`<+P*_c)$l zx}XYu-TismDsX=-mHA#Cjoar5m_S@?5h2hCsTr50rZ1a6Ta$y%yC?}A6MmSlcjC!k zDn1+`>tB|Y9bT9e+Ic+nM9W!E$7Cs?F~D!vJr=YgJkA8=ML8~FR8FUHE=_yrybL`X zec>hvtfMS`&O5W`H+swPNY~rvN=s?TS2{Nv8CE<^+Jo}Y8SkNx zm3WP>3fbK%joqrt+T~~yXV{lvJ@NO4ox-+#i`MaViaq+8aGA++`_aQoBd+mhAMB4= z^xr43E@tBc!19!D$(-^kyc((V)iP;1rgfSR^B$~=Xo+*SG93}Bwx1W+nZb)?5H0J9 zCeo%e55mT>`Zt@GLaCYLz?%DTlEZWLG!@F`Ii>Z5Zo!Iq}t^NlN8G9RjoU4Owe!&pOnhRL}vG+IxtYIf)Niq*J8Yb#S z98GADTElhE&2_9zGE7bt{eTb3&Uy2q4DfV3?i1>DE+HZFvWnoz3Ytw{gccojTUZ^P zbcPJ2Smg7yf8f<(U!UX@Z`~Df@-DIMUF5JG%&l~bsu@!~zt9Z}RMs>NSPw5RwlHD4 ztF-Q(B8$Uihe(v753Li^t1a7(dqD^J+`D`t#`@l6yUuySF^PR?yM7;?Cea565tc>B zb;6otI+cee9xBriJm-@|jD{3RULW1{cr(wD(dt_~%cxzvC%h|xt@J?oqhOlkG3Q}b zA^YJ9+!)+XccH(?S|Emt)aqHI)pFjTq~QL(b%+do)E_ysAN^WfAS%#Ntm}9Yzd6nk$`#kw#Tsjoatu0xPQ$1he4moll1F#+G^HV+(z2R^ zIc+sZ8N5+f6ThqA+&)Io5BDIK6*yue(~Q(=U2W5J-HJMe1h3}i#Esd7+Q)J(1 z(v0EZ^e1{P)f~B(`(9{eb3d*am9o_i5z>Q{RYPfGbJINL(6(JwuR@bKe(-fv-xbbYr2 zsw1myh^R_dJJaagjX{Ld5bM2ViJHfY-Ow~lkxw1lkwmxq2Xj5hHc^ZHaKB^7biBgN zgAM^cR&|IBuxv;;_tOp z%%}F9WUHi-48H0<@|*uTHzGASn;hQl7zwL&ou6u8Fs0kNg6Th)B&xJn%ygy5Jvg&9 zRCM8op$C`dXGM)<@wrXndDMe+X^&FA>)E``q`AHe+GUnKQ1v~p_pRufY1!5x5%aJT zDMWGi02=9m-R+E3U&%UzQVo2*JNy7By~S5(XO$rmo4?M>`qm=LtY64 zTi=DZmOW8RjWi0x&s3&Cx8-u7*Xxxg)Zih_6Y1)m^8S8GcnED%`dsg)c$}mUk$q*C zz48$@#*>z`v3}KcE;tf>={vN<=}Tlfsy)_3P8G1rCemZ(8m?m`dq|ZfOTj&pQ&Bj+ zFf2y$f$=rRhV(r$KryDGNm`bK#u&vIBw^sud5;M9H{6j^UlC-GQE6A@|ucE(|?ep-km5(hwr@cvV7a!Ng_j+TbVC zRvmiHYJ(nN5wD;Z0VVD`cQSM2WoxQHIM^Jd zS>?C-|5Q*@{u!8gVH|tVtjfxfO8v77VtieBW@+%`F(Js7HRiTz+~vpiE&zGRI8p;V z(mQSZ+bB6z^en2B;rumj2BRP$$xm8bDfEes_e;_ihZ;nq7yL0Y9?SLh)+YxS_MV8g z234xl^aNffB0SX<_vhF`A|s`kT>K71!QigThGtwe^d9hgb=bpR42O$cKsM5IXme@U z)hV@5bgL93V1h*iybz>n`E|p{s!Kz{!lT|tv726U;~2AjZVfiK7z9+xo9^zOVnYB{ zC#PsKB4v$nVm8GFfi;S{7H&x>WL}Xm7qpFmw zgL$)6=Y&gVmt+-i_vUkA*ZH6D*c9mI)tBb-s`kFP>FB^BVqBr&th2B?;m9svxwN-2 zNzg91Q}Ar&GGVmlE~}*Hee3Q-&Zh^a{_`5=$Yj_dp44)=+^szKE_C`=8~5ppl9dxU z$=>?5FBvX#ZjPQGQ+QW)+En*ux3(~F9fdYxDlb0FZx2J$D2P%ZsV4ER&C3iy@YG4Kc7mdlQf*kFV1{IfP3%^2Y-v;xh8zKG6&HTb3o}Y1jS%#Cr z@&wzGad#X)SSOF#BpEQe$f}@ObPP)-u??mP zJL{bx<&WEWH$Lohc)llcA!9b1mnUIJ&FF=PMpUU1Qtl8<_<_82{j8jPw54BZ)O&&& zilam|YWc|2_9|oP%?m!oL^X}=Y`o--%gJWfdl>Ipm~ zVpvIRk56u~nD|Bn!;LbNw}sKXC*@=`!CPcEp}QSGtlp7RbSJr^TFFv9BKAD9 z#pY~$um2!yL|0G)sYV6PtegJ#Hq{i|1lDIp@Bs8sh+ijLqUFfR%zJNcfZ_EHh5n0) zbwP=)rz~b$y=%k`q}_8wP3teSb9(a59eSCZx#Cn1kfWIvIaZHHxji*tgMJ^#CA8EI zZ`Hw~;)3NiPqDvXS#W5ZVCqE@qNC6Aj{03(@}_G`vFw|>0#%-1_|Q5Ox5C~V=v8DS z@0jwnf3%&+<=e~Gn!BEhZ_>-;0%Lq?zgxjIQsupjfWH0N#?sY68^Zv)RJi~wPM~Ft zPb+n8bW-tP(Z}K(Um&P*gh@q#JNC=Ro?OH-cX6C1n;sirW`9og`Tc_6(!cB~{)036 zAA>A+V^gZk%#?R>9N`sPNf<^Y&Bv_3J>HXK;jW${&NpNGT!DAL-oz${m7nbDE_G3O z8Ttg`+OpwQ=@jr>t?26|cSx6!$H+@Yg>2f`qxIM1=ltbYJz*d@H&kA#mVpmJXe2`J zU!kRLKqMuSBvjt;B71M$l=Z-NE$zt=XWl}Uf=}#o&AsqRPP8BHuelD-=H0c$WQP@~ zL`lpi^PYE^Ob06fg_G;Gy9Upga>YSE&JEcQS3gXa_T!#I$WOFCxmc1@x9Q=>&ZQ8E z?X!qEv|Ngw{q82~I`&>!N@JKsPUXEK=IhHq$J)wQY$2*g6dJ3%OB&bS?kPIPR7IPS zWR-^Ttb#}ZIiW&A0c+zREcXj*cc|?I^3^71oJrl5Y{98pc_>BpY1Op>N0VI@E?TRg zxmvS_Hye%)B$(}82J_^S%>0g5tUTXQn+mKP<4&}!*sYuWz<{K!pgT0s_jN{TxbRE= zejsysiFyG7@jp)soYu>!jnvJ)C?w6m(fA{b$EI0@hChH-tXdBJmg#!2<((&`%XHP`Q{=SB6G&qt1|Ry|6uuL*xh5B=PTSNmmhpK5;} znhdl>gK&Y!b`Aw^<2&_}juTmi<;>p%k6>fKvQe3ZAf=b4=T@?X4C_BTF|jL~Ro}ZV zW+m=W80>rzv5GOPvZ#r2m}B=X&H2)n}9OskXk#_2GhnTub?va)R+!TO_UoU?1B) zg$a*{J5qhI!WNgfga9*^jjCQfajsXbL+@lnn~ST$VU1tnF5RuHen|FL=uu_07+%0Z z`p&9ukdxo3GA>lt*dET34)zl|V(Qi1Wo-h*hrRjmr4pv8<^1V+7A3l-G85}YnVf8j z59S^q+xa*H@WfROCW)bmMEHL67DL4qCb4B)wRypl&v$Yl-Kj%a8z*^q{B~W-ptGii zAgB0{Zz7B2vS{%aND{Yl)m3zV-xh2AQpihhadKs}PWdwCQH|$nhHJn=R&>$o8J9b? zGhbKUbE*+oYFiear&kl;2Ql%2=-L>2(9Us7$C+~mY!uBAZ+{%w#__4aS!$_A)W2`K zMZ|s5(|#Z=t>KN?3}N9Guu_#y*{sNdx`pq##!b3Q?yR_Fh5DQsb{MK3d$0y+fYE08O(a^Zk!t` zvkIQ=F}R>N{)LEi)~)=!WR>X@>#d!8-#;W&^~bp;gj0&{zwV6oiQ}duFlM!SEe3tOY`ZCVrwQj!g_2bN)v-qd}%{iJ$my%C? zub3bIaRVUV8}q&Gw1REp$pdWaw(UnGGJ zP&+=0R7zyKi5T&${6|6zf=5wAkhT!?QFF z{i5%96^piqjnwb>&c%MzkgcQTwe8N_>O8S(z`fx9<9KolYJsa;GqD@W@2yW zM)U5>-(~@dnK5g0J!? z>sl*|;1axJ6pS^`yi2Vct`uebF-F6o9PKvv(J8FRrjvHT=qO5_lsH%vbXo_Eu>d9F zG&9s6zllj$DGYq)V(OL-^@jR;ZDc)x7H^!>nz)@NDi^SS#;|OV7O&h2de&S+$$_UJ8*_X+Fe7k5tQ2-yKMn`J`<6 z&PdJr)LDd_O&6`A*Fu~PJrUV~`4&FEKG8*|d4a#4eYnK00Uj{so{r?D6405s!>?EW zah5z-^;;#;fo#aT28Z={p2UdWL8W zk-0uw=^!^GRP|aqp5RlIG@~pk(kyJnkvH2s!hjf=s*w_e?hQ z*v{^L&;GnOYY_n^#G}f*K1!0XeUFu%=`vZ|^eEuH=ISG7HFn9AbGsO2og!Hx8l{NV z3_UA+8RR~V+4b1+4LQqkLD&ed1eshFk}j#aAve&q6j+Ikl~|C}t#f<`xHxj$B?xTa z4&5wymz>e|baVZ~Qlb>u(QjjQE1l#pD!%J4YZ%1m*r05N-*jCU&QhSY4ujxmcS*NN z9DN6UXm9bHA|fP~PXtn{3PQE5&*cW@9Icc|m0=smchvaD3!L7&nfNzeBmEU+Zle4~ z7148q_%Fec-#{C4x(*hws<*eGh(HsR>Lf#pndv7&_P2Twe(DeizOnhImi}*vrSjaq z*0IW;^A@gC(a-3GoGjQB7cEM;r^~mvacl%w)d0L`_We?$=@n>k`c>q z8_Do3ZYBvPb+}@hgslq~F0rU%z)WtzZNpWUp#v^*}=AOhy12^AShhe|&a z&lZ%uQf&s8wpa3zjrPH#*)xvpr8@A-6Hl^-8x$ItqZG35M6{!oKe0{lG)W+GXb-~) z1Ghm;RN38NwG@~+mstnJn2w+dd1=YJ5W*2nxBHLlq)h57&9dxn?<}tWFtu=83a57KQ$)V`Ga^EqYvO%Le$+d?fQn=6-{j^H^<(7c~y zU)Yz@xW#DizwtwQ^|6>-r9GBoU7}5Xfi&*WM;zIF;b+m}BiBFRCu{xzuY>luxl~t# zGHov)`6={drkC3YZ=B%Wl6;~+avXz7ELrD{{Lk|+$}6IMsT#>>dE|x4&p{0CugNj9 ze>I3x@0vQ#(S=J&_UOn$8!N~3K3H3oglJWC_qUbbp4B2^3*WE*UEj!15<91!oS zDlMTt`{>4U%=_x~r4A|i!_T{ZZZt&us`h2$xksJx5!p{O2*gUMFG1|f>xHmW(nF>Q zyLfr>(l8?SgzqLhJY*nSGf7yO0G%Vs#yVY^3vi5vz0&j zt|mVj%6~tXx&aE=mayixVT(vC$k5Mq;FFJwZuqGtBc41m?oh^P^BWaL z&(?mog!qw8NMZF|$`aDKD7NM|&YhsQ=cR3scmxiT@b}Uu)ozOIRqjlF& z)a)hBURz%EVaa2`Zcs^&o+joKOa&yCeI zeWdMJ6IstQwJqeaaTI|?<1cw3ew+T#VR4AcYI-^P$7&_`=ohDGN&VUZ>vP^xGR~Ik z=m<}e0M4y$Zue1bWj7QJyH+>ll00a9P&B3D!{Ub;D z?W?B`m1&miuZYiGX0xa(xzyFlG=A|?Xj*?oS!NlzF8O6#5dU_Yrk8+G_MPe`sCWlF zk0b1G4&lvI%f;Fcuzo(4ogGjPN%OCv0hmzUQ>wYbVzW!TE|G6~wE#IprE(btX2%FW zxhR?jOOl2;=4iAC=FoC!r0_oM+39}saXxiTOOXw5th9$K>vrg-HVgCK(V77U2im~B zKK?`x{Dq$^pHXb9tkV}VDqco%QeadpLZZ6r?JR65IU@a5FrfNa`-Ce$uT^YgySb~3@9reFgkN|X0(Z+x_9)!ZI=Avo>U6*KIX-vWiUZjH6P@bhNJ zj(l{lm!&QJQUoyc5)1#`FO?m;*!qJWuC`dd1P7Uu`5$-@1y+8V$&&uxJflb+J9bG5 zKJUMB3#<=)gi~{PZ~J>K@9@Z+mUze4 z++H8YpdnvC_zmqSylWQZ>C)18*&>&nOdgPxsG-l((8WWvw_Cm^fS_;oKM>n(V=9dX4eg@z3m90%9E-^43R z^`{i`Y<0iZkARaBClhKLtLyjdw7e!(v0`--3XZr+!Cc(xDrOOkS1(vq3_|*`ZeRlv0?>c{9=&@&e5M!jgf5&kV-5Xz63|L*VlwatUfw&^VL=? zR@7CJ7r&lE{tdb0^r`BQf|{B&ZZ9~%+jbvErtoUm!Qpk(>uaG2r~)ZMBRkNq4E}b>P=&sIe%H_ zM0rekxkFiFV$c&MS*4*1GgkGjZhD_}Dx0Xb7O}9xTtZ(H#)l@ZP}K3md~epK@7v8c ze{EX}mVZ+uQeI|u7>c&P!u!6b_F(~bzJRu7J{x~~wmnHo!!q_h??FeN+V9feRNhacC%TLMPuKJ zcn=6tQB=-GNH2DU3;W$dO8z z2*?6?AAMni2}~zJOv@}E=%4f6^6rg2(W_56nO)VmiVoG`S=Tab_4Gk5IZt z5}9r5fVjcDE{>gy`q0`uVpDaK@pN*fqn5(i`(=u-rTJO)gTcVsx(W;SK>spf$ zG<`mE!JNn+S9=Ubk4ntHEpc<>rCuFlCVG~d;Ty~_n?1K2vX^SLn;npxj~8s8qs1(g zHj^qk^e4bNQu=0zq{~ri35fwTPlEe9!Mht|$8hH-kE535q};s%(t((?z0wo6uSFB* zyZAt`C%+M%y;N1Y)n=`+>AM8$tw{GJFV*?`y-MBlmkHQ^UUHM~iE#p3UlRI6us=eok)dNsn=DJ&-M=F=XAHXBZ)-y6HnyRl>fgTNS(fEJL8lVFabf2=#coo+G0*B;}A|6m*7$ zWP;Lvd9H8vTo|RG;eU|vTFjB<`}JGHHhofKGu7F$np@D`+w97VXl7c)H?9pen~mEe zk@P159PV@WaQp7t%PQ;gO(a&1)e)0!(3T+^B`*(Duq(QLJ$rnFEc?W>eaf(9f1c~M zhVCz#5J2UfE(yV@4A?dDeQsX%5QA!m+xDrPu@9s@FYh^M@BryErr!TV{?wlWLH_5* zV&Yh5dJR{1`awfIfQw=TJt7a5uE?t;iMP9_Pgn4}oRAzFW9MIYzmx?Jte2w@OY4>! z#|+#SQ30$LjfdA~g{7E#rUa^RPAOs>B7vV@(tWdmGY|!bBDNIN(4D=6W*d90OL4Sj z_6+va(1FGg14|tCNQ*)B(PHD8i#UIBd8yB?q9Tl^g|2F;j(}s)XkuZS_D#}Go3u~J zUHBTJ6RG7=8Z{NJknS_;1aYDRzKdtMxB#rMGUnUoJ}u|jBu}Wj(^Xeo*%ABwcy+_k zj?9p&_Kc?(&Y^KVFjkmN5ne?%Ul$AcRt^L0S{~WmGBJ*O@5o1lr`n3y*&jCiXuM*7!Wil!{G zH86^H!=3fk;d$xHsOSp~Ps)_~wuokZ>hGTs@yWVDSkF%cZg)+8n8ti{vjcrL}3xu~O#unRMyiTs-|2MWg zzIX8A$4|Nn5EV}Ieb2O2@TzRJDBgt7P;)B!_77qeHVfFmUCDl2$jjl}df4e?Ov6}Y z*zn1q(Sc;$k{H{hAQghxdcoB*R8XQI3Z5$WUdg*wzh;Hfcjqo#&OGwz)ky-3XX?bF z()vKLPV-;^;8Oi!L3_HoSXXS)9Pqr&!(T$1M0PT_3}auv>dTImZ`@xtLGt0}Wae&N zmLgJ%m`O2wRI-fiM3K|KU;KlP+<#bn9xx_KIL#cGe)ZC;GDTeT=@c!{tLyv47=Y-D zBOc#>@wjyAH>3Sj&j*?>(86NO=T|2o;ZAj+!Q~S1gA#c9^K{rIf1LV$OZgJgQwKyX z=KCJ`4@)c|gp~{HMrSISOpY;&KIk882ZD%O7>?JO8nGuF0lju`nuf!kA8@U&wlH2= z*{mX{z8vYGa-GAgGBMH6@K(#E@>dC{UVMAjl+!a~4iV zUWT0wr~JrQbzd(8W7~Mh2=wFSp@oMtl6D)rr4aZR7O&8={Fxvww>VD_pF z`i6xMyDXMv#pvqrlcM1*d{^~OLjk560%Q2No6_s4=zhoyX?7!xs=F9Qd%6$WyS(nP zkh%V~T9ZUFMs@eT*AdKVF5%a&FnA9&z3xjXe7gGA=>Om%m8p(VRmONw zrT$`a>t7=7o4^v{+uX~<{hffBPD2P<_5ZQ=oncXK$<{{D9aW{Nh`WCJCq4gvjS}w2}<%; zckc9|XBQKuWlZgLkCXJD85xzM$KOS?Q0#;n}Iq>iLdWN7Ah*@|9uMz!^oNW z8f&Fgi_sj7QkC-*aKntYuck+_!fN8(_3f%EM%CFBX?Y2M4|{9m)mOc)hx?{MlbuF2 z?)L!$#y(FAFkwyE_3`|lZ$(|X+ZovCjRt*K%V~0lipcj;&z0W1M0LMz9pe()sdAc= zn!pz%p0W{puIthf7%{f|yuTuOx$hR=d#zNx*^W!08gJ7;8;rwo>~uPJPB%h zYeOy!?s+>$ zD$v_-`_&Yw9768_>h@YWsP#~)GlDi8SibLG8P>$puZeJ zFq#z+)USQ9W~~13Wie%S=CeX^V~xiWjX?9 zLZZ(4)p$5jUpYW=0#A9!7T^$SDzJ3nYik1Ae6kyAUAqVJ@c0px3^%UIP`@iaQ+6Dn z2LcpmmcZ=dSBH2_!3n-zJ2}*(Ff0xfk*Z=%w%MDV+F!mO=XXy=jW@aHJvygf z=dI(j|JltH6VC^i*_w>E{h5KC{&@Oj5tsB6neSgrM69Gk!may$$%|3#S|J)PYo$a) zXI#gu$gD$c9&mPQ?2!cm9sO{5e}Ax$^+fftsg}&;xFZGXr@pFxIPT z%-s>2b6gjv-=DZ*eq>L)v6w5FcBQju)8u9^QSY61`3tQe4g2X_ESOb?Hz``W`@OHmY zV6f$S1lZ-e+%h$K=uW8mHLviR0pD1~Bp#VxorY2N1BxSexv1z@DhtJb?JXv3IDK> z5m}NsGajRf{6AcQl^ib_W!C(=#+LhABeOy}tN0)5;NM<+;A4*@Slan4dQGAa+PLDm z>3Z%?TOD8@P#2mCcHhG9+~s}5dB=%*Oq8j9bQF$xTlz&_^~C{3|py$uvShQD*AJ zO5&e?al&tRb53NDIfYe5kxafB@1TP~p;<9e7_U`xYHY-b2O2MAY!n*rwhK`MrHo7B zTa2c)fYB=l+LlAtKN4LXs2P9I%}cVE?Zn9cssoe)Ym-+22?6WEp%{PTgN;aaDQN0x z)>b7nlTH2j^q`AFYtCt|i{+-OG{Mu$r?MB6J70HKgY*J88DCUT{(v~>fUUB8tl2eknEg5L0ge)t3ZajH4gD~(I zAq5}HZL!rBvEJePl*b9s*rp~}XQW?LU~wZ|72W`=~W`JLZ>PzV|g(m5u_HBO*>f-h00HcA#QQToHIDH(VvHmnHZ( zYPe1h3{A68dOX6UCtx3=L=9^Lm|a9uRf6)y41p6#Z+i6OzSRSh4dZ%VzlxQF)*T7v z_O_@c8jT(~IsguA>^G_RT=h9h&yFy??mK0A?PCnts_XSETNk@Zx3j2XUe1!!LoNKw7nt>^G>iGF47RNADzu}B;jz`do9$f+ND1dIi`b6aKCo` z@%_orDA2%oLKSVD1Tt;|C|yS+P#O62(ioSa7gHCO(A)j=0LL@io$DeW!@00qz^-+m znXO(`Gt(NmWF5ltnQ2Pekx%UHS>xB|IcuISDCr-AyNEdBqPu0n!t|O@i1wKLZ8#D6 z{;%Zn&JrKS1)LFLYQ#)zkxI0Vq;Ajc^^C#Zr&p#!!t81xr&s76a=wx8u@$}cvxMER zi1GpXM3HasJi`yZwEYBJ9U&YJ~=OYBM4?SE-GA!e6O&#n~D z_sZwYmW1C4XX8*e>6+_F!p^Xyixvo4+DZ|pX7BFF7l&t#5IZ`b^!(QVb~Mm1`Q8kF z#s&P@XLmvxW?E+h;u&YJ&R_d&wZ@#O1l5XqO(N~BUzc8vtyG$~|n}=QDJM z;E{C4CVi0xQtGsBl!dgXkBCYBssvi;u1VK7oG~)yA4M3Ci_h<&6Yd`RTomi-mu_7O zl50`UPnYZWx)X_4azrd*J~nicr}b&~!R{tS`%+=(X%CWVHm%0FMAEk`u0Uo%A~az@ zA;iu>@h3L#cY_k}Lu2c2IscS8?ZS6uu0c2cRHad`LPF%-{!DM1jmr z@xta|2*af@Sr!6prd}XUQLlDy-;Qr&c*STPMYVu!q`s_j+Z2Is@|h7xF_4QV$u%U4 zj%4_cJ(801IH>X~$SW=K=oj$FKD^<9f!J{FDvXOc)swC{-y}OShsT6?_{4P4$GC_n zahQ9zZCgD8DRF`epfpbvM?I#e<~ZA7_czo7>hM}O4{ezyF$uhXB!2zH1vR+%9Tf(} zYfn}2yck1w^*(q)IR99>qUVfRSA^UI)IQZ)a1YvjhZhzm@ENrL+6AOaTsx&<@#(bx z>Sq7${QRz7EAqiv0O$2EEpcQ_D467HB@Lg$3Ec@qkNXrT}s{1=B6Q!-HzdwCC0MxTlZ=d6iEDTo zx#LzMZX1OXS);Dj6E#iE?f_1aEf^CDalo562`KK0$|>U0VxK0=SW^jtA~vHzE3n5* zZv_u@sCxsTFKyFF^e;imc}nT15ZWeUAAYu)mg-mVU-qIOs*aXzb2i@Bi&>G21apm5 z_3GHVFX)qAKSBqNP+q}if}eT1tM-2Ct=KIguRj`(-wfwVpnJgh{uN_ONb!T?SPVU% zz$+#N3-G$V@BnSZwXpam$HIfrM4{4_5$c_GHZ8nD>W7`O8w6W4*>hnHQ@2oo%sV`g zJstPu^=(Ik>@PrY#;_HjhuQP|SeV_&Wk4X_j)&H~IO|77AmquzBYS(IegEW!d^?uP z^T7Fbdl#*j*?6_mk#XzPde*Y*Rks0Jg|OV>$SPO+yIzz++iO;-316ary8QY5Hk{YN zQ_Jd-D&6-*q^8+WvbZ^kB5%b_pBF5qJ0Y zM5nMzuH5#rj+ASn*COI{^$LLJ^jiJeJPwkfs}4e-^B3ItIzxp>_FT<^NKjO2n^i*Y z3wM12U70JIj=hWg*RdL0tdzWuN<2a+SV$=6jg^qoY#u9F2`+w~ zox8%cC5)xnSjd8eyoZ3}ZZJ6r?-b8gnS>UN*LtO}_)RvRRLBp!R|+A8T<@%J*J>ZD zI+O(*8U0B4yzW>V7D=gZ9K-jo`_I{n<4({0Zkn=>={s{Nz8Ti#BBZ5+G$O}<2Acf? z#bFo(sjLG;p2i&8&#ikp19D@Wu!n06j$6cfpoVRhHJs=qAa&&wn;n%nBDRNIK`hhhk=oU@Cqyk_Nsn-%5mNqz#EXEkVG;IDtus;Rt@^ur&6||{ z>!q5FBj=U`+W~jYd}6FAP3|ES!Z?9Td;Jl@RC@|EUKTobS1xnst9&1CHA>5sXMjZDT!m2irmaK2$F zCSH}yor@zsPpN>DcsB#xOBDN~VMsbsegZNpuO1xMfl9}XV@jH(K$69j)MFzy@-!7& zz^$n-O~J-J!G|uFHFDGsy)Mk@T#Mvx7E&Ls3vo_)1fOW!4t4D*ejrYagrNlJE}J%= z-55c zb&KPHhIoUL>ikD0I0Q^?S!pyh4Mbns9KH0ry44>o_Rkr>Zx&R^2}CO;3SbNN{!X*( z8!-7NuZb-t?4CHU)%)L(moQZXVA7SZ?UPhTwa6Wb8kXf9w_PeA&Z1beQ9YfRP#E*% z)3<{)CF9g_%Ea=^Rve?QLbE4k#nRYv5nL{r37%1Nvn z?!{XX=w4oWDapI4+L6xENuYFue6GN=0wi9fjs%s^-p;=1Oi#BwuQ<5Qwni%K)ejgH zuxaRnRv3%K`9niay$X4|n(To?*R>7}zt^m4LCm9kOdjKAI68;vJtW+%zIbwXV~)G| z^wp5Z%ognG*L)jkI$G|RShU-+zrlO}at~=s(pO_RVkfx>%*(7ZjPGB{J>D6QPT zUs1a@h4T$fvChkduJgYb(H1&}m))OUA=Xx4;02jhenLpW?xNaZ83%G*s&?B+;06>p z{eGosaHtk0fPSYDS25rsD%L}(D=tnSk%2;(EEt?-6`McUgF+VXwLxu$7m{H#BO&E5 zJ7rx0EU3wvh-%?|W=bW!`HaZ7w?YkcN0x-PoMRrcWVe%W5B<)>|LK2D)ir<)h8a|S zCN=fycvkM~sugCf15fmViD(xHqRp3v*5XqxE!P-Kw^q}T804J+E$5-DhC{zfO%+Z7K)vX>c0V zjWut0VdBI>qG(Q(%-tw-dxI%-vg{Um$mAGw6lzCx&2~lh4~H3~@tS6wK2v6eR0kvj z)8+MvTKo`hyw%e)U68s10mvxT)-50OdMu zAOAb6X*EoBU%w*l4_L8gAtyuO7EH#IWKPYpq0 zSRTgE*vxf_l{iSP`CrB@s8mLU{@RQ}GL1{(x4G5x9B0|^4 zTqwro(F=QjEVR2iWZ6-uta|ZJ<^n&#$$n$(FfjOKC}>_>TF@^C;y@3N^wQjAbdc8p z*Pu8QOM3Q5N^6fAw8uJf9z-8S&JS<1^>4RS+900wJPoTZcnr&b^cl|)hi0k?h}aTW zBD0K9WY*Kf?tX5uosCB38%>=+197mlKuW3NuSF!V*a{aL!MNME0Mm0n<6NO`x%j*7 z5BZKjQmQ?Ev{nm%;Add{uC)?w>U_Q^+F{=w^mOl3Io`=Lqj?0yW?#z#j=S^QubLpS zi3X0nzYxig`#)yh-)L< z+~db*DmQ&AioS>R7@nM@;?K5O#zi!-eGI*|#ErkRiY%`1p92^Str{OYy;_F6IkGT- zFlMBAX`lmbZ_rScjpkQg3)2v~*m|%!l?Wnu%>du- z6z>$OF(CLDW(6F#jeE~mk0D^WvAr^lb@aX$Ew#j^v;)q-Mu(uN@ovcU2~tgl*d;+@ zFRJ}sXS~Sq*(ES*+s*{q{AJr8@twW@*?+d`rP_@Pf0^O(U~}01?LX~s-Ef-4GtB@c zem8!h+tphO>AL0e&C^Oi1o0x_)$?7OuBIs}>04@%LzT7s_8x`Bt?RyuuOe9v-8x1} zI|!Ust?u;?E8oPI_C3_QH=Y2rks!D{aUfozQRmLRR`qps6(8kmj_|%$d{nSn^2Ky= zftG0qKwYlsty&;+z<@+$*)SWgp3|qJYgd>}xegC(s#iQYnu9Koy{I#*qfpCIroClJ z5@(R_ZYgBiVyWBOJKL>i8-hJEpLl?(!!>CuB3fGGc%K7MOw7-Aq@&e}KikB4>+55p z%%ybE!3-lw7p17>2=}l<(~@l6;T7NF$$L6*3)2Q%Uw6tlMF)x!?m8Z1P~*<}E)$4) zT~x=VYwn`zvyjQEpmqb^#CNyOZ(003Ku&g`{VpxI>g8AMk~_-mO1(eo<+!?Bm6|kE zILR(G38q|x5hdr^DBV7dSsBu^zu~$LguMX1<$7^CvjNEY&3q2)Zu|T}M(OVUL<*1j z>j6L<(MEyhvrhoQ4p~p9dqI{WTQxzltF3!KKAnkpwt7Uaiz@T6N^#iO2+dYOt zqq!*U6z+OqIpaU3{D0P+`Ca9@VKb!Yun{wJ`R1+Peuh3p?88WgH-Mg`FCH(8j*kk3 zbOF_}uIeHp$&O=<9uszo^l0wHy*MVD*^5D};9g!RxZ#4FJMdSMCWHkcnE}5(oV+Ju z54E5sc3A^wI$3CvUN0pBkYV9IH{t1(cY`RLaqfKX`I3VJxzN6Tz1n8YkR9z=#GV1t2(tgSMtvpziGVMqdAd|8EMxRx1clg+$xY^6}OsYaj; zI3&CSrStbJpX6-~Gm4pm#x5UNT0L4~Z^{Pg`F`K07&4rZT98FPU$5gsFDOUnyXApQ z)~}<{j*vr2`=8d`m6NItr9#atOgK`NUW|P zPx2usQDqoSUcSZjsrQ6BkP!)5zex3PBF!%ywnws>PQa3g=SZN6qANFn6~($>WiJ%+$CdGtsGRBMILpH6ytq|JL_4NE|i$zvxon zg+#F-S#)^@OOZycG6|r`r8IX{i~UF%X2tdvMLVhtZ+WECsr}HP zZWL8cO++tz-5_O|?QPv=QswIWE7OC-Rep0&7)8e;9E@tX=b~z&xRZ_(T3_}%U&SaZsK>qqR$B$vH%!EP#|~G2Bp_} zw{Rye)OuawuuTE?{1S3dGFNlfCES*cWJ@o#k#>72v_^c*KFR=u#79bSsAa{H zo)ocTSAH+T7871NHyQ()fLzhor3OE#4WK*4V>9%`hIpot4Tl@8Q_|Ws-nv<@>xJ!9 z@jt+QK^!~Ip2(r6iHrwC<{}WVTR$1TfC_m%(Opj=NQQE$%vU3AW3trD(`Jj;?k_91 z9v>z%`5B(|3myV6A5c_8hTmTVT7DE9sB$rM{Xyb&vFdtuEGB{Fd@NPZ33ZNmadser z!ArirY!CXKAfozD+$O9fVr{yX@AiESq%=b%<0=fqfw<>c==5=qR0G&crgu47h4Cv7 zWNEj?bG}aBBHlv0e+9G_nK~0h*=s$CUV~PH;bgDM6O6z1rhN1^GJ<}EEbMD@^`;xv zkzf{nX(b{S<*?C263^y($Driydq7UXxwMPanfJxUFSNIkW|@J?S^8aG%T^JWp6c;m zgpKg?b zhF;lP@X&d$j#<41JJm*{J@h&uWu>58x0`)pOb@Eyh>Vdiq|%1bEa{S*K!J4Ly)IX{ z%(u<;kz-tmpVCbQ0J}NemH$`D@qb9IcGzxsWeR!7fbu#MP&zyiSSa-lB-w6FaJGXZ z^-MaEXpCs%o0Pp|8$8keZPofW1zj8Si9wpx~6ejin7+Et9sCc2{V!O136!C-$ zE02VWobEz91L}aNz!pmIqorz%^&s1>C>#KnqtT$XsHI{(Hnr>R0f;{xRmLkS2--~A zmZlpSBAh0?6|9g;>V=n90K10%1@i@G8#qwIPElIe-xEAl&m}xLu|Po!)yY&!TGGj# z-gZQrABb+ESIasdUB`SfU9p94sv{0IdY@13@Y74!`NxMWm8wX~MZx1+`^WdZh6s9h z5eIgt(4E^kT2_|}&${>X3XZ4n@eQC%dM#O@SQR5_w~Q zEC5)9JkoIwmy5E0>m~A{;Mj$r{39d{u1s#)KdObJ>qR|%AfTk1+xi&oGgR7=yKw+F zI?bllTFy!VIsNq{KcLB}XyNALO>#0ZmG^%;-#&R(N`SX(Zm1HyI&L%N$@X&p{ z#bB`Kd{lllYY6@jn!*3dg$tXFo+5W(HOm~QzrM2QAt_Z*)}vVH`wmTT|(&+&KEB;17WG@M)fT?^pY z2gK}FG5~y!Av2GJo6uF0th6HK5r8ve#Nh?7YyeMN+5c&35yY48Fmcca8Iex{wZOk3* zVj|Xi?9-lLPqj3k+9wYxg_G)#CHJKsA!G|3HQyn`)C)Rt|U zor#FWyz5!b;1d57a<@?ZF34dseRBw<%NC<%1=2jeOG6w|}Cxq$jS6_wevh{Rbi>OSS8gDr!6#QlVplJ9nxXiV@d!9yi-S z$)sG@jX8sVb~!~45r190bG2W5{_$Hvj84}1#wbn0ibp9PpXsIrAYYaW>sy}?8im*t zRP*;iOUpSH4z@Z4^a?AO1FEaMI&^FjYznJ5`k?vPm3k*vd*^Ug2#a#!#Yt~oo<6Z2 zR{hm#_9-Borlhlbn4FHaYB9s8WqE0fxGa(dbJX4YJh8O65>&f7kZrnLH|OedD$T%Q zH}nnI+~r!(`;}xQkql`EvkKiTb#r;2BFbDQ=zG1<9sdpxIYBRXl)7TeE>liR06~G8?{#^zKw(0zA>$j=f--8HdT& zgZ3u&Qs?~q_Qo0}RILbzK^D-m#`X(|c3oiXaU`8pSO`bOFvD#3gw%rDhqJsL_fV5u z3HEh9PDHgskc`c%s6^RK$ja7p|1Uisw!<=_lZE+spcd(qvi6{}P~WX{rMyc{&Gwg8 zp3cxxPl~#+a+{dOUE!s?@gRQ4p!r*wLo&f}cdb?Nvt6_Ea+@34Kbi0I`pT41g#7)! zXMdOyl}YGVPwVzDJvgxMBxgBC*8cQb#<4326Z|iC8`qVmvcAN zCz;a+zSyRhRuFsn@ddfrf#u0Fhw@jqCyC=!r|k6Y)h92je1@}c3a<^Vl_j_VgzRo7n523qHyvY zA$!dl-fq;P)@H9vinOP?fu@f6ZqVuFT;WXTy4P4Z>v&}^nCuqq93?<_Oi7eP+89&&CxS37%VD! zMs%>oh)K9^d%ZA)Ojbir+e8-y2EK8Ls-Aw(oh)_+BOT*Nyxax1C6@@tF=1+x_r!5! z!Tl+Xj#Ka9O@>~m8@uL7zOV_4>B^ZeHVV~RB5^~msMQ^ZX@xV(3jU)I7-TvbPSDVWQZL~h+r~{Efr>pUT>I?y5v~G>Y zE?oq#!q9RoiM-~#R^p+~t3J^ut23%qW5|T{#cFZ~T*_@K88;)(W2ti z{g{!t&+nEu*Wf7WrswoNs)d`*8v;~&f+(2O8E73EBRaAB=WyraXe@-Zp^W~T)Qt8V;B-gbi3(SP&^ZCJC898W$ z4T7_xwfT`D!7;z4C*2zYC5Ol0ch1~}qN4<-gWByoYy>oR=X)iT(bWZ%YUF`L{nWPHjXTkSpxE^9<)*{Z!3&1xC|LEa^5^_6FzRB zuwt)kgK3e%JRIOGAMnb%?_a_5r{{WoKjZ2&8TrMHk4|^n)r_m>TtI8kxuj2!ffqqv zOU`GGMpGJja|o;sRz7|vUuh4kfF|l|1x}Aa!&lC{5sYjZrtyt2GG37Nd&F9lE8bqc zbnb<6lJJmaRFE~cTR|mM%oVGq)AIWEgFZ1>2B)4~`F%TWlR@#mVpjA{I<}B_x8HF6 z<8-$YK|=PZR`Hy~fwm`urmjQ)MG}~)T8yB3PPtUj+BQ2cu9xWhIj|T#Rl8Ihs*2($ zbZb#6YWx^T+CFOISxAJPdK)pzElaJec@*X7wA^D&$|!0LpwLZKea34L!U$!i#la++ z9ehRJ&ft_btp?mi9=+u^#Y)&3P7aoF`AfzW@XDM~*x$Us67>dV1doMo>r6ihR=)nU ztj=w*s05uLEWFW;ZE6`2+V1G*iW;y#Q>Gj)uN@{nJ2mXxevWWcu6Aud*PL2)4;N9# zcHK(H9_Q!KVWg7lB)cGz>-o}ULVlq}cr(%TtpU>2L&^H};l1u%H*4p6Z%$ejz-pK} z^@g%k3Tv#terwIYPv$#amVZC(@gFX*(~2#43wUU!Zi%{)6J0m4_Pv%9LmtH~@1OH= ze#*MO;k}6tEA0~J9EI5%l~>w!dv%Ce>bo{wdWA>A!GBWMU&Tgv()x^`l3cZeRg3{F zOoFx!^xD4U96*}GAd7>O^sd8cj~F#-HFGl7A5UV!L15TWwp@(ZW~#SGmRYGO6gK4& zi9UpBJLL}sX$crF5Q*6Jrc)}z0{8UzKCf!pB3K^*O44@z@VW-AHheq7NL0_I_L->4 zWR&29_kA6^Fxza5w$wIK_$Lqi&4K>GR=*kF`I2kxla$J=W`RL?QQ?@fb++uA>+S4t zce~)DVcM{Qfgt%RdsxA`=9imZ+lv>xmaCu!Qd~ArFjmzRbIO)?yk#stMng;QazXWM zV##XbXPwjcpsW3c#sL{^R4*f+PV&0EEGD6dGbeV0=t@Oa^eK&O?`9Y{2x5( zJ2F2I(hICsVmIdD4cr&un?A(?UiDCQda%bqRKOI!tK2c;7(*Y=bZVw}#|1>8 z{n%kod8dgu%6pUVYXP6!WYlW^XcvrGNLDB*v!_mqXq-2zV(UvQswvKLRew)jr@dgj z`r|HTvU;J*231zDj*9r#cMp-<2;YiCmmxccjcl2({3$u!s>kheWCiWOwm7V}NKv5# z2Or40I}8{Rhma}@r#+1Z)61cDZB`4l3WCg#>Jd*4u@GTc{by;L<~{{3O-p#QfGp+B zEFjFzRV-@?zn(W4fhsOpeysc_4GyGN-#b|b>BBYCqaeKCqxDFwr&8_Ni$#vB%*iwx z-gX91Hr>6tan%+*tLZTa2EsUAIFZ=SoKQfWB+{*3s8mq0xPi7d3Ji_W^J%U8l2h8w zQx>U$Q(&*#X+$rwjmvoN2R@H67Y}pZ=d7Hkf3?c0qEOwkk5Zy}P~P9A*L3$#v}$5b zx%OocpP{e6pTl$~<=r#a5-DO@H;=z|n(V7`?I?b3ws~$pBXOK!g^e~QjMnm+u2y+b ze@Idr4@_!Md^4H;QIA~!Mhc9H-i*IyZ{mj|9%kwi$Dqt7<G64`DG1rZAnwy`w~IWcG&8I=xJ@s=}dNTV_9M#qpV<@CBhzUL%3;p8RE0QWbL-wX zzaOcZqc^G`%*w$`4ivJDXO$<}D?w{=wo^FYiK3p6QhE1In*?)^37S#vaFzAoX}~#l zckL+?>(_L8dV)FoPev_3J^DE)5vNf!m9se`bxGQDo%rX@1u9VXt{z?YsY9KxvD6tT zr_6^=0V9dk>bbUyYuJOY^94OE8*J?43+`nzeJ|HOM$^~}V>oMe=v|UcIfR;b=TM}G ziAO%4Po-v_UR6N7pAI`z8*@RC1IKS@K0X-j9UkQ(<1GE7iT=4y{1()wqO_h3RnKYo zU$uq|zi5lXa>c;6VUs?TDc+)@u(~>O4(Oy^_H=%_gX@B@)0iWc$zk{cHd=UJ8kS&{ zd1*Q&CW&gHuANWfjsZp}%eAyqK;bP+kAOC>=!Minz1wWCd_hoGm0lggL_=4)|BNibr7f{9$qbTpDP)OBSv zY5=;o3|$-%VeF*sC!6c`Tq1tqMPHe@MrSoobB1X}HjcWJM*+cu(Y`dE(OtFW@#?l9 zH9Q@aonVi(OrPq>JY8kGyp!32o&)~Mwjhe|?VHK0r2;_)x=!&Fs%jr-r&`hc<>#xH z5c+P0d6i%K&<3?#+Y7uaD$h}*z7n5{gptvG5Aw^k5*GDUCf6~Rs4TJVvAWlTHf3@9 zSo62HYzE)ura$3xYw^LN#-=W3p#1pg5t#}3f*SO!4d|n5fdk*3Ps1alHkL2DhH-Bp zi`xO`;x^-2y|SIqe3sYwQ@++;=D&V>E>dG9u_gg+-?=xx7p;`6`Bk&m9SmH1n+@DV zhp$E7O2{JxV5GzArDy)2N%T(j%WLD3_iW?fbNWp|?S|2Kb*pu#wn|(Db~+-sFjPeX zSJMSK+o4D-;ys!6Mv_$)mCa&wZB#~x^RWtLdM05+UsENQ=%MbI6!O4hGR14XCY38hD#V0?i?+2j@c02|>aFmZolkieOZ>ke)@l;>2+^sAv0|%!u@BVQn zC`CHDKlH4~N{L2#g2_hoR$OoWVTnV3s9Q_V8`MYNi9`Du%tTRke7DdXjaqF1D%hE^ zYn_EA*&wl63k*nIT5qOCee6L@26ENYTmU#jELJC>qCXcgh8`b#z0InR0+>UyS2O1#2Vux6W@|J-u;g zLGGErxi9Nr&@jRfnmd1UY0-WIqjg5g08&n#1|0gLZpM8y2b#`iAT?j{&mH-1?y`K% z2g}0_`L4^Slz;ud*OgLDv%;#RMnP%8bgZ3^o+HYO4@U@6I2Yvsp@M>$jj@D=`)x;N>c@YvvxZ zw~Ez8jpI7)_g^9*cFN{xJU2HhA>)6-o%Xva>+yQ$$z^jqkiP){W(0i&u!(^PD zEc@~%Svscg&GQvneEJfZn!UD!^?61W^4V*$bN8j9$!f~wUF$K6xrG-A_gxR3Irp+J zr9T=1c>>qHf{cjS2Xa_G5L|r(a($!#-80pX>&#jQxNHuZH?8`^RQ@UQ*-9P9?7MGY zS25%i8ZDz~O1m}lD(?wQ?xQ6rtmrqRJ+L!~ulc;b+d^@e+8Zj267`!EBRv~iRf%;f zDbU%Bo2bNgrxt_qLq4r`qj2$?s*ml^8Cn#0v9J#DmOKv)^mUat6){FGnrErE9gKZq zd@WOMWprTFZ5dh93lFci-`!KHa^2Pg bV#UIqky@6eJs@Ma4B6E$Fa}@r9A-pQ} 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

q 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

dhQ{22H$BF8il>&aM0 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]l>7{y*t5kw(Nc-j>& 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∓X;8UFWlF1?rgEFP}hTj#o{j?7K^?h0EmE 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 DX%_)i literal 0 HcmV?d00001 diff --git a/patches/0001-Integrating-bmcweb-with-SONiC-s-build-system.patch b/patches/0001-Integrating-bmcweb-with-SONiC-s-build-system.patch new file mode 100644 index 0000000..89b90d2 --- /dev/null +++ b/patches/0001-Integrating-bmcweb-with-SONiC-s-build-system.patch @@ -0,0 +1,177 @@ +From b27543a61caee8e7243f18b224a1dc428b1a30f6 Mon Sep 17 00:00:00 2001 +From: shreyansh-nexthop +Date: Tue, 2 Dec 2025 05:32:30 +0000 +Subject: [PATCH 1/5] Integrating bmcweb with SONiC's build system. + +Added Debian packaging files to enable bmcweb to be built as a Debian package in the SONiC build environment. + +* debian/changelog: Package version 1.0.0 +* debian/control: Build dependencies and package metadata +* debian/rules: Meson build configuration with SONiC-specific options + +These packaging files allow bmcweb to integrate with SONiC's dpkg-based build system for ARM64 (aspeed) platform. +--- + debian/changelog | 8 ++++++++ + debian/control | 46 ++++++++++++++++++++++++++++++++++++++++++++ + debian/install | 7 +++++++ + debian/not-installed | 4 ++++ + debian/rules | 20 +++++++++++++++++++ + meson.build | 5 ++++- + 6 files changed, 89 insertions(+), 1 deletion(-) + create mode 100644 debian/changelog + create mode 100644 debian/control + create mode 100644 debian/install + create mode 100644 debian/not-installed + create mode 100755 debian/rules + +diff --git a/debian/changelog b/debian/changelog +new file mode 100644 +index 00000000..21f41f1f +--- /dev/null ++++ b/debian/changelog +@@ -0,0 +1,8 @@ ++bmcweb (1.0.0) stable; urgency=medium ++ ++ * Initial SONiC integration of bmcweb ++ * OpenBMC web server with Redfish support ++ * Adapted for SONiC BMC management ++ ++ -- Nexthop SONiC Team Mon, 10 Nov 2025 00:00:00 +0000 ++ +diff --git a/debian/control b/debian/control +new file mode 100644 +index 00000000..dee8647a +--- /dev/null ++++ b/debian/control +@@ -0,0 +1,46 @@ ++Source: bmcweb ++Section: net ++Priority: optional ++Maintainer: SONiC Team ++Build-Depends: debhelper-compat (= 13), ++ meson (>= 1.3.0), ++ ninja-build, ++ g++ (>= 13), ++ pkg-config, ++ libpam0g-dev, ++ libssl-dev (>= 3.0.0), ++ libsystemd-dev, ++ zlib1g-dev, ++ nlohmann-json3-dev, ++ libnghttp2-dev (>= 1.43.0), ++ libtinyxml2-dev, ++ python3, ++ python3-yaml, ++ python3-mako, ++ python3-inflection ++Standards-Version: 4.7.2 ++ ++Package: bmcweb ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: OpenBMC webserver for Redfish, KVM, and BMC management ++ bmcweb is a webserver implementation for OpenBMC that provides multiple ++ management interfaces including: ++ * Redfish - RESTful API for hardware management ++ * KVM - Keyboard, Video, Mouse remote console ++ * Virtual Media - Remote ISO/USB mounting ++ * Web UI - Browser-based management interface ++ . ++ This package is adapted for SONiC integration on ASPEED BMC platforms. ++ ++Package: bmcweb-dbg ++Architecture: any ++Section: debug ++Priority: optional ++Depends: bmcweb (= ${binary:Version}), ${misc:Depends} ++Description: BMC web server for OpenBMC (debug symbols) ++ bmcweb is a webserver implementation for OpenBMC that provides ++ Redfish, KVM, and other management interfaces for BMC management. ++ . ++ This package contains the debug symbols. ++ +diff --git a/debian/install b/debian/install +new file mode 100644 +index 00000000..f6982776 +--- /dev/null ++++ b/debian/install +@@ -0,0 +1,6 @@ ++usr/bin/bmcweb ++etc/pam.d/webserver ++usr/lib/systemd/system/bmcweb.service ++usr/lib/systemd/system/bmcweb.socket ++usr/share/www ++ +diff --git a/debian/not-installed b/debian/not-installed +new file mode 100644 +index 00000000..5d12edab +--- /dev/null ++++ b/debian/not-installed +@@ -0,0 +1,22 @@ ++usr/include ++usr/lib/*/libboost_*.a ++usr/lib/*/pkgconfig ++etc/dbus-1/system.d/xyz.openbmc_project.bmcweb.conf ++usr/bin/unzstd ++usr/bin/zstd ++usr/bin/zstd-frugal ++usr/bin/zstdcat ++usr/bin/zstdgrep ++usr/bin/zstdless ++usr/bin/zstdmt ++usr/lib/*/libzstd.so ++usr/lib/*/libzstd.so.1 ++usr/lib/*/libzstd.so.1.5.5 ++usr/share/man/man1/unzstd.1 ++usr/share/man/man1/zstd.1 ++usr/share/man/man1/zstdcat.1 ++usr/share/man/man1/zstdgrep.1 ++usr/share/man/man1/zstdless.1 ++usr/share/man/man1/zstdmt.1 ++usr/lib/*/libsdbusplus.so* ++ +diff --git a/debian/rules b/debian/rules +new file mode 100755 +index 00000000..a9ae5b06 +--- /dev/null ++++ b/debian/rules +@@ -0,0 +1,20 @@ ++#!/usr/bin/make -f ++ ++%: ++ dh $@ --buildsystem=meson ++ ++override_dh_auto_configure: ++ dh_auto_configure -- --wrap-mode=default ++ ++# dh_auto_install installs to debian/tmp/, then dh_install copies ++# files listed in debian/install to debian/bmcweb/ ++ ++# Todo: Disabling tests for now, later remove it. ++override_dh_auto_test: ++ # Skip tests during package build ++ ++override_dh_strip: ++ dh_strip --dbg-package=bmcweb-dbg ++ ++override_dh_shlibdeps: ++ dh_shlibdeps -l$(CURDIR)/debian/tmp/usr/lib/aarch64-linux-gnu --dpkg-shlibdeps-params=--ignore-missing-info +diff --git a/meson.build b/meson.build +index 93c26b72..d533eeeb 100644 +--- a/meson.build ++++ b/meson.build +@@ -67,7 +67,10 @@ incdir = [ + ] + + # Add compiler arguments +-boost_flags = ['-Wno-unused-parameter'] ++# -Wno-error=type-limits: Boost 1.87.0 has a bug in process/src/ext/env.cpp ++# where it compares char to EOF (-1), which is always true on ARM64 ++# (char is unsigned on ARM64) ++boost_flags = ['-Wno-unused-parameter', '-Wno-error=type-limits'] + nghttp2_flags = [] + if (cxx.get_id() == 'clang') + if (cxx.version().version_compare('<17.0')) +-- +2.34.1 + diff --git a/patches/0002-Add-Product-field-to-Redfish-service-root.patch b/patches/0002-Add-Product-field-to-Redfish-service-root.patch new file mode 100644 index 0000000..3cf18b2 --- /dev/null +++ b/patches/0002-Add-Product-field-to-Redfish-service-root.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: shreyansh-nexthop +Date: Tue, 17 Mar 2026 18:30:00 +0000 +Subject: [PATCH] Add Product field to Redfish service root + +Add "Product": "SONiCBMC" field to the /redfish/v1 service root response +to identify the BMC product name. + +This helps clients identify that they are connecting to a SONiC BMC +implementation. +--- + redfish-core/lib/service_root.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/redfish-core/lib/service_root.hpp b/redfish-core/lib/service_root.hpp +index 00000000..11111111 100644 +--- a/redfish-core/lib/service_root.hpp ++++ b/redfish-core/lib/service_root.hpp +@@ -52,6 +52,7 @@ inline void handleServiceRootGetImpl( + asyncResp->res.jsonValue["@odata.id"] = "/redfish/v1"; + asyncResp->res.jsonValue["Id"] = "RootService"; + asyncResp->res.jsonValue["Name"] = "Root Service"; ++ asyncResp->res.jsonValue["Product"] = "SONiCBMC"; + asyncResp->res.jsonValue["RedfishVersion"] = "1.17.0"; + asyncResp->res.jsonValue["Links"]["Sessions"]["@odata.id"] = + "/redfish/v1/SessionService/Sessions"; +-- +2.34.1 + diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..b6122ef --- /dev/null +++ b/patches/series @@ -0,0 +1,10 @@ +# Patch series for bmcweb SONiC integration +# This series applies on bmcweb commit 6926d430 +# +# Format: one patch filename per line +# Lines starting with # are comments +# Patches are applied in order from top to bottom + +0001-Integrating-bmcweb-with-SONiC-s-build-system.patch +0002-Add-Product-field-to-Redfish-service-root.patch + diff --git a/sonic-dbus-bridge/config/config.yaml b/sonic-dbus-bridge/config/config.yaml new file mode 100644 index 0000000..5a51ace --- /dev/null +++ b/sonic-dbus-bridge/config/config.yaml @@ -0,0 +1,68 @@ + +# #################################### +# SONiC D-Bus Bridge Configuration +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2026 Nexthop AI +# Copyright (C) 2024 SONiC Project +# Author: Nexthop AI +# Author: SONiC Project +# License file: sonic-redfish/LICENSE +# #################################### + +# Redis connection settings +redis: + config_db: + host: localhost + port: 6379 + db: 4 + timeout_ms: 5000 + state_db: + host: localhost + port: 6379 + db: 6 + timeout_ms: 5000 + retry: + max_attempts: 5 + initial_backoff_ms: 1000 + max_backoff_ms: 30000 + + # Platform data sources + platform: + # ${PLATFORM} will be expanded from environment + json_path: /usr/share/sonic/device/${PLATFORM}/platform.json + fru_eeprom_paths: + - /sys/bus/i2c/devices/0-0050/eeprom + - /sys/bus/i2c/devices/1-0051/eeprom + - /sys/bus/i2c/devices/2-0052/eeprom + auto_detect_fru: true + + # D-Bus settings + dbus: + service_name: xyz.openbmc_project.Inventory + system_bus: true + + # Update behavior + update: + poll_interval_sec: 30 + enable_redis_pubsub: false # Not available on ASPEED yet + + # Logging + logging: + level: INFO # DEBUG, INFO, WARNING, ERROR + use_systemd_journal: true + file_path: /var/log/sonic-dbus-bridge.log + max_file_size_mb: 10 + + # Feature flags + features: + enable_sensors: false # Phase 2 + enable_power_control: false # Phase 2 + enable_persistence: false # Phase 2 + + # Persistence (when enabled) + persistence: + enabled: false + state_file: /var/lib/sonic-dbus-bridge/state.json + save_interval_sec: 300 # Save every 5 minutes + + diff --git a/sonic-dbus-bridge/dbus/xyz.openbmc_project.Inventory.Manager.conf b/sonic-dbus-bridge/dbus/xyz.openbmc_project.Inventory.Manager.conf new file mode 100644 index 0000000..3b731c3 --- /dev/null +++ b/sonic-dbus-bridge/dbus/xyz.openbmc_project.Inventory.Manager.conf @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/sonic-dbus-bridge/dbus/xyz.openbmc_project.ObjectMapper.conf b/sonic-dbus-bridge/dbus/xyz.openbmc_project.ObjectMapper.conf new file mode 100644 index 0000000..9fbc96b --- /dev/null +++ b/sonic-dbus-bridge/dbus/xyz.openbmc_project.ObjectMapper.conf @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/sonic-dbus-bridge/dbus/xyz.openbmc_project.State.Host.conf b/sonic-dbus-bridge/dbus/xyz.openbmc_project.State.Host.conf new file mode 100644 index 0000000..28724ae --- /dev/null +++ b/sonic-dbus-bridge/dbus/xyz.openbmc_project.State.Host.conf @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/sonic-dbus-bridge/dbus/xyz.openbmc_project.User.Manager.conf b/sonic-dbus-bridge/dbus/xyz.openbmc_project.User.Manager.conf new file mode 100644 index 0000000..2a72a8b --- /dev/null +++ b/sonic-dbus-bridge/dbus/xyz.openbmc_project.User.Manager.conf @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/sonic-dbus-bridge/dbus/xyz.openbmc_project.bmcweb.conf b/sonic-dbus-bridge/dbus/xyz.openbmc_project.bmcweb.conf new file mode 100644 index 0000000..6d7df7b --- /dev/null +++ b/sonic-dbus-bridge/dbus/xyz.openbmc_project.bmcweb.conf @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/sonic-dbus-bridge/debian/changelog b/sonic-dbus-bridge/debian/changelog new file mode 100644 index 0000000..90507d7 --- /dev/null +++ b/sonic-dbus-bridge/debian/changelog @@ -0,0 +1,11 @@ +sonic-dbus-bridge (1.0.0) unstable; urgency=medium + + * Initial release + * Implements SONiC to D-Bus inventory bridge for ASPEED BMC + * Supports /redfish/v1/Chassis and /redfish/v1/Systems endpoints + * Data sources: Redis (CONFIG_DB/STATE_DB), platform.json, FRU EEPROMs + * Graceful degradation when data sources unavailable + * Optimized for ASPEED ARM64 BMC with limited resources + + -- SONiC Team Mon, 09 March 2026 00:00:00 +0000 + diff --git a/sonic-dbus-bridge/debian/control b/sonic-dbus-bridge/debian/control new file mode 100644 index 0000000..ef3dfba --- /dev/null +++ b/sonic-dbus-bridge/debian/control @@ -0,0 +1,31 @@ +Source: sonic-dbus-bridge +Section: net +Priority: optional +Maintainer: SONiC Team +Build-Depends: debhelper-compat (= 13), + meson (>= 0.57.0), + pkg-config, + libsystemd-dev, + libhiredis-dev, + libjsoncpp-dev, + libboost-dev, + libboost-system-dev +Standards-Version: 4.6.2 +Homepage: https://github.com/sonic-net/sonic-redfish + +Package: sonic-dbus-bridge +Architecture: any +Depends: ${misc:Depends}, + libsystemd0, + libhiredis1.1.0, + libjsoncpp26, + libboost-system1.83.0 | libboost-system1.88.0, + dbus +Description: SONiC to D-Bus inventory bridge for ASPEED BMC + Bridges SONiC data sources (Redis, platform.json, FRU EEPROMs) + to OpenBMC-compatible D-Bus interfaces, enabling bmcweb to + serve Redfish endpoints without modification. + . + This daemon is specifically designed for ASPEED ARM64 BMC + platforms running SONiC with limited database/service availability. + diff --git a/sonic-dbus-bridge/debian/rules b/sonic-dbus-bridge/debian/rules new file mode 100755 index 0000000..78a4afa --- /dev/null +++ b/sonic-dbus-bridge/debian/rules @@ -0,0 +1,27 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +export DEB_CFLAGS_MAINT_APPEND = -Wall -Wextra +export DEB_CXXFLAGS_MAINT_APPEND = -Wall -Wextra + +%: + dh $@ --buildsystem=meson + +override_dh_auto_configure: + dh_auto_configure -- --wrap-mode=default + +override_dh_auto_install: + dh_auto_install + # Create state directory + install -d debian/sonic-dbus-bridge/var/lib/sonic-dbus-bridge + +override_dh_installsystemd: + dh_installsystemd --name=sonic-dbus-bridge --no-start + +override_dh_shlibdeps: + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info + diff --git a/sonic-dbus-bridge/include/bridge_app.hpp b/sonic-dbus-bridge/include/bridge_app.hpp new file mode 100644 index 0000000..3b213dc --- /dev/null +++ b/sonic-dbus-bridge/include/bridge_app.hpp @@ -0,0 +1,188 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include "redis_adapter.hpp" +#include "platform_json_adapter.hpp" +#include "fru_adapter.hpp" +#include "dbus_exporter.hpp" +#include "update_engine.hpp" +#include "config_manager.hpp" +#include "object_mapper.hpp" +#include "user_mgr.hpp" +#include "state_manager.hpp" +#include "redis_state_subscriber.hpp" +#include +#include +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + + /** + * @brief Main bridge application + * + * Coordinates all components: + * - Initializes data sources (Redis, platform.json, FRU) + * - Builds initial inventory model + * - Creates D-Bus objects + * - Runs event loop with periodic updates + */ + class BridgeApp + { + public: + /** + * @brief Construct a new Bridge App + * + * @param configPath Path to configuration file + */ + explicit BridgeApp(const std::string& configPath); + + /** + * @brief Initialize the application + * + * - Load configuration + * - Connect to data sources + * - Build initial inventory + * - Create D-Bus objects + * + * @return true on success + * @return false on fatal error + */ + bool initialize(); + + /** + * @brief Run the application + * + * Enters main event loop (blocking) + * + * @return Exit code (0 = success) + */ + int run(); + + /** + * @brief Shutdown the application + */ + void shutdown(); + + private: + std::string configPath_; + std::unique_ptr configMgr_; + + // Boost ASIO + boost::asio::io_context io_; + boost::asio::signal_set signals_; + + // D-Bus connections (one per service for proper object separation) + // Each service has its own connection so busctl tree shows only its objects + std::shared_ptr inventoryConn_; + std::unique_ptr inventoryServer_; + + std::shared_ptr mapperConn_; + std::unique_ptr mapperServer_; + + std::shared_ptr userConn_; + std::unique_ptr userServer_; + + std::shared_ptr stateConn_; + std::unique_ptr stateServer_; + + // Data source adapters + std::shared_ptr redisAdapter_; + std::unique_ptr platformAdapter_; + std::unique_ptr fruAdapter_; + + // Core components + std::shared_ptr dbusExporter_; + std::unique_ptr updateEngine_; + std::unique_ptr objectMapper_; + + // User management + std::unique_ptr userMgr_; + + // State management + std::unique_ptr stateManager_; + + // Event-driven Redis subscriber + std::unique_ptr redisSubscriber_; + + // Current inventory model + InventoryModel currentModel_; + + // Health tracking + std::map healthStatus_; + + /** + * @brief Load configuration file + */ + bool loadConfiguration(); + + /** + * @brief Connect to D-Bus system bus + */ + bool connectDbus(); + + /** + * @brief Initialize data sources + */ + void initializeDataSources(); + + /** + * @brief Build initial inventory model + */ + InventoryModel buildInitialModel(); + + /** + * @brief Create D-Bus objects + */ + void createDbusObjects(); + + /** + * @brief Create state objects + */ + void createStateObjects(); + + /** + * @brief Start update engine + */ + void startUpdateEngine(); + + /** + * @brief Handle signals (SIGTERM, SIGINT) + */ + void handleSignal(const boost::system::error_code& ec, int signal); + + /** + * @brief Update health status + */ + void updateHealth(DataSource source, DataSourceHealth health); + + /** + * @brief Log health report + */ + void logHealthReport(); + + /** + * @brief Initialize user management subsystem + * + * Creates UserMgr instance using the shared object server. + * Non-fatal if it fails - bridge continues without user management. + */ + void initializeUserManager(); + }; + +} // namespace sonic::dbus_bridge + + + diff --git a/sonic-dbus-bridge/include/config_manager.hpp b/sonic-dbus-bridge/include/config_manager.hpp new file mode 100644 index 0000000..9629a4a --- /dev/null +++ b/sonic-dbus-bridge/include/config_manager.hpp @@ -0,0 +1,84 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Configuration manager + * + * Loads and provides access to daemon configuration + */ +class ConfigManager +{ + public: + /** + * @brief Load configuration from YAML file + * + * @param configPath Path to config.yaml + * @return true on success + */ + bool load(const std::string& configPath); + + // Redis configuration + const std::string& getConfigDbHost() const { return configDbHost_; } + int getConfigDbPort() const { return configDbPort_; } + int getConfigDbIndex() const { return configDbIndex_; } + + const std::string& getStateDbHost() const { return stateDbHost_; } + int getStateDbPort() const { return stateDbPort_; } + int getStateDbIndex() const { return stateDbIndex_; } + + // Platform configuration + const std::string& getPlatformJsonPath() const { return platformJsonPath_; } + const std::vector& getFruEepromPaths() const { return fruEepromPaths_; } + + // Update configuration + int getPollIntervalSec() const { return pollIntervalSec_; } + + // Logging configuration + const std::string& getLogLevel() const { return logLevel_; } + + // D-Bus configuration + const std::string& getDbusServiceName() const { return dbusServiceName_; } + + private: + // Redis + std::string configDbHost_{"127.0.0.1"}; // Use IP instead of localhost for reliability + int configDbPort_{6379}; + int configDbIndex_{4}; + + std::string stateDbHost_{"127.0.0.1"}; // Use IP instead of localhost for reliability + int stateDbPort_{6379}; + int stateDbIndex_{6}; + + // Platform + std::string platformJsonPath_{"/usr/share/sonic/device/${PLATFORM}/platform.json"}; + std::vector fruEepromPaths_{ + "/sys/bus/i2c/devices/0-0050/eeprom", + "/sys/bus/i2c/devices/1-0051/eeprom" + }; + + // Update + int pollIntervalSec_{30}; + + // Logging + std::string logLevel_{"INFO"}; + + // D-Bus + std::string dbusServiceName_{"xyz.openbmc_project.Inventory.Manager"}; +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/dbus_exporter.hpp b/sonic-dbus-bridge/include/dbus_exporter.hpp new file mode 100644 index 0000000..9171c77 --- /dev/null +++ b/sonic-dbus-bridge/include/dbus_exporter.hpp @@ -0,0 +1,98 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief D-Bus object exporter + * + * Creates and manages D-Bus objects that bmcweb expects: + * - /xyz/openbmc_project/inventory/system/chassis + * - /xyz/openbmc_project/inventory/system/system0 + * - /xyz/openbmc_project/state/chassis0 + * - /xyz/openbmc_project/software/ + */ +class DBusExporter +{ + public: + /** + * @brief Construct a new DBus Exporter + * + * @param inventoryServer Object server for inventory objects (chassis, system, state) + */ + explicit DBusExporter(sdbusplus::asio::object_server& inventoryServer); + + /** + * @brief Destructor - cleanup is automatic (RAII) + */ + ~DBusExporter() = default; + + /** + * @brief Create all D-Bus objects from inventory model + * + * @param model Complete inventory model + * @return true on success, false on error + */ + bool createObjects(const InventoryModel& model); + + /** + * @brief Update D-Bus objects with new model + * + * Only updates properties that have changed + * + * @param model New inventory model + * @return true on success, false on error + */ + bool updateObjects(const InventoryModel& model); + + private: + sdbusplus::asio::object_server& inventoryServer_; + + // Current model (for change detection) + InventoryModel currentModel_; + + // D-Bus interfaces (managed by shared_ptr, cleanup is automatic) + std::map> interfaces_; + + /** + * @brief Create chassis inventory object + */ + bool createChassisObject(const ChassisInfo& chassis); + + /** + * @brief Create system inventory object + */ + bool createSystemObject(const SystemInfo& system); + + /** + * @brief Create chassis state object + */ + bool createChassisStateObject(const ChassisState& state); + + /** + * @brief Create firmware version objects under /xyz/openbmc_project/software/ + * + * Creates one D-Bus object per firmware entry with: + * - xyz.openbmc_project.Software.Version (Purpose, Version) + * - xyz.openbmc_project.Software.Activation (Activation, RequestedActivation) + */ + bool createFirmwareObjects(const std::vector& versions); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/fru_adapter.hpp b/sonic-dbus-bridge/include/fru_adapter.hpp new file mode 100644 index 0000000..65cf907 --- /dev/null +++ b/sonic-dbus-bridge/include/fru_adapter.hpp @@ -0,0 +1,89 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Adapter for reading FRU EEPROMs + * + * Reads FRU data from sysfs I2C EEPROM devices and parses + * ONIE TLV format to extract serial number, part number, etc. + */ +class FruAdapter +{ + public: + /** + * @brief Construct a new FRU Adapter + * + * @param eepromPaths List of possible EEPROM paths to try + */ + explicit FruAdapter(const std::vector& eepromPaths); + + /** + * @brief Scan and read FRU EEPROM + * + * Tries each configured path until one succeeds + * + * @return true if FRU data read successfully + * @return false if all paths failed + */ + bool scanAndLoad(); + + /** + * @brief Check if FRU data was loaded successfully + */ + bool isLoaded() const { return loaded_; } + + /** + * @brief Get FRU information + * + * @return FruInfo structure (fields may be empty if not in EEPROM) + */ + FruInfo getFruInfo() const { return fruInfo_; } + + private: + std::vector eepromPaths_; + bool loaded_{false}; + FruInfo fruInfo_; + + /** + * @brief Read FRU EEPROM from a specific path + * + * @param path EEPROM device path + * @return true if read and parsed successfully + */ + bool readEeprom(const std::string& path); + + /** + * @brief Parse ONIE TLV format + * + * @param data Raw EEPROM data + * @return FruInfo structure + */ + FruInfo parseTlv(const std::vector& data); + + /** + * @brief Validate TLV CRC + * + * @param data Raw EEPROM data + * @return true if CRC is valid + */ + bool validateCrc(const std::vector& data); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/inventory_model.hpp b/sonic-dbus-bridge/include/inventory_model.hpp new file mode 100644 index 0000000..b710d74 --- /dev/null +++ b/sonic-dbus-bridge/include/inventory_model.hpp @@ -0,0 +1,82 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Inventory model builder and normalizer + * + * Merges data from multiple sources (FRU, Redis, platform.json) + * with precedence: FRU > CONFIG_DB > platform.json > defaults + */ +class InventoryModelBuilder +{ + public: + /** + * @brief Build inventory model from all sources + * + * @param fruInfo FRU EEPROM data (optional) + * @param deviceMetadata CONFIG_DB metadata (optional) + * @param platformDesc platform.json description (optional) + * @param chassisState STATE_DB chassis state (optional) + * @return Complete InventoryModel + */ + static InventoryModel build( + const std::optional& fruInfo, + const std::optional& deviceMetadata, + const std::optional& platformDesc, + const std::optional& chassisState); + + private: + /** + * @brief Build chassis info with fallback priority + */ + static ChassisInfo buildChassisInfo( + const std::optional& fruInfo, + const std::optional& deviceMetadata, + const std::optional& platformDesc); + + /** + * @brief Build system info with fallback priority + */ + static SystemInfo buildSystemInfo( + const std::optional& fruInfo, + const std::optional& deviceMetadata); + + /** + * @brief Build PSU list from platform.json + */ + static std::vector buildPsuList( + const std::optional& platformDesc); + + /** + * @brief Build fan list from platform.json + */ + static std::vector buildFanList( + const std::optional& platformDesc); + +}; + +/** + * @brief Compare two inventory models for changes + * + * @param oldModel Previous model + * @param newModel New model + * @return true if models differ + */ +bool hasChanged(const InventoryModel& oldModel, const InventoryModel& newModel); + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/logger.hpp b/sonic-dbus-bridge/include/logger.hpp new file mode 100644 index 0000000..df8fb20 --- /dev/null +++ b/sonic-dbus-bridge/include/logger.hpp @@ -0,0 +1,288 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace sonic::dbus_bridge::logger +{ + + // Log levels matching syslog priorities + enum class LogLevel : int + { + DEBUG = LOG_DEBUG, // 7 + INFO = LOG_INFO, // 6 + NOTICE = LOG_NOTICE, // 5 + WARNING = LOG_WARNING, // 4 + ERR = LOG_ERR, // 3 + CRIT = LOG_CRIT // 2 + }; + + // Global logger state + struct LoggerState + { + std::atomic currentLevel{LogLevel::INFO}; + std::atomic fileLoggingEnabled{false}; + std::mutex fileMutex; + FILE* logFile = nullptr; + static constexpr const char* logFilePath = "/var/log/sonic-dbus-bridge.log"; + + void enableFileLogging() + { + std::lock_guard lock(fileMutex); + if (!logFile) + { + logFile = fopen(logFilePath, "a"); + if (logFile) + { + fileLoggingEnabled.store(true, std::memory_order_release); + syslog(6, "Logger: File logging enabled to %s", logFilePath); // LOG_INFO = 6 + } + else + { + syslog(3, "Logger: Failed to open log file %s: %s", // LOG_ERR = 3 + logFilePath, strerror(errno)); + } + } + } + + void disableFileLogging() + { + std::lock_guard lock(fileMutex); + if (logFile) + { + fclose(logFile); + logFile = nullptr; + fileLoggingEnabled.store(false, std::memory_order_release); + // Delete the log file + unlink(logFilePath); + syslog(6, "Logger: File logging disabled and log file deleted"); // LOG_INFO = 6 + } + } + + void writeToFile(const char* message) + { + std::lock_guard lock(fileMutex); + if (logFile && fileLoggingEnabled.load(std::memory_order_acquire)) + { + // Get current timestamp + time_t now = time(nullptr); + char timestamp[64]; + strftime(timestamp, sizeof(timestamp), "%Y-%m-%d %H:%M:%S", + localtime(&now)); + + fprintf(logFile, "[%s] %s\n", timestamp, message); + fflush(logFile); + } + } + + ~LoggerState() + { + if (logFile) + { + fclose(logFile); + } + } + }; + + // Get the global logger state + inline LoggerState& getLoggerState() + { + static LoggerState state; + return state; + } + + // Check if a log level should be logged + inline bool shouldLog(int level) + { + return level <= static_cast(getLoggerState().currentLevel.load( + std::memory_order_acquire)); + } + + // Initialize logger from environment variable + inline void initFromEnv() + { + const char* levelStr = std::getenv("SONIC_DBUS_BRIDGE_LOG_LEVEL"); + if (levelStr) + { + if (strcmp(levelStr, "DEBUG") == 0) + { + getLoggerState().currentLevel.store(LogLevel::DEBUG, + std::memory_order_release); + } + else if (strcmp(levelStr, "INFO") == 0) + { + getLoggerState().currentLevel.store(LogLevel::INFO, + std::memory_order_release); + } + else if (strcmp(levelStr, "NOTICE") == 0) + { + getLoggerState().currentLevel.store(LogLevel::NOTICE, + std::memory_order_release); + } + else if (strcmp(levelStr, "WARNING") == 0) + { + getLoggerState().currentLevel.store(LogLevel::WARNING, + std::memory_order_release); + } + else if (strcmp(levelStr, "ERR") == 0) + { + getLoggerState().currentLevel.store(LogLevel::ERR, + std::memory_order_release); + } + else if (strcmp(levelStr, "CRIT") == 0) + { + getLoggerState().currentLevel.store(LogLevel::CRIT, + std::memory_order_release); + } + } + } + +} // namespace sonic::dbus_bridge::logger + +// Undefine syslog constants so we can use them as macro names +// We'll use the numeric values directly in our macros +#undef LOG_DEBUG +#undef LOG_INFO +#undef LOG_NOTICE +#undef LOG_WARNING +#undef LOG_ERR +#undef LOG_CRIT + +// Define numeric constants for syslog levels (from syslog.h) +#define SYSLOG_DEBUG 7 +#define SYSLOG_INFO 6 +#define SYSLOG_NOTICE 5 +#define SYSLOG_WARNING 4 +#define SYSLOG_ERR 3 +#define SYSLOG_CRIT 2 + +// Public API macros for logging +#define LOG_DEBUG(fmt, ...) \ + do \ +{ \ + if (::sonic::dbus_bridge::logger::shouldLog(SYSLOG_DEBUG)) \ + { \ + syslog(SYSLOG_DEBUG, fmt, ##__VA_ARGS__); \ + if (::sonic::dbus_bridge::logger::getLoggerState() \ + .fileLoggingEnabled.load(std::memory_order_acquire)) \ + { \ + char _buf[1024]; \ + snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \ + ::sonic::dbus_bridge::logger::getLoggerState().writeToFile(_buf);\ + } \ + } \ +} while (0) + +#define LOG_INFO(fmt, ...) \ + do \ +{ \ + if (::sonic::dbus_bridge::logger::shouldLog(SYSLOG_INFO)) \ + { \ + syslog(SYSLOG_INFO, fmt, ##__VA_ARGS__); \ + if (::sonic::dbus_bridge::logger::getLoggerState() \ + .fileLoggingEnabled.load(std::memory_order_acquire)) \ + { \ + char _buf[1024]; \ + snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \ + ::sonic::dbus_bridge::logger::getLoggerState().writeToFile(_buf);\ + } \ + } \ +} while (0) + +#define LOG_NOTICE(fmt, ...) \ + do \ +{ \ + if (::sonic::dbus_bridge::logger::shouldLog(SYSLOG_NOTICE)) \ + { \ + syslog(SYSLOG_NOTICE, fmt, ##__VA_ARGS__); \ + if (::sonic::dbus_bridge::logger::getLoggerState() \ + .fileLoggingEnabled.load(std::memory_order_acquire)) \ + { \ + char _buf[1024]; \ + snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \ + ::sonic::dbus_bridge::logger::getLoggerState().writeToFile(_buf);\ + } \ + } \ +} while (0) + +#define LOG_WARNING(fmt, ...) \ + do \ +{ \ + if (::sonic::dbus_bridge::logger::shouldLog(SYSLOG_WARNING)) \ + { \ + syslog(SYSLOG_WARNING, fmt, ##__VA_ARGS__); \ + if (::sonic::dbus_bridge::logger::getLoggerState() \ + .fileLoggingEnabled.load(std::memory_order_acquire)) \ + { \ + char _buf[1024]; \ + snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \ + ::sonic::dbus_bridge::logger::getLoggerState().writeToFile(_buf);\ + } \ + } \ +} while (0) + +#define LOG_WARN(fmt, ...) LOG_WARNING(fmt, ##__VA_ARGS__) + +#define LOG_ERROR(fmt, ...) \ + do \ +{ \ + if (::sonic::dbus_bridge::logger::shouldLog(SYSLOG_ERR)) \ + { \ + syslog(SYSLOG_ERR, fmt, ##__VA_ARGS__); \ + if (::sonic::dbus_bridge::logger::getLoggerState() \ + .fileLoggingEnabled.load(std::memory_order_acquire)) \ + { \ + char _buf[1024]; \ + snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \ + ::sonic::dbus_bridge::logger::getLoggerState().writeToFile(_buf);\ + } \ + } \ +} while (0) + +#define LOG_ERR(fmt, ...) LOG_ERROR(fmt, ##__VA_ARGS__) + +#define LOG_CRITICAL(fmt, ...) \ + do \ +{ \ + if (::sonic::dbus_bridge::logger::shouldLog(SYSLOG_CRIT)) \ + { \ + syslog(SYSLOG_CRIT, fmt, ##__VA_ARGS__); \ + if (::sonic::dbus_bridge::logger::getLoggerState() \ + .fileLoggingEnabled.load(std::memory_order_acquire)) \ + { \ + char _buf[1024]; \ + snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \ + ::sonic::dbus_bridge::logger::getLoggerState().writeToFile(_buf);\ + } \ + } \ +} while (0) + +#define LOG_CRIT(fmt, ...) LOG_CRITICAL(fmt, ##__VA_ARGS__) + +// Initialization macro (call from bridge_app.cpp) +#define LOGGER_INIT() ::sonic::dbus_bridge::logger::initFromEnv() + +// Signal handler helpers (to be called from bridge_app.cpp signal handlers) +#define LOGGER_ENABLE_FILE_LOGGING() \ + ::sonic::dbus_bridge::logger::getLoggerState().enableFileLogging() + +#define LOGGER_DISABLE_FILE_LOGGING() \ + ::sonic::dbus_bridge::logger::getLoggerState().disableFileLogging() + + diff --git a/sonic-dbus-bridge/include/object_mapper.hpp b/sonic-dbus-bridge/include/object_mapper.hpp new file mode 100644 index 0000000..916e7f9 --- /dev/null +++ b/sonic-dbus-bridge/include/object_mapper.hpp @@ -0,0 +1,106 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include + +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Minimal implementation of xyz.openbmc_project.ObjectMapper + * + * This is a very small, in-process mapper that only knows about + * objects exported by sonic-dbus-bridge itself. It is intentionally + * limited to the subset of methods used by bmcweb: + * - GetObject + * - GetSubTree + * - GetSubTreePaths + * - GetAssociatedSubTreePaths (stub, returns empty set) + */ +class ObjectMapperService +{ + public: + explicit ObjectMapperService(sdbusplus::asio::object_server& server); + ~ObjectMapperService() = default; + + /** + * @brief Register the ObjectMapper D-Bus object/vtable + * + * Must be called after the process has acquired the + * xyz.openbmc_project.ObjectMapper bus name. + */ + bool initialize(); + + /** + * @brief Register or update a D-Bus object in the mapper registry. + * + * @param path Object path + * @param interfaces Interfaces implemented at this path + * @param serviceName Service name that owns this object (optional, + * defaults to inventoryServiceName_) + */ + void registerObject(const std::string& path, + const std::vector& interfaces, + const std::string& serviceName = ""); + + /** + * @brief Unregister a D-Bus object from the mapper registry. + * + * @param path Object path to remove + */ + void unregisterObject(const std::string& path); + + private: + sdbusplus::asio::object_server& server_; + + // Registry: object path -> {interfaces, serviceName} + struct ObjectInfo + { + std::vector interfaces; + std::string serviceName; + }; + std::map objects_; + + // D-Bus interface for ObjectMapper + std::shared_ptr mapperIface_; + + // Helpers + static bool pathIsUnder(const std::string& root, const std::string& path); + + // Method implementations (return types match sdbusplus method registration) + using GetObjectResult = + std::map>; + using GetSubTreeResult = + std::map>>; + using GetSubTreePathsResult = std::vector; + + GetObjectResult getObject(const std::string& path, + const std::vector& interfaces); + + GetSubTreeResult getSubTree(const std::string& subtree, int32_t depth, + const std::vector& interfaces); + + GetSubTreePathsResult getSubTreePaths(const std::string& subtree, + int32_t depth, + const std::vector& interfaces); + + GetSubTreePathsResult getAssociatedSubTreePaths( + const std::string& associatedPath, const std::string& subtree, + int32_t depth, const std::vector& interfaces); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/platform_json_adapter.hpp b/sonic-dbus-bridge/include/platform_json_adapter.hpp new file mode 100644 index 0000000..19841ed --- /dev/null +++ b/sonic-dbus-bridge/include/platform_json_adapter.hpp @@ -0,0 +1,92 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Adapter for reading platform.json + * + * Parses /usr/share/sonic/device//platform.json + * to extract hardware topology information. + */ +class PlatformJsonAdapter +{ + public: + /** + * @brief Construct a new Platform Json Adapter + * + * @param platformJsonPath Path to platform.json (can contain ${PLATFORM}) + */ + explicit PlatformJsonAdapter(const std::string& platformJsonPath); + + /** + * @brief Load and parse platform.json + * + * @return true if file loaded and parsed successfully + * @return false if file not found or parse error + */ + bool load(); + + /** + * @brief Check if platform.json was loaded successfully + */ + bool isLoaded() const { return loaded_; } + + /** + * @brief Get platform description + * + * @return PlatformDescription with chassis/fan/PSU/thermal info + */ + PlatformDescription getPlatformDescription() const; + + /** + * @brief Get chassis name from platform.json + */ + std::optional getChassisName() const; + + /** + * @brief Get chassis part number from platform.json + */ + std::optional getChassisPartNumber() const; + + /** + * @brief Get chassis hardware version from platform.json + */ + std::optional getChassisHardwareVersion() const; + + private: + std::string platformJsonPath_; + bool loaded_{false}; + PlatformDescription description_; + + /** + * @brief Expand environment variables in path + * + * Replaces ${PLATFORM} with value from environment + */ + std::string expandPath(const std::string& path) const; + + /** + * @brief Parse JSON file + * + * @param path File path + * @return true on success + */ + bool parseJson(const std::string& path); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/redis_adapter.hpp b/sonic-dbus-bridge/include/redis_adapter.hpp new file mode 100644 index 0000000..1b4ae35 --- /dev/null +++ b/sonic-dbus-bridge/include/redis_adapter.hpp @@ -0,0 +1,145 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Redis client adapter for SONiC databases + * + * Connects to CONFIG_DB (DB 4) and STATE_DB (DB 6) and provides + * methods to read device metadata and chassis state. + */ +class RedisAdapter +{ + public: + /** + * @brief Construct a new Redis Adapter + * + * @param configDbHost CONFIG_DB host (default: localhost) + * @param configDbPort CONFIG_DB port (default: 6379) + * @param stateDbHost STATE_DB host (default: localhost) + * @param stateDbPort STATE_DB port (default: 6379) + */ + RedisAdapter(const std::string& configDbHost = "localhost", + int configDbPort = 6379, + const std::string& stateDbHost = "localhost", + int stateDbPort = 6379); + + ~RedisAdapter(); + + // Disable copy + RedisAdapter(const RedisAdapter&) = delete; + RedisAdapter& operator=(const RedisAdapter&) = delete; + + /** + * @brief Connect to Redis databases + * + * @return true if at least one database connected successfully + * @return false if all connections failed + */ + bool connect(); + + /** + * @brief Check if CONFIG_DB is connected + */ + bool isConfigDbConnected() const { return configDbContext_ != nullptr; } + + /** + * @brief Check if STATE_DB is connected + */ + bool isStateDbConnected() const { return stateDbContext_ != nullptr; } + + /** + * @brief Get device metadata from CONFIG_DB + * + * Reads DEVICE_METADATA|localhost hash + * + * @return DeviceMetadata structure (fields may be empty if unavailable) + */ + DeviceMetadata getDeviceMetadata(); + + /** + * @brief Get chassis state from STATE_DB + * + * Reads CHASSIS_STATE_TABLE|chassis0 hash + * + * @return ChassisState structure (defaults to "on" if unavailable) + */ + ChassisState getChassisState(); + + /** + * @brief Get firmware versions from STATE_DB + * + * Reads BMC_FW_INVENTORY|* keys from STATE_DB on the switch + * Returns placeholder "N/A" for entries + * not yet published. + * + * @return Vector of firmware version entries + */ + std::vector getFirmwareVersions(); + + private: + std::string configDbHost_; + int configDbPort_; + std::string stateDbHost_; + int stateDbPort_; + + redisContext* configDbContext_{nullptr}; + redisContext* stateDbContext_{nullptr}; + + /** + * @brief Connect to a specific Redis database + * + * @param host Redis host + * @param port Redis port + * @param dbIndex Database index (4 for CONFIG_DB, 6 for STATE_DB) + * @return redisContext* on success, nullptr on failure + */ + redisContext* connectToDb(const std::string& host, int port, int dbIndex); + + /** + * @brief Get all fields from a Redis hash + * + * @param ctx Redis context + * @param key Hash key + * @return Map of field->value, empty if key doesn't exist + */ + std::map hgetall(redisContext* ctx, + const std::string& key); + + /** + * @brief Get a single field from a Redis hash + * + * @param ctx Redis context + * @param key Hash key + * @param field Field name + * @return Field value if exists, nullopt otherwise + */ + std::optional hget(redisContext* ctx, + const std::string& key, + const std::string& field); + + /** + * @brief Free Redis reply + */ + void freeReply(void* reply); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/redis_state_publisher.hpp b/sonic-dbus-bridge/include/redis_state_publisher.hpp new file mode 100644 index 0000000..e2ed72a --- /dev/null +++ b/sonic-dbus-bridge/include/redis_state_publisher.hpp @@ -0,0 +1,108 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Redis State Publisher for BMC host state management + * + * Publishes host transition requests to Redis STATE_DB and updates + * the SWITCH_HOST_STATE table. Uses hiredis for Redis communication. + */ +class RedisStatePublisher +{ +public: + RedisStatePublisher(); + ~RedisStatePublisher(); + + // Disable copy + RedisStatePublisher(const RedisStatePublisher&) = delete; + RedisStatePublisher& operator=(const RedisStatePublisher&) = delete; + + /** + * @brief Connect to Redis STATE_DB (DB 6) + * + * @param host Redis host (default: localhost) + * @param port Redis port (default: 6379) + * @return true if connection successful + */ + bool connect(const std::string& host = "localhost", int port = 6379); + + /** + * @brief Check if connected to Redis + */ + bool isConnected() const { return stateDbContext_ != nullptr; } + + /** + * @brief Publish a host transition request to Redis + * + * Creates an entry in BMC_HOST_REQUEST table with: + * - requested_transition: the transition type + * - request_id: unique identifier + * - timestamp: current time + * - status: "pending" + * + * @param transition Transition type (e.g., "Reboot", "On", "Off") + * @return request_id on success, empty string on failure + */ + std::string publishHostRequest(const std::string& transition); + + /** + * @brief Update SWITCH_HOST_STATE table + * + * @param deviceState "POWERED_ON" or "POWERED_OFF" + * @param deviceStatus "REACHABLE" or "UNREACHABLE" + * @return true if update successful + */ + bool updateSwitchHostState(const std::string& deviceState, + const std::string& deviceStatus); + + /** + * @brief Update BMC_HOST_REQUEST status field + * + * @param requestId Request ID to update + * @param status New status ("pending", "processing", "completed", "failed") + * @return true if update successful + */ + bool updateRequestStatus(const std::string& requestId, + const std::string& status); + +private: + redisContext* stateDbContext_; + std::mutex redisMutex_; // Protect Redis operations + uint64_t requestCounter_; + + /** + * @brief Generate unique request ID + * Format: req__ + */ + std::string generateRequestId(); + + /** + * @brief Set a single field in a Redis hash + */ + bool hset(const std::string& key, const std::string& field, const std::string& value); + + /** + * @brief Set multiple fields in a Redis hash + */ + bool hmset(const std::string& key, const std::map& fields); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/redis_state_subscriber.hpp b/sonic-dbus-bridge/include/redis_state_subscriber.hpp new file mode 100644 index 0000000..1ee42f6 --- /dev/null +++ b/sonic-dbus-bridge/include/redis_state_subscriber.hpp @@ -0,0 +1,116 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Redis State Subscriber using keyspace notifications + * + * Subscribes to Redis keyspace notifications for multiple keys + * and invokes callbacks when any subscribed key is updated. + */ +class RedisStateSubscriber +{ +public: + /** + * @brief Callback function type + * Parameters: (key, field, value) + * - key: Redis key that changed (e.g., "SWITCH_HOST_STATE", "DEVICE_METADATA") + * - field: Hash field that changed (e.g., "device_state", "serial_number") + * - value: New value of the field + */ + using KeyspaceCallback = std::function; + + RedisStateSubscriber(); + ~RedisStateSubscriber(); + + // Disable copy + RedisStateSubscriber(const RedisStateSubscriber&) = delete; + RedisStateSubscriber& operator=(const RedisStateSubscriber&) = delete; + + /** + * @brief Start subscriber thread (single key - backward compatible) + * + * Connects to Redis STATE_DB and subscribes to keyspace notifications + * for a single key. + * + * @param host Redis host + * @param port Redis port + * @param callback Function to call when state changes + * @return true if started successfully + */ + bool start(const std::string& host, int port, KeyspaceCallback callback); + + /** + * @brief Start subscriber thread (multiple keys) + * + * Connects to Redis STATE_DB and subscribes to keyspace notifications + * for multiple keys. + * + * @param host Redis host + * @param port Redis port + * @param keys List of Redis keys to subscribe to + * @param callback Function to call when any key changes + * @return true if started successfully + */ + bool startMultiKey(const std::string& host, int port, + const std::vector& keys, + KeyspaceCallback callback); + + /** + * @brief Stop subscriber thread + */ + void stop(); + + /** + * @brief Check if subscriber is running + */ + bool isRunning() const { return running_; } + +private: + redisContext* subContext_; + redisContext* getContext_; // Separate context for HGETALL + std::thread subscriberThread_; + std::atomic running_; + KeyspaceCallback callback_; + + /** + * @brief Subscriber thread main loop + */ + void subscriberLoop(); + + /** + * @brief Handle keyspace notification + * @param channel Channel name (e.g., "__keyspace@6__:SWITCH_HOST_STATE") + */ + void handleKeyspaceNotification(const std::string& channel); + + /** + * @brief Get all fields from a hash + * @param key Redis key + * @return Map of field->value + */ + std::map hgetall(const std::string& key); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/state_manager.hpp b/sonic-dbus-bridge/include/state_manager.hpp new file mode 100644 index 0000000..59995e2 --- /dev/null +++ b/sonic-dbus-bridge/include/state_manager.hpp @@ -0,0 +1,134 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include "redis_state_publisher.hpp" + +namespace sonic::dbus_bridge +{ + +/** + * @brief State manager for system state transitions + * + * Handles system reset/reboot/power actions via D-Bus properties. + * Implements OpenBMC xyz.openbmc_project.State.Host interface. + * + * Flow: + * 1. bmcweb writes to RequestedHostTransition property + * 2. Property setter callback validates and queues action + * 3. Async executor processes queue using Boost.Asio timer + * 4. Publish to Redis STATE_DB via RedisStatePublisher + * 5. Read back from Redis to verify write + * 6. Update CurrentHostState property + * 7. Emit D-Bus PropertiesChanged signal + */ +class StateManager +{ + public: + /** + * @brief Construct a new State Manager + * + * @param server sdbusplus object server + * @param io Boost ASIO io_context for async operations + */ + StateManager(sdbusplus::asio::object_server& server, + boost::asio::io_context& io); + + /** + * @brief Destructor - cleanup is automatic (RAII) + */ + ~StateManager() = default; + + /** + * @brief Create D-Bus state objects + * + * Creates /xyz/openbmc_project/state/host0 with + * xyz.openbmc_project.State.Host interface + * + * @return true on success, false on error + */ + bool createStateObjects(); + + private: + sdbusplus::asio::object_server& server_; + boost::asio::io_context& io_; + + // D-Bus interface + std::shared_ptr hostStateIface_; + + // State tracking + std::string currentHostState_; + std::string lastRequestedTransition_; + + // Redis publisher for state changes + std::unique_ptr redisPublisher_; + + // Action queue for async processing + struct ActionRequest + { + std::string transition; + std::chrono::steady_clock::time_point timestamp; + }; + std::queue actionQueue_; + std::unique_ptr actionTimer_; + bool actionInProgress_{false}; + + // Maximum queue size to prevent overflow + static constexpr size_t MAX_QUEUE_SIZE = 10; + + /** + * @brief Process next action in queue + * + * Called when an action is queued or when previous action completes. + * Non-blocking - schedules async execution via timer. + */ + void processNextAction(); + + /** + * @brief Execute host transition action + * + * @param transition D-Bus transition value + */ + void executeHostTransition(const std::string& transition); + + /** + * @brief Update host state and emit signal + * + * @param newState New host state value + */ + void updateHostState(const std::string& newState); + + /** + * @brief Map D-Bus transition to script command + * + * @param transition D-Bus transition value + * @return Script command argument, or empty string if invalid + */ + std::string transitionToScriptCommand(const std::string& transition); + + /** + * @brief Validate transition value + * + * @param transition D-Bus transition value + * @return true if valid, false otherwise + */ + bool isValidTransition(const std::string& transition); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/types.hpp b/sonic-dbus-bridge/include/types.hpp new file mode 100644 index 0000000..b6512b9 --- /dev/null +++ b/sonic-dbus-bridge/include/types.hpp @@ -0,0 +1,191 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief FRU (Field Replaceable Unit) information from EEPROM + */ +struct FruInfo +{ + std::optional serialNumber; + std::optional partNumber; + std::optional manufacturer; + std::optional model; + std::optional hardwareVersion; + std::optional manufactureDate; + std::optional productName; +}; + +/** + * @brief Device metadata from CONFIG_DB + */ +struct DeviceMetadata +{ + std::optional platform; + std::optional hwsku; + std::optional hostname; + std::optional mac; + std::optional type; + std::optional manufacturer; + std::optional serialNumber; + std::optional partNumber; + std::optional model; +}; + +/** + * @brief Chassis state from STATE_DB + */ +struct ChassisState +{ + std::string powerState{"on"}; // "on" or "off" +}; + +/** + * @brief Data source for a field + */ +enum class FieldSource +{ + Redis, + FruEeprom, + PlatformJson, + Default +}; + +/** + * @brief Normalized chassis information + */ +struct ChassisInfo +{ + std::string serialNumber{"Unknown"}; + std::string partNumber{"Unknown"}; + std::string manufacturer{"Unknown"}; + std::string model{"Unknown"}; + std::string hardwareVersion{"Unknown"}; + std::string chassisType{"RackMount"}; + bool present{true}; + std::string prettyName{"SONiC Chassis"}; + + // Source tracking + FieldSource serialNumberSource{FieldSource::Default}; + FieldSource partNumberSource{FieldSource::Default}; + FieldSource manufacturerSource{FieldSource::Default}; + FieldSource modelSource{FieldSource::Default}; +}; + +/** + * @brief Normalized system information + */ +struct SystemInfo +{ + std::string serialNumber{"Unknown"}; + std::string manufacturer{"Unknown"}; + std::string model{"Unknown"}; + std::string hostname{"sonic"}; + bool present{true}; + std::string prettyName{"SONiC System"}; +}; + +/** + * @brief PSU information + */ +struct PsuInfo +{ + std::string name; + std::string serialNumber{"Unknown"}; + std::string model{"Unknown"}; + bool present{false}; +}; + +/** + * @brief Fan information + */ +struct FanInfo +{ + std::string name; + bool present{false}; +}; + +/** + * @brief Platform description from platform.json + */ +struct PlatformDescription +{ + std::string chassisName; + std::optional chassisPartNumber; + std::optional chassisHardwareVersion; + std::vector fanNames; + std::vector psuNames; + std::vector thermalNames; +}; + +/** + * @brief Firmware version purpose + */ +enum class FirmwarePurpose +{ + BMC, + Host, + Other +}; + +/** + * @brief Firmware version information for FirmwareInventory + */ +struct FirmwareVersionInfo +{ + std::string id; // Unique identifier + std::string version; // Version string + FirmwarePurpose purpose{FirmwarePurpose::Other}; +}; + +/** + * @brief Complete inventory model + */ +struct InventoryModel +{ + ChassisInfo chassis; + SystemInfo system; + ChassisState chassisState; + std::vector psus; + std::vector fans; + std::vector firmwareVersions; +}; + +/** + * @brief Data source health status + */ +enum class DataSourceHealth +{ + Healthy, + Degraded, + Unavailable +}; + +/** + * @brief Data source types + */ +enum class DataSource +{ + RedisConfigDb, + RedisStateDb, + PlatformJson, + FruEeprom +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/update_engine.hpp b/sonic-dbus-bridge/include/update_engine.hpp new file mode 100644 index 0000000..52ba04c --- /dev/null +++ b/sonic-dbus-bridge/include/update_engine.hpp @@ -0,0 +1,111 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "types.hpp" +#include "redis_adapter.hpp" +#include "dbus_exporter.hpp" +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +/** + * @brief Update engine for event-driven and periodic updates + * + * Supports both event-driven updates (via Redis keyspace notifications) + * and periodic polling (as fallback). Updates D-Bus objects when changes + * are detected. + */ +class UpdateEngine +{ + public: + using UpdateCallback = std::function; + + /** + * @brief Construct a new Update Engine + * + * @param io Boost ASIO io_context + * @param redisAdapter Redis adapter + * @param dbusExporter D-Bus exporter + * @param pollIntervalSec Polling interval in seconds (0 = disable polling) + */ + UpdateEngine(boost::asio::io_context& io, + std::shared_ptr redisAdapter, + std::shared_ptr dbusExporter, + int pollIntervalSec); + + /** + * @brief Start periodic polling (if enabled) + */ + void start(); + + /** + * @brief Stop periodic polling + */ + void stop(); + + /** + * @brief Set callback for update events + * + * Called whenever data is updated from sources + */ + void setUpdateCallback(UpdateCallback callback) + { + updateCallback_ = std::move(callback); + } + + /** + * @brief Handle Redis field change event (event-driven) + * + * Called by RedisStateSubscriber when a Redis key changes. + * Updates only the affected D-Bus properties. + * + * @param key Redis key that changed (e.g., "DEVICE_METADATA", "CHASSIS_STATE") + * @param field Redis field that changed (e.g., "serial_number", "power_state") + * @param value New value of the field + */ + void onRedisFieldChange(const std::string& key, + const std::string& field, + const std::string& value); + + private: + boost::asio::io_context& io_; + std::shared_ptr redisAdapter_; + std::shared_ptr dbusExporter_; + int pollIntervalSec_; + boost::asio::steady_timer timer_; + bool running_{false}; + UpdateCallback updateCallback_; + + // Cached data for change detection + std::optional cachedMetadata_; + std::optional cachedState_; + + /** + * @brief Poll timer handler + */ + void onPollTimer(const boost::system::error_code& ec); + + /** + * @brief Perform update cycle + */ + void doUpdate(); + + /** + * @brief Schedule next poll + */ + void scheduleNextPoll(); +}; + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/include/user_mgr.hpp b/sonic-dbus-bridge/include/user_mgr.hpp new file mode 100644 index 0000000..942f778 --- /dev/null +++ b/sonic-dbus-bridge/include/user_mgr.hpp @@ -0,0 +1,104 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include "users.hpp" +#include "object_mapper.hpp" + +#include + +#include +#include +#include +#include + +namespace sonic +{ +namespace user +{ + +using UserInfoMap = std::map, bool>>; + +class UserMgr +{ + public: + /** @brief Constructs UserMgr object. + * + * @param[in] server - sdbusplus asio object server + * @param[in] path - D-Bus path + * @param[in] objectMapper - ObjectMapper service for registration (optional) + */ + UserMgr(sdbusplus::asio::object_server& server, const char* path, + sonic::dbus_bridge::ObjectMapperService* objectMapper = nullptr); + + /** @brief Get reference to user objects map + * + * @return const reference to usersList map + */ + const std::unordered_map>& getUsers() const + { + return usersList; + } + + /** @brief get user info + * Returns user properties for the given user name + * + * @param[in] userName - Name of the user + * @return - map of user properties + */ + UserInfoMap getUserInfo(const std::string& userName); + + private: + /** @brief sdbusplus asio object server */ + sdbusplus::asio::object_server& server; + + /** @brief object path */ + const std::string path; + + /** @brief ObjectMapper service for user registration */ + sonic::dbus_bridge::ObjectMapperService* objectMapper_; + + /** @brief User.Manager D-Bus interface */ + std::shared_ptr userMgrIface; + + /** @brief privilege manager container */ + const std::vector privMgr = {"priv-admin", "priv-operator", + "priv-user"}; + + /** @brief all groups that can be assigned to users */ + const std::vector allGroups = {"redfish"}; + + /** @brief map container to hold users object (only admin) */ + std::unordered_map> usersList; + + /** @brief initialize the user manager objects + * Creates D-Bus object only for the admin user + */ + void initUserObjects(void); + + /** @brief check if user is enabled + * + * @param[in] userName - name of the user + * + * @return true if enabled, false otherwise + */ + bool isUserEnabled(const std::string& userName); + + /** @brief check if user exists in usersList + * + * @param[in] userName - name of the user + * + * @return true if user exists, false otherwise + */ + bool isUserExist(const std::string& userName); +}; + +} // namespace user +} // namespace sonic diff --git a/sonic-dbus-bridge/include/users.hpp b/sonic-dbus-bridge/include/users.hpp new file mode 100644 index 0000000..0ddae89 --- /dev/null +++ b/sonic-dbus-bridge/include/users.hpp @@ -0,0 +1,97 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#pragma once + +#include + +#include +#include +#include + +namespace sonic +{ +namespace user +{ + +// Place where all user objects has to be created +constexpr auto usersObjPath = "/xyz/openbmc_project/user"; + +class UserMgr; // Forward declaration for UserMgr + +/** @class Users + * @brief Lists User objects and its properties + */ +class Users +{ + public: + Users() = delete; + Users(const Users&) = delete; + Users& operator=(const Users&) = delete; + Users(Users&&) = delete; + Users& operator=(Users&&) = delete; + + /** @brief Constructs Users object. + * + * @param[in] server - sdbusplus asio object server + * @param[in] path - D-Bus path + * @param[in] groups - users group list + * @param[in] priv - users privilege + * @param[in] enabled - user enabled state + * @param[in] parent - user manager - parent object + */ + Users(sdbusplus::asio::object_server& server, const std::string& path, + std::vector groups, const std::string& priv, + bool enabled, UserMgr& parent); + + /** @brief Destructor - removes D-Bus interfaces */ + ~Users(); + + /** @brief Get user name + * + * @return user name string + */ + std::string getUserName() const + { + return userName; + } + + /** @brief Get user privilege */ + const std::string& getUserPrivilege() const { return userPrivilege; } + + /** @brief Get user groups */ + const std::vector& getUserGroups() const { return userGroups; } + + /** @brief Get user enabled state */ + bool getUserEnabled() const { return userEnabled; } + + /** @brief Get user locked for failed attempt state */ + bool getUserLockedForFailedAttempt() const { return userLockedForFailedAttempt; } + + /** @brief Get user password expired state */ + bool getUserPasswordExpired() const { return userPasswordExpired; } + + private: + std::string userName; + UserMgr& manager; + sdbusplus::asio::object_server& server; + + // User attributes + std::string userPrivilege; + std::vector userGroups; + bool userEnabled; + bool userLockedForFailedAttempt = false; + bool userPasswordExpired = false; + + // D-Bus interface for User.Attributes + std::shared_ptr userIface; +}; + +} // namespace user +} // namespace sonic diff --git a/sonic-dbus-bridge/meson.build b/sonic-dbus-bridge/meson.build new file mode 100644 index 0000000..47a98a8 --- /dev/null +++ b/sonic-dbus-bridge/meson.build @@ -0,0 +1,114 @@ +project( + 'sonic-dbus-bridge', + 'cpp', + version: '1.0.0', + meson_version: '>=0.57.0', + default_options: [ + 'warning_level=3', + 'werror=true', + 'cpp_std=c++23', + 'buildtype=debugoptimized', + ], +) + +# Configuration for user management +conf_data = configuration_data() +conf_data.set_quoted( + 'USER_MANAGER_BUSNAME', + 'xyz.openbmc_project.User.Manager', + description: 'The D-Bus busname for user management.', +) +conf_data.set_quoted( + 'INVENTORY_MANAGER_BUSNAME', + 'xyz.openbmc_project.Inventory.Manager', + description: 'The D-Bus busname for inventory management.', +) +conf_data.set_quoted( + 'OBJECT_MAPPER_BUSNAME', + 'xyz.openbmc_project.ObjectMapper', + description: 'The D-Bus busname for object mapper.', +) +conf_data.set_quoted( + 'STATE_HOST_BUSNAME', + 'xyz.openbmc_project.State.Host', + description: 'The D-Bus busname for host state management.', +) + +# Enable root user management by default +conf_data.set('ENABLE_ROOT_USER_MGMT', true) + +conf_header = configure_file(output: 'config.h', configuration: conf_data) +# Dependencies +systemd_dep = dependency('libsystemd') +hiredis_dep = dependency('hiredis') +jsoncpp_dep = dependency('jsoncpp') +boost_dep = dependency('boost', modules: ['system']) +threads_dep = dependency('threads') +sdbusplus_dep = dependency('sdbusplus') + +# Source files +sources = files( + 'src/main.cpp', + 'src/bridge_app.cpp', + 'src/redis_adapter.cpp', + 'src/redis_state_publisher.cpp', + 'src/redis_state_subscriber.cpp', + 'src/platform_json_adapter.cpp', + 'src/fru_adapter.cpp', + 'src/inventory_model.cpp', + 'src/dbus_exporter.cpp', + 'src/update_engine.cpp', + 'src/config_manager.cpp', + 'src/object_mapper.cpp', + 'src/state_manager.cpp', + # User management + 'src/user_mgr.cpp', + 'src/users.cpp', + 'src/state_manager.cpp', +) + + +# Include directories +inc = include_directories('include') + +# Executable +executable( + 'sonic-dbus-bridge', + sources, + conf_header, + include_directories: inc, + dependencies: [ + systemd_dep, + hiredis_dep, + jsoncpp_dep, + boost_dep, + threads_dep, + sdbusplus_dep, + ], + link_args: ['-lcrypt'], + install: true, + install_dir: get_option('bindir'), +) + +# Install configuration file +install_data( + 'config/config.yaml', + install_dir: get_option('sysconfdir') / 'sonic-dbus-bridge', +) + +# sonic-dbus-bridge now runs inside docker-bmcweb container (managed by supervisord) +# No systemd service needed + +# Install D-Bus policy files +install_data( + 'dbus/xyz.openbmc_project.Inventory.Manager.conf', + 'dbus/xyz.openbmc_project.ObjectMapper.conf', + 'dbus/xyz.openbmc_project.User.Manager.conf', + install_dir: get_option('sysconfdir') / 'dbus-1' / 'system.d', +) + +# Create state directory +meson.add_install_script('sh', '-c', + 'mkdir -p $DESTDIR' + get_option('prefix') / 'var' / 'lib' / 'sonic-dbus-bridge' +) + diff --git a/sonic-dbus-bridge/meson.options b/sonic-dbus-bridge/meson.options new file mode 100644 index 0000000..e6c75df --- /dev/null +++ b/sonic-dbus-bridge/meson.options @@ -0,0 +1,9 @@ +# sonic-dbus-bridge meson options + +option( + 'root_user_mgmt', + type: 'feature', + value: 'disabled', + description: 'Include root user in user management' +) + diff --git a/sonic-dbus-bridge/src/bridge_app.cpp b/sonic-dbus-bridge/src/bridge_app.cpp new file mode 100644 index 0000000..b6ef902 --- /dev/null +++ b/sonic-dbus-bridge/src/bridge_app.cpp @@ -0,0 +1,516 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "bridge_app.hpp" +#include "inventory_model.hpp" +#include "logger.hpp" +#include "config.h" +#include +#include + +namespace sonic::dbus_bridge +{ + +// Signal handlers for runtime log file dumping +static void handleLogSignal(int signum) +{ + if (signum == SIGUSR1) + { + // Enable file logging + LOGGER_ENABLE_FILE_LOGGING(); + } + else if (signum == SIGUSR2) + { + // Disable file logging + LOGGER_DISABLE_FILE_LOGGING(); + } +} + +BridgeApp::BridgeApp(const std::string& configPath) + : configPath_(configPath), signals_(io_, SIGINT, SIGTERM) +{ + // Initialize logger from environment variable + LOGGER_INIT(); + + // Register signal handlers for runtime log file dumping + // SIGUSR1: start dumping logs to /tmp/sonic-dbus-bridge.log + // SIGUSR2: stop dumping logs and delete the file + signal(SIGUSR1, handleLogSignal); + signal(SIGUSR2, handleLogSignal); +} + +bool BridgeApp::initialize() +{ + LOG_INFO("Initializing SONiC D-Bus Bridge..."); + + // Load configuration + if (!loadConfiguration()) + { + LOG_ERROR("Failed to load configuration"); + return false; + } + + // Connect to D-Bus and claim all service names + if (!connectDbus()) + { + LOG_ERROR("Failed to connect to D-Bus"); + return false; + } + + // Initialize ObjectMapper service for bmcweb discovery (uses mapper connection) + objectMapper_ = std::make_unique(*mapperServer_); + if (!objectMapper_->initialize()) + { + LOG_ERROR("Failed to initialize ObjectMapper service"); + return false; + } + + // Initialize data sources + initializeDataSources(); + + // Build initial inventory model + currentModel_ = buildInitialModel(); + + // Create D-Bus objects (inventory) + createDbusObjects(); + + // Create state objects + createStateObjects(); + + // Initialize user management (non-fatal if it fails) + initializeUserManager(); + + // Start update engine + startUpdateEngine(); + + // Setup signal handlers + signals_.async_wait([this](const boost::system::error_code& ec, int signal) { + handleSignal(ec, signal); + }); + + logHealthReport(); + + return true; +} + +int BridgeApp::run() +{ + LOG_INFO("Running main event loop..."); + + try + { + // sdbusplus::asio::connection handles D-Bus event integration automatically + io_.run(); + } + catch (const std::exception& e) + { + LOG_ERROR("Event loop error: %s", e.what()); + return 1; + } + + LOG_INFO("Exiting..."); + return 0; +} + +void BridgeApp::shutdown() +{ + LOG_INFO("Shutting down..."); + + if (redisSubscriber_) + { + LOG_INFO("Stopping Redis subscriber..."); + redisSubscriber_->stop(); + } + + if (updateEngine_) + { + updateEngine_->stop(); + } + + // sdbusplus connection cleanup is automatic (RAII) + io_.stop(); +} + +bool BridgeApp::loadConfiguration() +{ + configMgr_ = std::make_unique(); + return configMgr_->load(configPath_); +} + +bool BridgeApp::connectDbus() +{ + try + { + sd_bus* bus = nullptr; + int r; + + // Inventory Manager connection + LOG_INFO("Requesting D-Bus name: %s", INVENTORY_MANAGER_BUSNAME); + r = sd_bus_open_system(&bus); + if (r < 0) + { + LOG_ERROR("Failed to open system bus for Inventory: %s", strerror(-r)); + return false; + } + inventoryConn_ = std::make_shared(io_, bus); + inventoryConn_->request_name(INVENTORY_MANAGER_BUSNAME); + inventoryServer_ = std::make_unique(inventoryConn_); + + // ObjectMapper connection + LOG_INFO("Requesting D-Bus name: %s", OBJECT_MAPPER_BUSNAME); + bus = nullptr; + r = sd_bus_open_system(&bus); + if (r < 0) + { + LOG_ERROR("Failed to open system bus for ObjectMapper: %s", strerror(-r)); + return false; + } + mapperConn_ = std::make_shared(io_, bus); + mapperConn_->request_name(OBJECT_MAPPER_BUSNAME); + mapperServer_ = std::make_unique(mapperConn_); + + // User Manager connection + LOG_INFO("Requesting D-Bus name: %s", USER_MANAGER_BUSNAME); + bus = nullptr; + r = sd_bus_open_system(&bus); + if (r < 0) + { + LOG_ERROR("Failed to open system bus for User Manager: %s", strerror(-r)); + return false; + } + userConn_ = std::make_shared(io_, bus); + userConn_->request_name(USER_MANAGER_BUSNAME); + userServer_ = std::make_unique(userConn_); + + LOG_INFO("Connected to D-Bus successfully (2 connections)"); + + // State.Host connection + LOG_INFO("Requesting D-Bus name: %s", STATE_HOST_BUSNAME); + bus = nullptr; + r = sd_bus_open_system(&bus); + if (r < 0) + { + LOG_ERROR("Failed to open system bus for State.Host: %s", strerror(-r)); + return false; + } + stateConn_ = std::make_shared(io_, bus); + stateConn_->request_name(STATE_HOST_BUSNAME); + stateServer_ = std::make_unique(stateConn_); + + LOG_INFO("Connected to D-Bus successfully (5 connections)"); + return true; + } + catch (const std::exception& e) + { + LOG_ERROR("Failed to connect to D-Bus: %s", e.what()); + return false; + } +} + +void BridgeApp::initializeDataSources() +{ + LOG_INFO("Initializing data sources..."); + + // Initialize Redis adapter + redisAdapter_ = std::make_shared( + configMgr_->getConfigDbHost(), + configMgr_->getConfigDbPort(), + configMgr_->getStateDbHost(), + configMgr_->getStateDbPort() + ); + + if (redisAdapter_->connect()) + { + updateHealth(DataSource::RedisConfigDb, + redisAdapter_->isConfigDbConnected() ? + DataSourceHealth::Healthy : DataSourceHealth::Unavailable); + updateHealth(DataSource::RedisStateDb, + redisAdapter_->isStateDbConnected() ? + DataSourceHealth::Healthy : DataSourceHealth::Unavailable); + } + else + { + updateHealth(DataSource::RedisConfigDb, DataSourceHealth::Unavailable); + updateHealth(DataSource::RedisStateDb, DataSourceHealth::Unavailable); + } + + // Initialize platform.json adapter + platformAdapter_ = std::make_unique( + configMgr_->getPlatformJsonPath() + ); + + if (platformAdapter_->load()) + { + updateHealth(DataSource::PlatformJson, DataSourceHealth::Healthy); + } + else + { + updateHealth(DataSource::PlatformJson, DataSourceHealth::Unavailable); + } + + // Initialize FRU adapter + fruAdapter_ = std::make_unique( + configMgr_->getFruEepromPaths() + ); + + if (fruAdapter_->scanAndLoad()) + { + updateHealth(DataSource::FruEeprom, DataSourceHealth::Healthy); + } + else + { + updateHealth(DataSource::FruEeprom, DataSourceHealth::Unavailable); + } +} + +InventoryModel BridgeApp::buildInitialModel() +{ + LOG_INFO("Building initial inventory model..."); + + std::optional fruInfo; + if (fruAdapter_->isLoaded()) + { + fruInfo = fruAdapter_->getFruInfo(); + } + + std::optional deviceMetadata; + if (redisAdapter_->isConfigDbConnected()) + { + deviceMetadata = redisAdapter_->getDeviceMetadata(); + } + + std::optional platformDesc; + if (platformAdapter_->isLoaded()) + { + platformDesc = platformAdapter_->getPlatformDescription(); + } + + std::optional chassisState; + if (redisAdapter_->isStateDbConnected()) + { + chassisState = redisAdapter_->getChassisState(); + } + + auto model = InventoryModelBuilder::build(fruInfo, deviceMetadata, platformDesc, chassisState); + + // Read firmware versions for FirmwareInventory + model.firmwareVersions = redisAdapter_->getFirmwareVersions(); + + return model; +} + +void BridgeApp::createDbusObjects() +{ + // Use inventory connection for inventory/state objects + dbusExporter_ = std::make_shared(*inventoryServer_); + if (!dbusExporter_->createObjects(currentModel_)) + { + LOG_WARNING("Failed to create some D-Bus objects"); + } + + // Register the objects we own with the local ObjectMapper so that + // bmcweb can discover them using GetSubTree* calls. + if (objectMapper_) + { + // Chassis inventory object + objectMapper_->registerObject( + "/xyz/openbmc_project/inventory/system/chassis", + {"xyz.openbmc_project.Inventory.Item.Chassis", + "xyz.openbmc_project.Inventory.Decorator.Asset", + "xyz.openbmc_project.Inventory.Decorator.Model"}); + + // System inventory object (no Item.System interface yet, + // only common decorators) + objectMapper_->registerObject( + "/xyz/openbmc_project/inventory/system/system0", + {"xyz.openbmc_project.Inventory.Decorator.Asset", + "xyz.openbmc_project.Inventory.Decorator.Model"}); + + // Chassis state object + objectMapper_->registerObject( + "/xyz/openbmc_project/state/chassis0", + {"xyz.openbmc_project.State.Chassis"}); + + // Firmware inventory objects (for /redfish/v1/UpdateService/FirmwareInventory) + for (const auto& fw : currentModel_.firmwareVersions) + { + std::string fwPath = "/xyz/openbmc_project/software/" + fw.id; + objectMapper_->registerObject( + fwPath, + {"xyz.openbmc_project.Software.Version", + "xyz.openbmc_project.Software.Activation"}); + } + } +} + +void BridgeApp::createStateObjects() +{ + // Use dedicated State.Host connection for state objects + stateManager_ = std::make_unique(*stateServer_, io_); + + if (!stateManager_->createStateObjects()) + { + LOG_WARNING("Failed to create state objects"); + return; + } + + // Register the state object with the local ObjectMapper so that + // bmcweb can discover it using GetSubTree* calls. + if (objectMapper_) + { + objectMapper_->registerObject( + "/xyz/openbmc_project/state/host0", + {"xyz.openbmc_project.State.Host"}); + } +} + +void BridgeApp::startUpdateEngine() +{ + // Create UpdateEngine with polling disabled - event-driven mode only + updateEngine_ = std::make_unique( + io_, + redisAdapter_, + dbusExporter_, + 0 // Disable polling - use event-driven updates only + ); + + updateEngine_->setUpdateCallback([this]() { + LOG_INFO("Inventory updated"); + }); + + updateEngine_->start(); + + // Start event-driven Redis subscriber for multiple keys + LOG_INFO("Starting event-driven Redis subscriber..."); + + redisSubscriber_ = std::make_unique(); + + // Subscribe to multiple Redis keys for event-driven updates + std::vector keysToSubscribe = { + "DEVICE_METADATA", // Serial number, platform, hostname + "CHASSIS_STATE", // Power state + "SWITCH_HOST_STATE" // Host state (for future use) + }; + + // Register callback to UpdateEngine + auto callback = [this](const std::string& key, + const std::string& field, + const std::string& value) { + // Forward Redis events to UpdateEngine + updateEngine_->onRedisFieldChange(key, field, value); + }; + + // Start subscriber with multiple keys (use STATE_DB connection) + bool started = redisSubscriber_->startMultiKey( + configMgr_->getStateDbHost(), + configMgr_->getStateDbPort(), + keysToSubscribe, + callback + ); + + if (!started) + { + LOG_ERROR("FATAL: Failed to start event-driven Redis subscriber"); + LOG_ERROR("Cannot continue without event-driven updates"); + throw std::runtime_error("Failed to start event-driven Redis subscriber"); + } + + LOG_INFO("Event-driven Redis subscriber started successfully"); + LOG_INFO("Subscribed to %zu Redis keys for instant updates", keysToSubscribe.size()); +} + +void BridgeApp::handleSignal(const boost::system::error_code& ec, int signal) +{ + if (!ec) + { + LOG_INFO("Received signal %d", signal); + shutdown(); + } +} + +void BridgeApp::updateHealth(DataSource source, DataSourceHealth health) +{ + healthStatus_[source] = health; +} + +void BridgeApp::logHealthReport() +{ + LOG_INFO("=== Data Source Health Report ==="); + + auto printHealth = [](const std::string& name, DataSourceHealth health) { + const char* status = "Unknown"; + switch (health) + { + case DataSourceHealth::Healthy: + status = "Healthy"; + LOG_INFO(" %s: %s", name.c_str(), status); + break; + case DataSourceHealth::Degraded: + status = "Degraded"; + LOG_WARNING(" %s: %s", name.c_str(), status); + break; + case DataSourceHealth::Unavailable: + status = "Unavailable"; + LOG_WARNING(" %s: %s", name.c_str(), status); + break; + } + }; + + printHealth("CONFIG_DB", healthStatus_[DataSource::RedisConfigDb]); + printHealth("STATE_DB", healthStatus_[DataSource::RedisStateDb]); + printHealth("platform.json", healthStatus_[DataSource::PlatformJson]); + printHealth("FRU EEPROM", healthStatus_[DataSource::FruEeprom]); + + LOG_INFO("=================================="); +} + +void BridgeApp::initializeUserManager() +{ + LOG_INFO("Initializing user management..."); + + try + { + // Create user manager using user connection (separate from inventory/mapper) + // (scans /etc/passwd on construction) + userMgr_ = std::make_unique( + *userServer_, "/xyz/openbmc_project/user", objectMapper_.get()); + + // Register user manager with ObjectMapper for bmcweb discovery + if (objectMapper_) + { + objectMapper_->registerObject( + "/xyz/openbmc_project/user", + {USER_MANAGER_BUSNAME}, + USER_MANAGER_BUSNAME); + + // Register each existing user object with User.Manager service name. + // User objects are read-only; creation/deletion is handled outside + // of sonic-dbus-bridge. + for (const auto& [username, userObj] : userMgr_->getUsers()) + { + std::string userPath = "/xyz/openbmc_project/user/" + username; + objectMapper_->registerObject( + userPath, + {"xyz.openbmc_project.User.Attributes"}, + USER_MANAGER_BUSNAME); + } + } + + LOG_INFO("User management initialized successfully"); + } + catch (const std::exception& e) + { + LOG_ERROR("Failed to initialize user management: %s", e.what()); + LOG_WARNING("User management not available"); + userMgr_.reset(); + } +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/config_manager.cpp b/sonic-dbus-bridge/src/config_manager.cpp new file mode 100644 index 0000000..4017404 --- /dev/null +++ b/sonic-dbus-bridge/src/config_manager.cpp @@ -0,0 +1,37 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "config_manager.hpp" +#include "logger.hpp" +#include +#include + +namespace sonic::dbus_bridge +{ + +bool ConfigManager::load(const std::string& configPath) +{ + std::ifstream configFile(configPath); + if (!configFile.is_open()) + { + LOG_WARNING("Could not open config file: %s, using defaults", + configPath.c_str()); + return true; // Use defaults + } + + // For now, just use defaults + // TODO: Implement YAML parsing (requires yaml-cpp dependency) + // This is acceptable for MVP - config file is optional + + LOG_INFO("Using default configuration"); + return true; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/dbus_exporter.cpp b/sonic-dbus-bridge/src/dbus_exporter.cpp new file mode 100644 index 0000000..5898283 --- /dev/null +++ b/sonic-dbus-bridge/src/dbus_exporter.cpp @@ -0,0 +1,259 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "dbus_exporter.hpp" +#include "logger.hpp" + +namespace sonic::dbus_bridge +{ + +// D-Bus interface names (OpenBMC standard) +constexpr const char* IFACE_INVENTORY_CHASSIS = "xyz.openbmc_project.Inventory.Item.Chassis"; +constexpr const char* IFACE_DECORATOR_ASSET = "xyz.openbmc_project.Inventory.Decorator.Asset"; +constexpr const char* IFACE_DECORATOR_MODEL = "xyz.openbmc_project.Inventory.Decorator.Model"; +constexpr const char* IFACE_STATE_CHASSIS = "xyz.openbmc_project.State.Chassis"; +constexpr const char* IFACE_SOFTWARE_VERSION = "xyz.openbmc_project.Software.Version"; +constexpr const char* IFACE_SOFTWARE_ACTIVATION = "xyz.openbmc_project.Software.Activation"; + +// D-Bus object paths +constexpr const char* OBJ_PATH_CHASSIS = "/xyz/openbmc_project/inventory/system/chassis"; +constexpr const char* OBJ_PATH_SYSTEM = "/xyz/openbmc_project/inventory/system/system0"; +constexpr const char* OBJ_PATH_CHASSIS_STATE = "/xyz/openbmc_project/state/chassis0"; + +DBusExporter::DBusExporter(sdbusplus::asio::object_server& inventoryServer) + : inventoryServer_(inventoryServer) +{ +} + +bool DBusExporter::createObjects(const InventoryModel& model) +{ + LOG_INFO("Creating D-Bus objects..."); + + if (!createChassisObject(model.chassis)) + { + LOG_ERROR("Failed to create chassis object"); + return false; + } + + if (!createSystemObject(model.system)) + { + LOG_ERROR("Failed to create system object"); + return false; + } + + if (!createChassisStateObject(model.chassisState)) + { + LOG_ERROR("Failed to create chassis state object"); + return false; + } + + if (!model.firmwareVersions.empty()) + { + if (!createFirmwareObjects(model.firmwareVersions)) + { + LOG_WARNING("Failed to create some firmware inventory objects"); + } + } + + currentModel_ = model; + + LOG_INFO("D-Bus objects created successfully"); + return true; +} + +bool DBusExporter::updateObjects(const InventoryModel& model) +{ + // For now, just update the model + // Property change signals would be emitted here + currentModel_ = model; + return true; +} + +bool DBusExporter::createChassisObject(const ChassisInfo& chassis) +{ + // Store chassis data in currentModel_ for property getters + currentModel_.chassis = chassis; + + // Item.Chassis interface (REQUIRED by bmcweb for chassis discovery!) + auto chassisIface = inventoryServer_.add_interface(OBJ_PATH_CHASSIS, IFACE_INVENTORY_CHASSIS); + chassisIface->register_property_r( + "Type", std::string(""), + sdbusplus::vtable::property_::const_, + [](const auto&) { + return "xyz.openbmc_project.Inventory.Item.Chassis.ChassisType.RackMount"; + }); + chassisIface->initialize(); + interfaces_[std::string(OBJ_PATH_CHASSIS) + ":" + IFACE_INVENTORY_CHASSIS] = chassisIface; + + // Decorator.Asset interface + auto assetIface = inventoryServer_.add_interface(OBJ_PATH_CHASSIS, IFACE_DECORATOR_ASSET); + assetIface->register_property_r( + "SerialNumber", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.chassis.serialNumber; }); + assetIface->register_property_r( + "PartNumber", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.chassis.partNumber; }); + assetIface->register_property_r( + "Manufacturer", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.chassis.manufacturer; }); + assetIface->initialize(); + interfaces_[std::string(OBJ_PATH_CHASSIS) + ":" + IFACE_DECORATOR_ASSET] = assetIface; + + // Decorator.Model interface + auto modelIface = inventoryServer_.add_interface(OBJ_PATH_CHASSIS, IFACE_DECORATOR_MODEL); + modelIface->register_property_r( + "Model", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.chassis.model; }); + modelIface->initialize(); + interfaces_[std::string(OBJ_PATH_CHASSIS) + ":" + IFACE_DECORATOR_MODEL] = modelIface; + + LOG_INFO("Created chassis object at %s", OBJ_PATH_CHASSIS); + return true; +} + +bool DBusExporter::createSystemObject(const SystemInfo& system) +{ + // Store system data in currentModel_ for property getters + currentModel_.system = system; + + // Decorator.Asset interface + auto assetIface = inventoryServer_.add_interface(OBJ_PATH_SYSTEM, IFACE_DECORATOR_ASSET); + assetIface->register_property_r( + "SerialNumber", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.system.serialNumber; }); + assetIface->register_property_r( + "Manufacturer", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.system.manufacturer; }); + assetIface->initialize(); + interfaces_[std::string(OBJ_PATH_SYSTEM) + ":" + IFACE_DECORATOR_ASSET] = assetIface; + + // Decorator.Model interface + auto modelIface = inventoryServer_.add_interface(OBJ_PATH_SYSTEM, IFACE_DECORATOR_MODEL); + modelIface->register_property_r( + "Model", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { return currentModel_.system.model; }); + modelIface->initialize(); + interfaces_[std::string(OBJ_PATH_SYSTEM) + ":" + IFACE_DECORATOR_MODEL] = modelIface; + + LOG_INFO("Created system object at %s", OBJ_PATH_SYSTEM); + return true; +} + +bool DBusExporter::createChassisStateObject(const ChassisState& state) +{ + // Store state data in currentModel_ for property getters + currentModel_.chassisState = state; + + // State.Chassis interface + auto stateIface = inventoryServer_.add_interface(OBJ_PATH_CHASSIS_STATE, IFACE_STATE_CHASSIS); + stateIface->register_property_r( + "CurrentPowerState", std::string(""), + sdbusplus::vtable::property_::const_, + [this](const auto&) { + return (currentModel_.chassisState.powerState == "on") + ? "xyz.openbmc_project.State.Chassis.PowerState.On" + : "xyz.openbmc_project.State.Chassis.PowerState.Off"; + }); + stateIface->initialize(); + interfaces_[std::string(OBJ_PATH_CHASSIS_STATE) + ":" + IFACE_STATE_CHASSIS] = stateIface; + + LOG_INFO("Created chassis state object at %s", OBJ_PATH_CHASSIS_STATE); + return true; +} + +bool DBusExporter::createFirmwareObjects( + const std::vector& versions) +{ + currentModel_.firmwareVersions = versions; + + for (size_t i = 0; i < versions.size(); i++) + { + const auto& fw = versions[i]; + std::string objPath = "/xyz/openbmc_project/software/" + fw.id; + + try + { + std::string purposeStr; + switch (fw.purpose) + { + case FirmwarePurpose::BMC: + purposeStr = "xyz.openbmc_project.Software.Version.VersionPurpose.BMC"; + break; + case FirmwarePurpose::Host: + purposeStr = "xyz.openbmc_project.Software.Version.VersionPurpose.Host"; + break; + default: + purposeStr = "xyz.openbmc_project.Software.Version.VersionPurpose.Other"; + break; + } + + // Software.Version interface + auto versionIface = inventoryServer_.add_interface(objPath, + IFACE_SOFTWARE_VERSION); + versionIface->register_property_r( + "Version", std::string(""), + sdbusplus::vtable::property_::const_, + [this, idx = i](const auto&) { + if (idx < currentModel_.firmwareVersions.size()) + { + return currentModel_.firmwareVersions[idx].version; + } + return std::string("Unknown"); + }); + versionIface->register_property_r( + "Purpose", std::string(""), + sdbusplus::vtable::property_::const_, + [purposeStr](const auto&) { + return purposeStr; + }); + versionIface->initialize(); + interfaces_[objPath + ":" + IFACE_SOFTWARE_VERSION] = versionIface; + + // Software.Activation interface + auto activationIface = inventoryServer_.add_interface(objPath, + IFACE_SOFTWARE_ACTIVATION); + activationIface->register_property_r( + "Activation", std::string(""), + sdbusplus::vtable::property_::const_, + [](const auto&) { + return std::string( + "xyz.openbmc_project.Software.Activation.Activations.Active"); + }); + activationIface->register_property_r( + "RequestedActivation", std::string(""), + sdbusplus::vtable::property_::const_, + [](const auto&) { + return std::string( + "xyz.openbmc_project.Software.Activation.RequestedActivations.None"); + }); + activationIface->initialize(); + interfaces_[objPath + ":" + IFACE_SOFTWARE_ACTIVATION] = activationIface; + + LOG_INFO("Created firmware object at %s (version=%s, purpose=%s)", + objPath.c_str(), fw.version.c_str(), purposeStr.c_str()); + } + catch (const std::exception& e) + { + LOG_ERROR("Failed to create firmware object at %s: %s", + objPath.c_str(), e.what()); + } + } + + return true; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/fru_adapter.cpp b/sonic-dbus-bridge/src/fru_adapter.cpp new file mode 100644 index 0000000..aa81337 --- /dev/null +++ b/sonic-dbus-bridge/src/fru_adapter.cpp @@ -0,0 +1,157 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "fru_adapter.hpp" +#include "logger.hpp" +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +// ONIE TLV type codes +constexpr uint8_t TLV_CODE_PRODUCT_NAME = 0x21; +constexpr uint8_t TLV_CODE_PART_NUMBER = 0x22; +constexpr uint8_t TLV_CODE_SERIAL_NUMBER = 0x23; +constexpr uint8_t TLV_CODE_MAC_BASE = 0x24; +constexpr uint8_t TLV_CODE_MANUFACTURE_DATE = 0x25; +constexpr uint8_t TLV_CODE_DEVICE_VERSION = 0x26; +constexpr uint8_t TLV_CODE_PLATFORM_NAME = 0x28; +constexpr uint8_t TLV_CODE_ONIE_VERSION = 0x29; +constexpr uint8_t TLV_CODE_MANUFACTURER = 0x2B; +constexpr uint8_t TLV_CODE_COUNTRY_CODE = 0x2C; +constexpr uint8_t TLV_CODE_VENDOR = 0x2D; +constexpr uint8_t TLV_CODE_MODEL = 0x2E; +constexpr uint8_t TLV_CODE_CRC32 = 0xFE; + +FruAdapter::FruAdapter(const std::vector& eepromPaths) + : eepromPaths_(eepromPaths) +{ +} + +bool FruAdapter::scanAndLoad() +{ + LOG_INFO("Scanning for FRU EEPROMs..."); + + for (const auto& path : eepromPaths_) + { + LOG_DEBUG("Trying FRU EEPROM: %s", path.c_str()); + if (readEeprom(path)) + { + LOG_INFO("Successfully read FRU from: %s", path.c_str()); + loaded_ = true; + return true; + } + } + + LOG_WARNING("No FRU EEPROM found"); + return false; +} + +bool FruAdapter::readEeprom(const std::string& path) +{ + std::ifstream file(path, std::ios::binary); + if (!file.is_open()) + { + return false; + } + + // Read entire EEPROM + std::vector data((std::istreambuf_iterator(file)), + std::istreambuf_iterator()); + + if (data.size() < 11) // Minimum TLV header size + { + return false; + } + + // Validate TLV header + if (data[0] != 'T' || data[1] != 'l' || data[2] != 'v' || + data[3] != 'I' || data[4] != 'n' || data[5] != 'f' || + data[6] != 'o' || data[7] != 0x00) + { + LOG_DEBUG("Invalid TLV header in EEPROM"); + return false; + } + + // Parse TLV data + fruInfo_ = parseTlv(data); + return true; +} + +FruInfo FruAdapter::parseTlv(const std::vector& data) +{ + FruInfo info; + + // Skip header (8 bytes) and version (1 byte) + size_t offset = 9; + + // Total length is at bytes 9-10 (big-endian) + uint16_t totalLen = (data[9] << 8) | data[10]; + offset = 11; + + while (offset < data.size() && offset < (11 + static_cast(totalLen))) + { + if (offset + 2 > data.size()) break; + + uint8_t type = data[offset]; + uint8_t len = data[offset + 1]; + offset += 2; + + if (offset + len > data.size()) break; + + std::string value(reinterpret_cast(&data[offset]), len); + + switch (type) + { + case TLV_CODE_PRODUCT_NAME: + info.productName = value; + break; + case TLV_CODE_PART_NUMBER: + info.partNumber = value; + break; + case TLV_CODE_SERIAL_NUMBER: + info.serialNumber = value; + break; + case TLV_CODE_MANUFACTURE_DATE: + info.manufactureDate = value; + break; + case TLV_CODE_DEVICE_VERSION: + info.hardwareVersion = value; + break; + case TLV_CODE_MANUFACTURER: + info.manufacturer = value; + break; + case TLV_CODE_MODEL: + info.model = value; + break; + case TLV_CODE_CRC32: + // End of TLV + return info; + default: + // Unknown type, skip + break; + } + + offset += len; + } + + return info; +} + +bool FruAdapter::validateCrc(const std::vector& /* data */) +{ + // TODO: Implement CRC32 validation + // For MVP, skip CRC validation + return true; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/inventory_model.cpp b/sonic-dbus-bridge/src/inventory_model.cpp new file mode 100644 index 0000000..4fe423b --- /dev/null +++ b/sonic-dbus-bridge/src/inventory_model.cpp @@ -0,0 +1,267 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "inventory_model.hpp" +#include "logger.hpp" + +namespace sonic::dbus_bridge +{ + +// Helper function to convert FieldSource to string +static const char* fieldSourceToString(FieldSource source) +{ + switch (source) + { + case FieldSource::Redis: return "Redis"; + case FieldSource::FruEeprom: return "FRU EEPROM"; + case FieldSource::PlatformJson: return "platform.json"; + case FieldSource::Default: return "Default"; + default: return "Unknown"; + } +} + +InventoryModel InventoryModelBuilder::build( + const std::optional& fruInfo, + const std::optional& deviceMetadata, + const std::optional& platformDesc, + const std::optional& chassisState) +{ + InventoryModel model; + + model.chassis = buildChassisInfo(fruInfo, deviceMetadata, platformDesc); + model.system = buildSystemInfo(fruInfo, deviceMetadata); + model.chassisState = chassisState.value_or(ChassisState{}); + model.psus = buildPsuList(platformDesc); + model.fans = buildFanList(platformDesc); + + return model; +} + +ChassisInfo InventoryModelBuilder::buildChassisInfo( + const std::optional& fruInfo, + const std::optional& deviceMetadata, + const std::optional& platformDesc) +{ + ChassisInfo chassis; + + // Serial number: Redis > FRU > platform.json > default + if (deviceMetadata && deviceMetadata->serialNumber) + { + chassis.serialNumber = *deviceMetadata->serialNumber; + chassis.serialNumberSource = FieldSource::Redis; + } + else if (fruInfo && fruInfo->serialNumber) + { + chassis.serialNumber = *fruInfo->serialNumber; + chassis.serialNumberSource = FieldSource::FruEeprom; + } + // No platform.json fallback for serial number + + // Part number: Redis > FRU > platform.json > hwsku > default + if (deviceMetadata && deviceMetadata->partNumber) + { + chassis.partNumber = *deviceMetadata->partNumber; + chassis.partNumberSource = FieldSource::Redis; + } + else if (fruInfo && fruInfo->partNumber) + { + chassis.partNumber = *fruInfo->partNumber; + chassis.partNumberSource = FieldSource::FruEeprom; + } + else if (platformDesc && platformDesc->chassisPartNumber) + { + chassis.partNumber = *platformDesc->chassisPartNumber; + chassis.partNumberSource = FieldSource::PlatformJson; + } + else if (deviceMetadata && deviceMetadata->hwsku) + { + chassis.partNumber = *deviceMetadata->hwsku; + chassis.partNumberSource = FieldSource::Redis; + } + + // Manufacturer: Redis > FRU > platform.json > default + if (deviceMetadata && deviceMetadata->manufacturer) + { + chassis.manufacturer = *deviceMetadata->manufacturer; + chassis.manufacturerSource = FieldSource::Redis; + } + else if (fruInfo && fruInfo->manufacturer) + { + chassis.manufacturer = *fruInfo->manufacturer; + chassis.manufacturerSource = FieldSource::FruEeprom; + } + // No platform.json fallback for manufacturer + + // Model: Redis model > Redis platform > FRU > platform.json > default + if (deviceMetadata && deviceMetadata->model) + { + chassis.model = *deviceMetadata->model; + chassis.modelSource = FieldSource::Redis; + } + else if (deviceMetadata && deviceMetadata->platform) + { + chassis.model = *deviceMetadata->platform; + chassis.modelSource = FieldSource::Redis; + } + else if (fruInfo && fruInfo->model) + { + chassis.model = *fruInfo->model; + chassis.modelSource = FieldSource::FruEeprom; + } + // No platform.json fallback for model + + // Hardware version: Redis > FRU > platform.json > default + if (fruInfo && fruInfo->hardwareVersion) + { + chassis.hardwareVersion = *fruInfo->hardwareVersion; + } + else if (platformDesc && platformDesc->chassisHardwareVersion) + { + chassis.hardwareVersion = *platformDesc->chassisHardwareVersion; + } + + // Pretty name: platform.json > FRU product name > default + if (platformDesc && !platformDesc->chassisName.empty()) + { + chassis.prettyName = platformDesc->chassisName; + } + else if (fruInfo && fruInfo->productName) + { + chassis.prettyName = *fruInfo->productName; + } + + // Log data sources + LOG_INFO("Chassis Data Sources:"); + LOG_INFO(" SerialNumber: \"%s\" (from %s)", + chassis.serialNumber.c_str(), fieldSourceToString(chassis.serialNumberSource)); + LOG_INFO(" PartNumber: \"%s\" (from %s)", + chassis.partNumber.c_str(), fieldSourceToString(chassis.partNumberSource)); + LOG_INFO(" Manufacturer: \"%s\" (from %s)", + chassis.manufacturer.c_str(), fieldSourceToString(chassis.manufacturerSource)); + LOG_INFO(" Model: \"%s\" (from %s)", + chassis.model.c_str(), fieldSourceToString(chassis.modelSource)); + + return chassis; +} + +SystemInfo InventoryModelBuilder::buildSystemInfo( + const std::optional& fruInfo, + const std::optional& deviceMetadata) +{ + SystemInfo system; + + // Serial number: FRU > CONFIG_DB > default + if (fruInfo && fruInfo->serialNumber) + { + system.serialNumber = *fruInfo->serialNumber; + } + else if (deviceMetadata && deviceMetadata->serialNumber) + { + system.serialNumber = *deviceMetadata->serialNumber; + } + + // Manufacturer: FRU > CONFIG_DB > default + if (fruInfo && fruInfo->manufacturer) + { + system.manufacturer = *fruInfo->manufacturer; + } + else if (deviceMetadata && deviceMetadata->manufacturer) + { + system.manufacturer = *deviceMetadata->manufacturer; + } + + // Model: FRU > CONFIG_DB > default + if (fruInfo && fruInfo->model) + { + system.model = *fruInfo->model; + } + else if (deviceMetadata && deviceMetadata->platform) + { + system.model = *deviceMetadata->platform; + } + + // Hostname: CONFIG_DB > default + if (deviceMetadata && deviceMetadata->hostname) + { + system.hostname = *deviceMetadata->hostname; + system.prettyName = *deviceMetadata->hostname; + } + + return system; +} + +std::vector InventoryModelBuilder::buildPsuList( + const std::optional& platformDesc) +{ + std::vector psus; + + if (platformDesc) + { + for (const auto& name : platformDesc->psuNames) + { + PsuInfo psu; + psu.name = name; + psu.present = false; // Will be updated by sensors later + psus.push_back(psu); + } + } + + return psus; +} + +std::vector InventoryModelBuilder::buildFanList( + const std::optional& platformDesc) +{ + std::vector fans; + + if (platformDesc) + { + for (const auto& name : platformDesc->fanNames) + { + FanInfo fan; + fan.name = name; + fan.present = false; // Will be updated by sensors later + fans.push_back(fan); + } + } + + return fans; +} + +bool hasChanged(const InventoryModel& oldModel, const InventoryModel& newModel) +{ + // Compare chassis info + if (oldModel.chassis.serialNumber != newModel.chassis.serialNumber || + oldModel.chassis.partNumber != newModel.chassis.partNumber || + oldModel.chassis.manufacturer != newModel.chassis.manufacturer || + oldModel.chassis.model != newModel.chassis.model) + { + return true; + } + + // Compare system info + if (oldModel.system.serialNumber != newModel.system.serialNumber || + oldModel.system.manufacturer != newModel.system.manufacturer || + oldModel.system.model != newModel.system.model || + oldModel.system.hostname != newModel.system.hostname) + { + return true; + } + + // Compare chassis state + if (oldModel.chassisState.powerState != newModel.chassisState.powerState) + { + return true; + } + + return false; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/main.cpp b/sonic-dbus-bridge/src/main.cpp new file mode 100644 index 0000000..603f150 --- /dev/null +++ b/sonic-dbus-bridge/src/main.cpp @@ -0,0 +1,95 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "bridge_app.hpp" +#include "logger.hpp" +#include +#include +#include + +using namespace sonic::dbus_bridge; + +namespace +{ +constexpr const char* VERSION = "1.0.0"; +constexpr const char* DEFAULT_CONFIG_PATH = "/etc/sonic-dbus-bridge/config.yaml"; + +void printUsage(const char* progName) +{ + std::cout << "Usage: " << progName << " [OPTIONS]\n\n" + << "SONiC to D-Bus Inventory Bridge\n\n" + << "Options:\n" + << " -c, --config PATH Config file path (default: " << DEFAULT_CONFIG_PATH << ")\n" + << " -v, --version Print version and exit\n" + << " -h, --help Show this help message\n" + << std::endl; +} + +void printVersion() +{ + std::cout << "sonic-dbus-bridge version " << VERSION << std::endl; +} + +} // anonymous namespace + +int main(int argc, char* argv[]) +{ + openlog("sonic-dbus-bridge", LOG_PID | LOG_NDELAY, LOG_DAEMON); + std::string configPath = DEFAULT_CONFIG_PATH; + + // Parse command-line arguments + static struct option longOptions[] = { + {"config", required_argument, nullptr, 'c'}, + {"version", no_argument, nullptr, 'v'}, + {"help", no_argument, nullptr, 'h'}, + {nullptr, 0, nullptr, 0} + }; + + int opt; + while ((opt = getopt_long(argc, argv, "c:vh", longOptions, nullptr)) != -1) + { + switch (opt) + { + case 'c': + configPath = optarg; + break; + case 'v': + printVersion(); + return EXIT_SUCCESS; + case 'h': + printUsage(argv[0]); + return EXIT_SUCCESS; + default: + printUsage(argv[0]); + return EXIT_FAILURE; + } + } + + try + { + LOG_INFO("Starting sonic-dbus-bridge with config: %s", configPath.c_str()); + + BridgeApp app(configPath); + + if (!app.initialize()) + { + LOG_ERROR("Failed to initialize application"); + return EXIT_FAILURE; + } + + LOG_INFO("Initialization complete, entering main loop..."); + return app.run(); + } + catch (const std::exception& e) + { + LOG_ERROR("Fatal error: %s", e.what()); + return EXIT_FAILURE; + } +} + diff --git a/sonic-dbus-bridge/src/object_mapper.cpp b/sonic-dbus-bridge/src/object_mapper.cpp new file mode 100644 index 0000000..31420f6 --- /dev/null +++ b/sonic-dbus-bridge/src/object_mapper.cpp @@ -0,0 +1,249 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "object_mapper.hpp" +#include "config.h" +#include "logger.hpp" + +#include + +namespace sonic::dbus_bridge +{ + +namespace +{ + +constexpr const char* OBJMAPPER_PATH = "/xyz/openbmc_project/object_mapper"; +constexpr const char* OBJMAPPER_IFACE = "xyz.openbmc_project.ObjectMapper"; + +} // namespace + +ObjectMapperService::ObjectMapperService(sdbusplus::asio::object_server& server) + : server_(server) +{ +} + +bool ObjectMapperService::initialize() +{ + mapperIface_ = server_.add_interface(OBJMAPPER_PATH, OBJMAPPER_IFACE); + + mapperIface_->register_method( + "GetObject", + [this](const std::string& path, + const std::vector& interfaces) { + return getObject(path, interfaces); + }); + + mapperIface_->register_method( + "GetSubTree", + [this](const std::string& subtree, int32_t depth, + const std::vector& interfaces) { + return getSubTree(subtree, depth, interfaces); + }); + + mapperIface_->register_method( + "GetSubTreePaths", + [this](const std::string& subtree, int32_t depth, + const std::vector& interfaces) { + return getSubTreePaths(subtree, depth, interfaces); + }); + + mapperIface_->register_method( + "GetAssociatedSubTreePaths", + [this](const std::string& associatedPath, const std::string& subtree, + int32_t depth, const std::vector& interfaces) { + return getAssociatedSubTreePaths(associatedPath, subtree, depth, + interfaces); + }); + + mapperIface_->initialize(); + + LOG_INFO("Registered minimal ObjectMapper at %s", OBJMAPPER_PATH); + return true; +} + +void ObjectMapperService::registerObject( + const std::string& path, const std::vector& interfaces, + const std::string& serviceName) +{ + objects_[path] = {interfaces, + serviceName.empty() ? INVENTORY_MANAGER_BUSNAME + : serviceName}; +} + +void ObjectMapperService::unregisterObject(const std::string& path) +{ + objects_.erase(path); +} + +bool ObjectMapperService::pathIsUnder(const std::string& root, + const std::string& path) +{ + if (root.empty() || root == "/") + { + return true; + } + + // Normalize root by removing trailing slash + std::string normalizedRoot = root; + while (!normalizedRoot.empty() && normalizedRoot.back() == '/') + { + normalizedRoot.pop_back(); + } + + if (normalizedRoot.empty()) + { + return true; + } + + if (path.size() < normalizedRoot.size()) + { + return false; + } + if (path.compare(0, normalizedRoot.size(), normalizedRoot) != 0) + { + return false; + } + if (path.size() == normalizedRoot.size()) + { + return true; + } + return path[normalizedRoot.size()] == '/'; +} + +ObjectMapperService::GetObjectResult ObjectMapperService::getObject( + const std::string& path, const std::vector& interfaces) +{ + GetObjectResult result; + + auto it = objects_.find(path); + if (it == objects_.end()) + { + return result; + } + + const auto& objInfo = it->second; + + // Filter interfaces if filter list is provided + std::vector matchedIfaces; + if (interfaces.empty()) + { + matchedIfaces = objInfo.interfaces; + } + else + { + for (const auto& iface : objInfo.interfaces) + { + if (std::find(interfaces.begin(), interfaces.end(), iface) != + interfaces.end()) + { + matchedIfaces.push_back(iface); + } + } + } + + if (!matchedIfaces.empty()) + { + result[objInfo.serviceName] = matchedIfaces; + } + + return result; +} + +ObjectMapperService::GetSubTreeResult ObjectMapperService::getSubTree( + const std::string& subtree, int32_t /*depth*/, + const std::vector& interfaces) +{ + GetSubTreeResult result; + + for (const auto& [path, objInfo] : objects_) + { + if (!pathIsUnder(subtree, path)) + { + continue; + } + + // Filter interfaces if filter list is provided + std::vector matchedIfaces; + if (interfaces.empty()) + { + matchedIfaces = objInfo.interfaces; + } + else + { + for (const auto& iface : objInfo.interfaces) + { + if (std::find(interfaces.begin(), interfaces.end(), iface) != + interfaces.end()) + { + matchedIfaces.push_back(iface); + } + } + } + + if (!matchedIfaces.empty()) + { + result[path][objInfo.serviceName] = matchedIfaces; + } + } + + return result; +} + +ObjectMapperService::GetSubTreePathsResult ObjectMapperService::getSubTreePaths( + const std::string& subtree, int32_t /*depth*/, + const std::vector& interfaces) +{ + GetSubTreePathsResult result; + + for (const auto& [path, objInfo] : objects_) + { + if (!pathIsUnder(subtree, path)) + { + continue; + } + + // Check if interfaces match (if filter provided) + bool matches = interfaces.empty(); + if (!matches) + { + for (const auto& iface : objInfo.interfaces) + { + if (std::find(interfaces.begin(), interfaces.end(), iface) != + interfaces.end()) + { + matches = true; + break; + } + } + } + + if (matches) + { + result.push_back(path); + } + } + + return result; +} + +ObjectMapperService::GetSubTreePathsResult + ObjectMapperService::getAssociatedSubTreePaths( + const std::string& /*associatedPath*/, const std::string& /*subtree*/, + int32_t /*depth*/, const std::vector& /*interfaces*/) +{ + // We don't currently create any association objects, so simply + // return an empty array of paths. This is sufficient for bmcweb's + // chassis connectivity helpers, which treat empty results as + // "no associations" without raising errors. + return {}; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/platform_json_adapter.cpp b/sonic-dbus-bridge/src/platform_json_adapter.cpp new file mode 100644 index 0000000..b32afcb --- /dev/null +++ b/sonic-dbus-bridge/src/platform_json_adapter.cpp @@ -0,0 +1,174 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "platform_json_adapter.hpp" +#include "logger.hpp" +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +PlatformJsonAdapter::PlatformJsonAdapter(const std::string& platformJsonPath) + : platformJsonPath_(platformJsonPath) +{ +} + +bool PlatformJsonAdapter::load() +{ + std::string expandedPath = expandPath(platformJsonPath_); + + LOG_INFO("Loading platform.json from: %s", expandedPath.c_str()); + + if (!parseJson(expandedPath)) + { + LOG_WARNING("Failed to load platform.json, using defaults"); + return false; + } + + loaded_ = true; + return true; +} + +std::string PlatformJsonAdapter::expandPath(const std::string& path) const +{ + std::string result = path; + + // Replace ${PLATFORM} with environment variable + size_t pos = result.find("${PLATFORM}"); + if (pos != std::string::npos) + { + const char* platform = std::getenv("PLATFORM"); + if (platform) + { + result.replace(pos, 11, platform); + } + else + { + // Default platform for ASPEED + result.replace(pos, 11, "arm64-aspeed_ast2700-r0"); + } + } + + return result; +} + +bool PlatformJsonAdapter::parseJson(const std::string& path) +{ + std::ifstream file(path); + if (!file.is_open()) + { + return false; + } + + Json::Value root; + Json::CharReaderBuilder builder; + std::string errs; + + if (!Json::parseFromStream(builder, file, &root, &errs)) + { + LOG_ERROR("JSON parse error: %s", errs.c_str()); + return false; + } + + // Extract chassis name + if (root.isMember("chassis") && root["chassis"].isMember("name")) + { + description_.chassisName = root["chassis"]["name"].asString(); + } + + // Extract chassis part number + if (root.isMember("chassis") && root["chassis"].isMember("part_number")) + { + description_.chassisPartNumber = root["chassis"]["part_number"].asString(); + } + + // Extract chassis hardware version + if (root.isMember("chassis") && root["chassis"].isMember("hardware_version")) + { + description_.chassisHardwareVersion = root["chassis"]["hardware_version"].asString(); + } + + // Extract PSU names + if (root.isMember("chassis") && root["chassis"].isMember("psus")) + { + const Json::Value& psus = root["chassis"]["psus"]; + for (const auto& psu : psus) + { + if (psu.isMember("name")) + { + description_.psuNames.push_back(psu["name"].asString()); + } + } + } + + // Extract fan names + if (root.isMember("chassis") && root["chassis"].isMember("fans")) + { + const Json::Value& fans = root["chassis"]["fans"]; + for (const auto& fan : fans) + { + if (fan.isMember("name")) + { + description_.fanNames.push_back(fan["name"].asString()); + } + } + } + + // Extract thermal names + if (root.isMember("chassis") && root["chassis"].isMember("thermals")) + { + const Json::Value& thermals = root["chassis"]["thermals"]; + for (const auto& thermal : thermals) + { + if (thermal.isMember("name")) + { + description_.thermalNames.push_back(thermal["name"].asString()); + } + } + } + + return true; +} + +PlatformDescription PlatformJsonAdapter::getPlatformDescription() const +{ + return description_; +} + +std::optional PlatformJsonAdapter::getChassisName() const +{ + if (!loaded_ || description_.chassisName.empty()) + { + return std::nullopt; + } + return description_.chassisName; +} + +std::optional PlatformJsonAdapter::getChassisPartNumber() const +{ + if (!loaded_) + { + return std::nullopt; + } + return description_.chassisPartNumber; +} + +std::optional PlatformJsonAdapter::getChassisHardwareVersion() const +{ + if (!loaded_) + { + return std::nullopt; + } + return description_.chassisHardwareVersion; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/redis_adapter.cpp b/sonic-dbus-bridge/src/redis_adapter.cpp new file mode 100644 index 0000000..43c73ad --- /dev/null +++ b/sonic-dbus-bridge/src/redis_adapter.cpp @@ -0,0 +1,373 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "redis_adapter.hpp" +#include "logger.hpp" +#include +#include + +namespace sonic::dbus_bridge +{ + +RedisAdapter::RedisAdapter(const std::string& configDbHost, int configDbPort, + const std::string& stateDbHost, int stateDbPort) + : configDbHost_(configDbHost), configDbPort_(configDbPort), + stateDbHost_(stateDbHost), stateDbPort_(stateDbPort) +{ +} + +RedisAdapter::~RedisAdapter() +{ + if (configDbContext_) + { + redisFree(configDbContext_); + } + if (stateDbContext_) + { + redisFree(stateDbContext_); + } +} + +bool RedisAdapter::connect() +{ + LOG_INFO("Connecting to Redis databases..."); + + // Connect to CONFIG_DB (DB 4) + configDbContext_ = connectToDb(configDbHost_, configDbPort_, 4); + if (configDbContext_) + { + LOG_INFO("Connected to CONFIG_DB"); + } + else + { + LOG_WARNING("Failed to connect to CONFIG_DB"); + } + + // Connect to STATE_DB (DB 6) + stateDbContext_ = connectToDb(stateDbHost_, stateDbPort_, 6); + if (stateDbContext_) + { + LOG_INFO("Connected to STATE_DB"); + } + else + { + LOG_WARNING("Failed to connect to STATE_DB"); + } + + // Return true if at least one connection succeeded + return (configDbContext_ != nullptr) || (stateDbContext_ != nullptr); +} + +redisContext* RedisAdapter::connectToDb(const std::string& host, int port, int dbIndex) +{ + struct timeval timeout = {2, 0}; // 2 seconds + redisContext* ctx = nullptr; + bool connected = false; + + // Try TCP connection first (most reliable for SONiC) + LOG_DEBUG("Attempting TCP connection to %s:%d...", host.c_str(), port); + ctx = redisConnectWithTimeout(host.c_str(), port, timeout); + + if (!ctx) + { + LOG_ERROR("TCP: Failed to allocate Redis context (out of memory?)"); + } + else if (ctx->err) + { + LOG_DEBUG("TCP: Connection failed: %s (errno: %d)", ctx->errstr, ctx->err); + redisFree(ctx); + ctx = nullptr; + } + else + { + LOG_INFO("Connected to Redis via TCP: %s:%d", host.c_str(), port); + connected = true; + } + + // If TCP failed, try Unix socket as fallback + if (!connected) + { + const char* unixSockets[] = { + "/var/run/redis/redis.sock", + "/run/redis/redis.sock", + "/var/run/redis.sock", + nullptr + }; + + for (int i = 0; unixSockets[i] != nullptr && !connected; i++) + { + LOG_DEBUG("Attempting Unix socket connection to %s...", unixSockets[i]); + ctx = redisConnectUnixWithTimeout(unixSockets[i], timeout); + + if (!ctx) + { + LOG_ERROR("Unix socket: Failed to allocate Redis context"); + } + else if (ctx->err) + { + LOG_DEBUG("Unix socket: Connection failed: %s (errno: %d)", ctx->errstr, ctx->err); + redisFree(ctx); + ctx = nullptr; + } + else + { + LOG_INFO("Connected to Redis via Unix socket: %s", unixSockets[i]); + connected = true; + } + } + } + + if (!connected || !ctx) + { + LOG_ERROR("All Redis connection attempts failed"); + return nullptr; + } + + // Select database + LOG_DEBUG("Selecting Redis database %d...", dbIndex); + redisReply* reply = static_cast( + redisCommand(ctx, "SELECT %d", dbIndex)); + + if (!reply) + { + LOG_ERROR("Failed to send SELECT command (connection lost?)"); + redisFree(ctx); + return nullptr; + } + + if (reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR("Failed to select DB %d: %s", dbIndex, reply->str); + freeReplyObject(reply); + redisFree(ctx); + return nullptr; + } + + freeReplyObject(reply); + LOG_DEBUG("Selected database %d", dbIndex); + return ctx; +} + +DeviceMetadata RedisAdapter::getDeviceMetadata() +{ + DeviceMetadata metadata; + + if (!configDbContext_) + { + return metadata; // Return empty metadata + } + + // Read DEVICE_METADATA|localhost hash + auto fields = hgetall(configDbContext_, "DEVICE_METADATA|localhost"); + + if (!fields.empty()) + { + if (fields.count("platform")) metadata.platform = fields["platform"]; + if (fields.count("hwsku")) metadata.hwsku = fields["hwsku"]; + if (fields.count("hostname")) metadata.hostname = fields["hostname"]; + if (fields.count("mac")) metadata.mac = fields["mac"]; + if (fields.count("type")) metadata.type = fields["type"]; + if (fields.count("manufacturer")) metadata.manufacturer = fields["manufacturer"]; + if (fields.count("serial_number")) metadata.serialNumber = fields["serial_number"]; + if (fields.count("part_number")) metadata.partNumber = fields["part_number"]; + if (fields.count("model")) metadata.model = fields["model"]; + } + + return metadata; +} + +ChassisState RedisAdapter::getChassisState() +{ + ChassisState state; + + if (!stateDbContext_) + { + return state; // Return default state (on) + } + + // Try to read chassis state from STATE_DB + auto powerState = hget(stateDbContext_, "CHASSIS_STATE|chassis0", "power_state"); + if (powerState) + { + state.powerState = *powerState; + } + + return state; +} + +std::map RedisAdapter::hgetall(redisContext* ctx, + const std::string& key) +{ + std::map result; + + redisReply* reply = static_cast( + redisCommand(ctx, "HGETALL %s", key.c_str())); + + if (!reply) + { + return result; + } + + if (reply->type == REDIS_REPLY_ARRAY && reply->elements > 0) + { + for (size_t i = 0; i < reply->elements; i += 2) + { + if (i + 1 < reply->elements) + { + std::string field(reply->element[i]->str, reply->element[i]->len); + std::string value(reply->element[i+1]->str, reply->element[i+1]->len); + result[field] = value; + } + } + } + + freeReplyObject(reply); + return result; +} + +std::optional RedisAdapter::hget(redisContext* ctx, + const std::string& key, + const std::string& field) +{ + redisReply* reply = static_cast( + redisCommand(ctx, "HGET %s %s", key.c_str(), field.c_str())); + + if (!reply) + { + return std::nullopt; + } + + std::optional result; + if (reply->type == REDIS_REPLY_STRING) + { + result = std::string(reply->str, reply->len); + } + + freeReplyObject(reply); + return result; +} + +static std::string readSonicVersionField(const std::string& field) +{ + std::ifstream f("/etc/sonic/sonic_version.yml"); + if (!f.is_open()) + { + return ""; + } + std::string line; + while (std::getline(f, line)) + { + auto pos = line.find(':'); + if (pos == std::string::npos) + { + continue; + } + std::string key = line.substr(0, pos); + // Trim whitespace from key + while (!key.empty() && (key.front() == ' ' || key.front() == '\t')) + key.erase(key.begin()); + while (!key.empty() && (key.back() == ' ' || key.back() == '\t')) + key.pop_back(); + + if (key != field) + { + continue; + } + + std::string val = line.substr(pos + 1); + // Trim whitespace and quotes + while (!val.empty() && (val.front() == ' ' || val.front() == '\t' || val.front() == '\'')) + val.erase(val.begin()); + while (!val.empty() && (val.back() == ' ' || val.back() == '\t' || val.back() == '\'' || val.back() == '\r')) + val.pop_back(); + return val; + } + return ""; +} + +std::vector RedisAdapter::getFirmwareVersions() +{ + std::vector versions; + + // 1. SONiC OS version — from switch's Redis STATE_DB + { + std::string sonicVersion = "N/A"; + if (stateDbContext_) + { + auto ver = hget(stateDbContext_, "BMC_FW_INVENTORY|SONIC_OS", "version"); + if (ver && !ver->empty()) + { + sonicVersion = *ver; + } + else + { + LOG_WARNING("FirmwareInventory: switch not found in STATE_DB"); + } + } + FirmwareVersionInfo fw; + fw.id = "switch"; + fw.version = sonicVersion; + fw.purpose = FirmwarePurpose::Host; + versions.push_back(fw); + LOG_INFO("FirmwareInventory: switch = %s", sonicVersion.c_str()); + } + + // 2. BMC firmware version — local to BMC, read from /etc/sonic/sonic_version.yml + { + std::string bmcVer = readSonicVersionField("build_version"); + if (bmcVer.empty()) + { + bmcVer = "N/A"; + LOG_WARNING("FirmwareInventory: BMC version not found in /etc/sonic/sonic_version.yml"); + } + FirmwareVersionInfo fw; + fw.id = "bmc"; + fw.version = bmcVer; + fw.purpose = FirmwarePurpose::BMC; + versions.push_back(fw); + LOG_INFO("FirmwareInventory: bmc = %s", bmcVer.c_str()); + } + + // 3. BIOS version — from switch's Redis STATE_DB + { + std::string biosVer = "N/A"; + if (stateDbContext_) + { + auto ver = hget(stateDbContext_, "BMC_FW_INVENTORY|BIOS", "version"); + if (ver && !ver->empty()) + { + biosVer = *ver; + } + else + { + LOG_WARNING("FirmwareInventory: bios not found in STATE_DB"); + } + } + FirmwareVersionInfo fw; + fw.id = "bios"; + fw.version = biosVer; + fw.purpose = FirmwarePurpose::Other; + versions.push_back(fw); + LOG_INFO("FirmwareInventory: bios = %s", biosVer.c_str()); + } + + LOG_INFO("FirmwareInventory: Total %zu firmware entries", versions.size()); + return versions; +} + +void RedisAdapter::freeReply(void* reply) +{ + if (reply) + { + freeReplyObject(reply); + } +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/redis_state_publisher.cpp b/sonic-dbus-bridge/src/redis_state_publisher.cpp new file mode 100644 index 0000000..424c5ec --- /dev/null +++ b/sonic-dbus-bridge/src/redis_state_publisher.cpp @@ -0,0 +1,325 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "redis_state_publisher.hpp" +#include "logger.hpp" +#include +#include +#include +#include + +namespace sonic::dbus_bridge +{ + +RedisStatePublisher::RedisStatePublisher() + : stateDbContext_(nullptr), requestCounter_(0) +{ + LOG_INFO( "[RedisStatePublisher] Constructor called"); +} + +RedisStatePublisher::~RedisStatePublisher() +{ + LOG_INFO( "[RedisStatePublisher] Destructor called"); + if (stateDbContext_) + { + LOG_INFO( "[RedisStatePublisher] Closing Redis connection"); + redisFree(stateDbContext_); + stateDbContext_ = nullptr; + } +} + +bool RedisStatePublisher::connect(const std::string& host, int port) +{ + LOG_INFO( "[RedisStatePublisher] Connecting to Redis at %s:%d", host.c_str(), port); + + struct timeval timeout = {2, 0}; // 2 seconds timeout + bool connected = false; + + // Try TCP first (same pattern as RedisAdapter) + stateDbContext_ = redisConnectWithTimeout(host.c_str(), port, timeout); + if (!stateDbContext_) + { + LOG_ERROR( "[RedisStatePublisher] TCP: Redis connection failed: allocation error"); + } + else if (stateDbContext_->err) + { + LOG_DEBUG( "[RedisStatePublisher] TCP: connection failed: %s (errno: %d)", + stateDbContext_->errstr, stateDbContext_->err); + redisFree(stateDbContext_); + stateDbContext_ = nullptr; + } + else + { + LOG_INFO( "[RedisStatePublisher] Connected to Redis via TCP: %s:%d", + host.c_str(), port); + connected = true; + } + + // If TCP failed, fall back to Unix domain sockets under /var/run/redis + if (!connected) + { + const char* unixSockets[] = { + "/var/run/redis/redis.sock", + "/run/redis/redis.sock", + "/var/run/redis.sock", + nullptr + }; + + for (int i = 0; unixSockets[i] != nullptr && !connected; ++i) + { + LOG_DEBUG( "[RedisStatePublisher] Unix socket: attempting %s", unixSockets[i]); + stateDbContext_ = redisConnectUnixWithTimeout(unixSockets[i], timeout); + + if (!stateDbContext_) + { + LOG_ERROR( "[RedisStatePublisher] Unix socket: failed to allocate Redis context"); + } + else if (stateDbContext_->err) + { + LOG_DEBUG( "[RedisStatePublisher] Unix socket: connection failed: %s (errno: %d)", + stateDbContext_->errstr, stateDbContext_->err); + redisFree(stateDbContext_); + stateDbContext_ = nullptr; + } + else + { + LOG_INFO( "[RedisStatePublisher] Connected to Redis via Unix socket: %s", + unixSockets[i]); + connected = true; + } + } + } + + if (!connected || !stateDbContext_) + { + LOG_ERROR( "[RedisStatePublisher] All Redis connection attempts failed"); + return false; + } + + // Select STATE_DB (DB 6) + LOG_INFO( "[RedisStatePublisher] Selecting STATE_DB (DB 6)"); + redisReply* reply = (redisReply*)redisCommand(stateDbContext_, "SELECT 6"); + + if (!reply) + { + LOG_ERROR( "[RedisStatePublisher] SELECT command failed: connection lost"); + redisFree(stateDbContext_); + stateDbContext_ = nullptr; + return false; + } + + if (reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStatePublisher] SELECT command failed: %s", reply->str); + freeReplyObject(reply); + redisFree(stateDbContext_); + stateDbContext_ = nullptr; + return false; + } + + freeReplyObject(reply); + LOG_INFO( "[RedisStatePublisher] STATE_DB (DB 6) selected successfully"); + + return true; +} + +std::string RedisStatePublisher::generateRequestId() +{ + auto now = std::chrono::system_clock::now(); + auto timestamp = std::chrono::duration_cast( + now.time_since_epoch()).count(); + + std::lock_guard lock(redisMutex_); + requestCounter_++; + + std::ostringstream oss; + oss << "req_" << timestamp << "_" << std::setfill('0') << std::setw(6) << requestCounter_; + + std::string requestId = oss.str(); + LOG_DEBUG( "[RedisStatePublisher] Generated request ID: %s", requestId.c_str()); + + return requestId; +} + +std::string RedisStatePublisher::publishHostRequest(const std::string& transition) +{ + LOG_INFO( "[RedisStatePublisher] ========================================"); + LOG_INFO( "[RedisStatePublisher] Publishing host transition request"); + LOG_INFO( "[RedisStatePublisher] Transition: %s", transition.c_str()); + + std::string requestId = generateRequestId(); + auto timestamp = std::chrono::system_clock::now().time_since_epoch().count(); + + std::map fields = { + {"requested_transition", transition}, + {"request_id", requestId}, + {"timestamp", std::to_string(timestamp)}, + {"status", "pending"} + }; + + LOG_INFO( "[RedisStatePublisher] Request details:"); + LOG_INFO( "[RedisStatePublisher] - request_id: %s", requestId.c_str()); + LOG_INFO( "[RedisStatePublisher] - requested_transition: %s", transition.c_str()); + LOG_INFO( "[RedisStatePublisher] - timestamp: %ld", timestamp); + LOG_INFO( "[RedisStatePublisher] - status: pending"); + + if (!hmset("BMC_HOST_REQUEST", fields)) + { + LOG_ERROR( "[RedisStatePublisher] Failed to publish host request to Redis"); + LOG_ERROR( "[RedisStatePublisher] ========================================"); + return ""; + } + + LOG_INFO( "[RedisStatePublisher] Host request published successfully to BMC_HOST_REQUEST"); + LOG_INFO( "[RedisStatePublisher] ========================================"); + + return requestId; +} + +bool RedisStatePublisher::updateSwitchHostState(const std::string& deviceState, + const std::string& deviceStatus) +{ + LOG_INFO( "[RedisStatePublisher] ========================================"); + LOG_INFO( "[RedisStatePublisher] Updating SWITCH_HOST_STATE"); + LOG_INFO( "[RedisStatePublisher] - device_state: %s", deviceState.c_str()); + LOG_INFO( "[RedisStatePublisher] - device_status: %s", deviceStatus.c_str()); + + std::map fields = { + {"device_state", deviceState}, + {"device_status", deviceStatus} + }; + + bool result = hmset("SWITCH_HOST_STATE", fields); + + if (result) + { + LOG_INFO( "[RedisStatePublisher] SWITCH_HOST_STATE updated successfully"); + } + else + { + LOG_ERROR( "[RedisStatePublisher] Failed to update SWITCH_HOST_STATE"); + } + + LOG_INFO( "[RedisStatePublisher] ========================================"); + return result; +} + +bool RedisStatePublisher::updateRequestStatus(const std::string& requestId, + const std::string& status) +{ + LOG_INFO( "[RedisStatePublisher] Updating request status"); + LOG_INFO( "[RedisStatePublisher] - request_id: %s", requestId.c_str()); + LOG_INFO( "[RedisStatePublisher] - status: %s", status.c_str()); + + bool result = hset("BMC_HOST_REQUEST", "status", status); + + if (result) + { + LOG_INFO( "[RedisStatePublisher] Request status updated successfully"); + } + else + { + LOG_ERROR( "[RedisStatePublisher] Failed to update request status"); + } + + return result; +} + +bool RedisStatePublisher::hset(const std::string& key, + const std::string& field, + const std::string& value) +{ + LOG_DEBUG( "[RedisStatePublisher] HSET %s %s %s", key.c_str(), field.c_str(), value.c_str()); + + std::lock_guard lock(redisMutex_); + + if (!stateDbContext_) + { + LOG_ERROR( "[RedisStatePublisher] HSET failed: not connected to Redis"); + return false; + } + + redisReply* reply = (redisReply*)redisCommand(stateDbContext_, + "HSET %s %s %s", key.c_str(), field.c_str(), value.c_str()); + + if (!reply) + { + LOG_ERROR( "[RedisStatePublisher] HSET failed: connection lost (key=%s, field=%s)", + key.c_str(), field.c_str()); + return false; + } + + if (reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStatePublisher] HSET failed: %s (key=%s, field=%s)", + reply->str, key.c_str(), field.c_str()); + freeReplyObject(reply); + return false; + } + + LOG_DEBUG( "[RedisStatePublisher] HSET successful (key=%s, field=%s)", key.c_str(), field.c_str()); + freeReplyObject(reply); + return true; +} + +bool RedisStatePublisher::hmset(const std::string& key, + const std::map& fields) +{ + LOG_DEBUG( "[RedisStatePublisher] HMSET %s with %zu fields", key.c_str(), fields.size()); + + std::lock_guard lock(redisMutex_); + + if (!stateDbContext_) + { + LOG_ERROR( "[RedisStatePublisher] HMSET failed: not connected to Redis"); + return false; + } + + // Build HMSET command arguments + std::vector argv; + std::vector argvlen; + + argv.push_back("HMSET"); + argvlen.push_back(5); + + argv.push_back(key.c_str()); + argvlen.push_back(key.length()); + + for (const auto& [field, value] : fields) + { + argv.push_back(field.c_str()); + argvlen.push_back(field.length()); + argv.push_back(value.c_str()); + argvlen.push_back(value.length()); + + LOG_DEBUG( "[RedisStatePublisher] %s = %s", field.c_str(), value.c_str()); + } + + redisReply* reply = (redisReply*)redisCommandArgv(stateDbContext_, + argv.size(), argv.data(), argvlen.data()); + + if (!reply) + { + LOG_ERROR( "[RedisStatePublisher] HMSET failed: connection lost (key=%s)", key.c_str()); + return false; + } + + if (reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStatePublisher] HMSET failed: %s (key=%s)", reply->str, key.c_str()); + freeReplyObject(reply); + return false; + } + + LOG_DEBUG( "[RedisStatePublisher] HMSET successful (key=%s, %zu fields)", key.c_str(), fields.size()); + freeReplyObject(reply); + return true; +} + +} // namespace sonic::dbus_bridge diff --git a/sonic-dbus-bridge/src/redis_state_subscriber.cpp b/sonic-dbus-bridge/src/redis_state_subscriber.cpp new file mode 100644 index 0000000..13277c3 --- /dev/null +++ b/sonic-dbus-bridge/src/redis_state_subscriber.cpp @@ -0,0 +1,473 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "redis_state_subscriber.hpp" +#include "logger.hpp" +#include + +namespace +{ + +// Helper to connect to Redis using TCP first, then fall back to common Unix socket paths. +// This mirrors the resilient strategy used by RedisAdapter so that the bridge can work +// in containers which only have the Redis Unix socket mounted (e.g., docker-sonic-redfish +// with bridge networking). +redisContext* connectRedisWithFallback(const std::string& host, + int port, + const char* contextName) +{ + struct timeval timeout = {2, 0}; // 2 seconds + redisContext* ctx = nullptr; + bool connected = false; + + // Try TCP first + LOG_DEBUG("[RedisStateSubscriber] Attempting TCP connection (%s) to %s:%d...", + contextName, host.c_str(), port); + ctx = redisConnectWithTimeout(host.c_str(), port, timeout); + + if (!ctx) + { + LOG_ERROR("[RedisStateSubscriber] TCP (%s): Failed to allocate Redis context", + contextName); + } + else if (ctx->err) + { + LOG_DEBUG("[RedisStateSubscriber] TCP (%s): Connection failed: %s (errno: %d)", + contextName, ctx->errstr, ctx->err); + redisFree(ctx); + ctx = nullptr; + } + else + { + LOG_INFO("[RedisStateSubscriber] Connected to Redis via TCP (%s): %s:%d", + contextName, host.c_str(), port); + connected = true; + } + + // If TCP failed, try common Unix socket locations + if (!connected) + { + const char* unixSockets[] = { + "/var/run/redis/redis.sock", + "/run/redis/redis.sock", + "/var/run/redis.sock", + nullptr + }; + + for (int i = 0; unixSockets[i] != nullptr && !connected; ++i) + { + LOG_DEBUG("[RedisStateSubscriber] Attempting Unix socket (%s) connection to %s...", + contextName, unixSockets[i]); + + ctx = redisConnectUnixWithTimeout(unixSockets[i], timeout); + + if (!ctx) + { + LOG_ERROR("[RedisStateSubscriber] Unix socket (%s): Failed to allocate Redis context", + contextName); + } + else if (ctx->err) + { + LOG_DEBUG("[RedisStateSubscriber] Unix socket (%s): Connection failed: %s (errno: %d)", + contextName, ctx->errstr, ctx->err); + redisFree(ctx); + ctx = nullptr; + } + else + { + LOG_INFO("[RedisStateSubscriber] Connected to Redis via Unix socket (%s): %s", + contextName, unixSockets[i]); + connected = true; + } + } + } + + if (!connected || !ctx) + { + LOG_ERROR("[RedisStateSubscriber] All Redis connection attempts (%s) failed", + contextName); + return nullptr; + } + + return ctx; +} + +} // anonymous namespace + +namespace sonic::dbus_bridge +{ + +RedisStateSubscriber::RedisStateSubscriber() + : subContext_(nullptr), getContext_(nullptr), running_(false) +{ + LOG_INFO( "[RedisStateSubscriber] Constructor called"); +} + +RedisStateSubscriber::~RedisStateSubscriber() +{ + LOG_INFO( "[RedisStateSubscriber] Destructor called"); + stop(); +} + +bool RedisStateSubscriber::start(const std::string& host, int port, + KeyspaceCallback callback) +{ + LOG_INFO( "[RedisStateSubscriber] ========================================"); + LOG_INFO( "[RedisStateSubscriber] Starting subscriber"); + LOG_INFO( "[RedisStateSubscriber] Redis: %s:%d", host.c_str(), port); + + if (running_) + { + LOG_WARNING( "[RedisStateSubscriber] Subscriber already running"); + return false; + } + + callback_ = callback; + + // Create subscription context (TCP + Unix socket fallback) + subContext_ = connectRedisWithFallback(host, port, "subscribe"); + if (!subContext_) + { + LOG_ERROR( "[RedisStateSubscriber] Subscription connection failed"); + return false; + } + + LOG_INFO( "[RedisStateSubscriber] Subscription connection established"); + + // Create GET context (for HGETALL) with the same fallback logic + getContext_ = connectRedisWithFallback(host, port, "get"); + if (!getContext_) + { + LOG_ERROR( "[RedisStateSubscriber] GET connection failed"); + redisFree(subContext_); + subContext_ = nullptr; + return false; + } + + LOG_INFO( "[RedisStateSubscriber] GET connection established"); + + // Select STATE_DB (DB 6) for both contexts + redisReply* reply = (redisReply*)redisCommand(subContext_, "SELECT 6"); + if (!reply || reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to select STATE_DB on subscription context"); + if (reply) freeReplyObject(reply); + redisFree(subContext_); + redisFree(getContext_); + subContext_ = nullptr; + getContext_ = nullptr; + return false; + } + freeReplyObject(reply); + + reply = (redisReply*)redisCommand(getContext_, "SELECT 6"); + if (!reply || reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to select STATE_DB on GET context"); + if (reply) freeReplyObject(reply); + redisFree(subContext_); + redisFree(getContext_); + subContext_ = nullptr; + getContext_ = nullptr; + return false; + } + freeReplyObject(reply); + + LOG_INFO( "[RedisStateSubscriber] STATE_DB (DB 6) selected on both contexts"); + + // Subscribe to keyspace notifications for SWITCH_HOST_STATE + LOG_INFO( "[RedisStateSubscriber] Subscribing to __keyspace@6__:SWITCH_HOST_STATE"); + reply = (redisReply*)redisCommand(subContext_, + "SUBSCRIBE __keyspace@6__:SWITCH_HOST_STATE"); + + if (!reply || reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to subscribe to keyspace notifications"); + if (reply) freeReplyObject(reply); + redisFree(subContext_); + redisFree(getContext_); + subContext_ = nullptr; + getContext_ = nullptr; + return false; + } + freeReplyObject(reply); + + LOG_INFO( "[RedisStateSubscriber] Subscribed successfully"); + + // Start subscriber thread + running_ = true; + subscriberThread_ = std::thread(&RedisStateSubscriber::subscriberLoop, this); + + LOG_INFO( "[RedisStateSubscriber] Subscriber thread started"); + LOG_INFO( "[RedisStateSubscriber] ========================================"); + + return true; +} + +bool RedisStateSubscriber::startMultiKey(const std::string& host, int port, + const std::vector& keys, + KeyspaceCallback callback) +{ + LOG_INFO( "[RedisStateSubscriber] ========================================"); + LOG_INFO( "[RedisStateSubscriber] Starting multi-key subscriber"); + LOG_INFO( "[RedisStateSubscriber] Host: %s, Port: %d", host.c_str(), port); + LOG_INFO( "[RedisStateSubscriber] Subscribing to %zu keys", keys.size()); + + if (running_) + { + LOG_WARNING( "[RedisStateSubscriber] Already running"); + return false; + } + + if (keys.empty()) + { + LOG_ERROR( "[RedisStateSubscriber] No keys provided"); + return false; + } + + callback_ = callback; + + // Create two Redis contexts: one for subscribing, one for getting data. + // Use TCP + Unix socket fallback so we can connect in bridge-networked containers + // that only expose Redis via Unix sockets. + subContext_ = connectRedisWithFallback(host, port, "subscribe"); + if (!subContext_) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to connect to Redis (subscribe)"); + return false; + } + + getContext_ = connectRedisWithFallback(host, port, "get"); + if (!getContext_) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to connect to Redis (get)"); + redisFree(subContext_); + subContext_ = nullptr; + return false; + } + + LOG_INFO( "[RedisStateSubscriber] Connected to Redis"); + + // Select STATE_DB (DB 6) on both contexts + redisReply* reply = (redisReply*)redisCommand(subContext_, "SELECT 6"); + if (!reply || reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to select STATE_DB on subscribe context"); + if (reply) freeReplyObject(reply); + redisFree(subContext_); + redisFree(getContext_); + subContext_ = nullptr; + getContext_ = nullptr; + return false; + } + freeReplyObject(reply); + + reply = (redisReply*)redisCommand(getContext_, "SELECT 6"); + if (!reply || reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to select STATE_DB on get context"); + if (reply) freeReplyObject(reply); + redisFree(subContext_); + redisFree(getContext_); + subContext_ = nullptr; + getContext_ = nullptr; + return false; + } + freeReplyObject(reply); + + LOG_INFO( "[RedisStateSubscriber] STATE_DB (DB 6) selected on both contexts"); + + // Subscribe to keyspace notifications for all keys + for (const auto& key : keys) + { + std::string channel = "__keyspace@6__:" + key; + LOG_INFO( "[RedisStateSubscriber] Subscribing to %s", channel.c_str()); + + reply = (redisReply*)redisCommand(subContext_, "SUBSCRIBE %s", channel.c_str()); + + if (!reply || reply->type == REDIS_REPLY_ERROR) + { + LOG_ERROR( "[RedisStateSubscriber] Failed to subscribe to %s", channel.c_str()); + if (reply) freeReplyObject(reply); + redisFree(subContext_); + redisFree(getContext_); + subContext_ = nullptr; + getContext_ = nullptr; + return false; + } + freeReplyObject(reply); + } + + LOG_INFO( "[RedisStateSubscriber] Subscribed to all %zu keys successfully", keys.size()); + + // Start subscriber thread + running_ = true; + subscriberThread_ = std::thread(&RedisStateSubscriber::subscriberLoop, this); + + LOG_INFO( "[RedisStateSubscriber] Subscriber thread started"); + LOG_INFO( "[RedisStateSubscriber] ========================================"); + + return true; +} + +void RedisStateSubscriber::stop() +{ + if (!running_) + { + return; + } + + LOG_INFO( "[RedisStateSubscriber] Stopping subscriber"); + + running_ = false; + + if (subscriberThread_.joinable()) + { + subscriberThread_.join(); + LOG_INFO( "[RedisStateSubscriber] Subscriber thread joined"); + } + + if (subContext_) + { + redisFree(subContext_); + subContext_ = nullptr; + } + + if (getContext_) + { + redisFree(getContext_); + getContext_ = nullptr; + } + + LOG_INFO( "[RedisStateSubscriber] Subscriber stopped"); +} + +void RedisStateSubscriber::subscriberLoop() +{ + LOG_INFO( "[RedisStateSubscriber] Subscriber loop started"); + + while (running_) + { + redisReply* reply; + if (redisGetReply(subContext_, (void**)&reply) != REDIS_OK) + { + LOG_ERROR( "[RedisStateSubscriber] Redis subscriber error: %s", subContext_->errstr); + break; + } + + if (!reply) + { + LOG_WARNING( "[RedisStateSubscriber] Received null reply"); + continue; + } + + // Expected format: ["message", channel, message] + if (reply->type == REDIS_REPLY_ARRAY && reply->elements == 3) + { + std::string messageType = reply->element[0]->str; + std::string channel = reply->element[1]->str; + std::string message = reply->element[2]->str; + + LOG_DEBUG( "[RedisStateSubscriber] Received: type=%s, channel=%s, message=%s", + messageType.c_str(), channel.c_str(), message.c_str()); + + if (messageType == "message" && message == "hset") + { + LOG_INFO( "[RedisStateSubscriber] HSET detected on %s", channel.c_str()); + handleKeyspaceNotification(channel); + } + } + + freeReplyObject(reply); + } + + LOG_INFO( "[RedisStateSubscriber] Subscriber loop ended"); +} + +void RedisStateSubscriber::handleKeyspaceNotification(const std::string& channel) +{ + LOG_INFO( "[RedisStateSubscriber] ========================================"); + LOG_INFO( "[RedisStateSubscriber] Handling keyspace notification"); + LOG_INFO( "[RedisStateSubscriber] Channel: %s", channel.c_str()); + + // Channel format: __keyspace@6__:SWITCH_HOST_STATE + // Extract key name + size_t pos = channel.find_last_of(':'); + if (pos == std::string::npos) + { + LOG_WARNING( "[RedisStateSubscriber] Invalid channel format: %s", channel.c_str()); + return; + } + + std::string key = channel.substr(pos + 1); + LOG_INFO( "[RedisStateSubscriber] Key: %s", key.c_str()); + + // Get all fields from the hash + std::map fields = hgetall(key); + + if (fields.empty()) + { + LOG_WARNING( "[RedisStateSubscriber] No fields found for key: %s", key.c_str()); + LOG_INFO( "[RedisStateSubscriber] ========================================"); + return; + } + + LOG_INFO( "[RedisStateSubscriber] Retrieved %zu fields from %s", fields.size(), key.c_str()); + + // Invoke callback for each field + for (const auto& [field, value] : fields) + { + LOG_INFO( "[RedisStateSubscriber] %s = %s", field.c_str(), value.c_str()); + + if (callback_) + { + callback_(key, field, value); + } + } + + LOG_INFO( "[RedisStateSubscriber] ========================================"); +} + +std::map RedisStateSubscriber::hgetall(const std::string& key) +{ + std::map result; + + LOG_DEBUG( "[RedisStateSubscriber] HGETALL %s", key.c_str()); + + redisReply* reply = (redisReply*)redisCommand(getContext_, "HGETALL %s", key.c_str()); + + if (!reply) + { + LOG_ERROR( "[RedisStateSubscriber] HGETALL failed: connection lost"); + return result; + } + + if (reply->type != REDIS_REPLY_ARRAY) + { + LOG_ERROR( "[RedisStateSubscriber] HGETALL failed: unexpected reply type %d", reply->type); + freeReplyObject(reply); + return result; + } + + // Parse field-value pairs + for (size_t i = 0; i + 1 < reply->elements; i += 2) + { + std::string field = reply->element[i]->str; + std::string value = reply->element[i + 1]->str; + result[field] = value; + + LOG_DEBUG( "[RedisStateSubscriber] HGETALL result: %s = %s", field.c_str(), value.c_str()); + } + + freeReplyObject(reply); + return result; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/state_manager.cpp b/sonic-dbus-bridge/src/state_manager.cpp new file mode 100644 index 0000000..fccb8c2 --- /dev/null +++ b/sonic-dbus-bridge/src/state_manager.cpp @@ -0,0 +1,298 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "state_manager.hpp" +#include "logger.hpp" +#include "redis_state_publisher.hpp" +#include + +namespace sonic::dbus_bridge +{ + +namespace +{ + +// D-Bus interface names +constexpr const char* IFACE_STATE_HOST = "xyz.openbmc_project.State.Host"; + +// D-Bus object paths +constexpr const char* OBJ_PATH_HOST = "/xyz/openbmc_project/state/host0"; + +// Host transition values +constexpr const char* HOST_TRANS_ON = "xyz.openbmc_project.State.Host.Transition.On"; +constexpr const char* HOST_TRANS_OFF = "xyz.openbmc_project.State.Host.Transition.Off"; +constexpr const char* HOST_TRANS_REBOOT = "xyz.openbmc_project.State.Host.Transition.Reboot"; +constexpr const char* HOST_TRANS_FORCE_WARM_REBOOT = "xyz.openbmc_project.State.Host.Transition.ForceWarmReboot"; +constexpr const char* HOST_TRANS_POWER_CYCLE = "xyz.openbmc_project.State.Host.Transition.PowerCycle"; + +// Host state values +constexpr const char* HOST_STATE_OFF = "xyz.openbmc_project.State.Host.HostState.Off"; +constexpr const char* HOST_STATE_TRANSITIONING = "xyz.openbmc_project.State.Host.HostState.TransitioningToRunning"; +constexpr const char* HOST_STATE_RUNNING = "xyz.openbmc_project.State.Host.HostState.Running"; + +// Async execution delay (milliseconds) +constexpr int EXEC_DELAY_MS = 100; + +} // namespace + +StateManager::StateManager(sdbusplus::asio::object_server& server, + boost::asio::io_context& io) + : server_(server), io_(io), + currentHostState_(HOST_STATE_RUNNING), + redisPublisher_(std::make_unique()), + actionTimer_(std::make_unique(io)) +{ + // Connect to Redis STATE_DB + LOG_INFO("StateManager: Connecting to Redis STATE_DB..."); + if (!redisPublisher_->connect()) + { + LOG_ERROR("StateManager: Failed to connect to Redis STATE_DB"); + } + else + { + LOG_INFO("StateManager: Connected to Redis STATE_DB successfully"); + } +} + +bool StateManager::createStateObjects() +{ + LOG_INFO( "Creating state objects..."); + + try + { + // Create xyz.openbmc_project.State.Host interface + hostStateIface_ = server_.add_interface(OBJ_PATH_HOST, IFACE_STATE_HOST); + + // Register RequestedHostTransition property (read-write) + hostStateIface_->register_property_rw( + "RequestedHostTransition", + sdbusplus::vtable::property_::emits_change, + [this](const std::string& newValue, const auto&) { + // Property setter callback + LOG_INFO( "=== Property Change Detected ==="); + LOG_INFO( "RequestedHostTransition = %s", newValue.c_str()); + + // Validate transition value + if (!isValidTransition(newValue)) + { + LOG_ERROR( "Invalid transition value: %s", newValue.c_str()); + throw std::invalid_argument("Invalid transition value"); + } + + // Check queue overflow + if (actionQueue_.size() >= MAX_QUEUE_SIZE) + { + LOG_ERROR( "Action queue full (size: %zu), rejecting request", + actionQueue_.size()); + throw std::runtime_error("Action queue full"); + } + + // Store last requested transition + lastRequestedTransition_ = newValue; + + // Queue action for async execution + ActionRequest request; + request.transition = newValue; + request.timestamp = std::chrono::steady_clock::now(); + actionQueue_.push(request); + + LOG_INFO( "Action queued (queue size: %zu)", actionQueue_.size()); + + // Trigger async processing + processNextAction(); + + return 1; // Success + }, + [this](const auto&) { + // Property getter callback + return lastRequestedTransition_; + }); + + // Register CurrentHostState property (read-only) + hostStateIface_->register_property_r( + "CurrentHostState", + sdbusplus::vtable::property_::emits_change, + [this](const auto&) { + return currentHostState_; + }); + + // Initialize the interface + hostStateIface_->initialize(); + + LOG_INFO( "Created state object at %s", OBJ_PATH_HOST); + LOG_INFO( "Initial state: %s", currentHostState_.c_str()); + return true; + } + catch (const std::exception& e) + { + LOG_ERROR( "Failed to create state objects: %s", e.what()); + return false; + } +} + +void StateManager::processNextAction() +{ + // Check if action already in progress + if (actionInProgress_) + { + LOG_DEBUG( "Action already in progress, waiting..."); + return; + } + + // Check if queue is empty + if (actionQueue_.empty()) + { + return; + } + + // Mark action as in progress + actionInProgress_ = true; + + // Get next action from queue + ActionRequest action = actionQueue_.front(); + actionQueue_.pop(); + + LOG_INFO( "Processing action: %s (remaining in queue: %zu)", + action.transition.c_str(), actionQueue_.size()); + + // Update state to transitioning + updateHostState(HOST_STATE_TRANSITIONING); + + // Schedule async execution using timer (non-blocking) + actionTimer_->expires_after(std::chrono::milliseconds(EXEC_DELAY_MS)); + actionTimer_->async_wait([this, transition = action.transition]( + const boost::system::error_code& ec) { + if (ec == boost::asio::error::operation_aborted) + { + LOG_WARNING( "Action timer cancelled"); + actionInProgress_ = false; + return; + } + + if (ec) + { + LOG_ERROR( "Action timer error: %s", ec.message().c_str()); + actionInProgress_ = false; + updateHostState(HOST_STATE_RUNNING); + processNextAction(); // Try next action + return; + } + + // Execute the transition + executeHostTransition(transition); + + // Mark action as complete + actionInProgress_ = false; + + // Process next action in queue + processNextAction(); + }); +} + +void StateManager::executeHostTransition(const std::string& transition) +{ + LOG_INFO("=== Executing Host Transition ==="); + LOG_INFO("Transition: %s", transition.c_str()); + + // Check if Redis publisher is connected + if (!redisPublisher_ || !redisPublisher_->isConnected()) + { + LOG_ERROR("Redis publisher not connected, cannot publish transition"); + updateHostState(HOST_STATE_RUNNING); + return; + } + + // Map D-Bus transition to simple transition name + std::string transitionName = transitionToScriptCommand(transition); + if (transitionName.empty()) + { + LOG_ERROR("Failed to map transition to transition name"); + updateHostState(HOST_STATE_RUNNING); + return; + } + + // Publish to Redis STATE_DB + LOG_INFO("Publishing transition '%s' to Redis STATE_DB...", transitionName.c_str()); + std::string requestId = redisPublisher_->publishHostRequest(transitionName); + + if (requestId.empty()) + { + LOG_ERROR("Failed to publish host request to Redis"); + updateHostState(HOST_STATE_RUNNING); + return; + } + + LOG_INFO("Host request published successfully to BMC_HOST_REQUEST"); + LOG_INFO("Request ID: %s", requestId.c_str()); + + // Update state based on transition + if (transition == HOST_TRANS_OFF) + { + updateHostState(HOST_STATE_OFF); + } + else + { + updateHostState(HOST_STATE_RUNNING); + } +} + + +void StateManager::updateHostState(const std::string& newState) +{ + if (currentHostState_ == newState) + { + return; // No change + } + + LOG_INFO( "=== State Change ==="); + LOG_INFO( "Old state: %s", currentHostState_.c_str()); + LOG_INFO( "New state: %s", newState.c_str()); + + currentHostState_ = newState; + + // Emit PropertiesChanged signal + if (hostStateIface_) + { + hostStateIface_->signal_property("CurrentHostState"); + } +} + +std::string StateManager::transitionToScriptCommand(const std::string& transition) +{ + if (transition == HOST_TRANS_ON) + { + return "reset-out"; + } + else if (transition == HOST_TRANS_OFF) + { + return "reset-in"; + } + else if (transition == HOST_TRANS_REBOOT || transition == HOST_TRANS_POWER_CYCLE || + transition == HOST_TRANS_FORCE_WARM_REBOOT) + { + return "reset-cycle"; + } + else + { + LOG_ERROR( "Unknown transition: %s", transition.c_str()); + return ""; + } +} + +bool StateManager::isValidTransition(const std::string& transition) +{ + return transition == HOST_TRANS_ON || + transition == HOST_TRANS_OFF || + transition == HOST_TRANS_REBOOT || + transition == HOST_TRANS_FORCE_WARM_REBOOT || + transition == HOST_TRANS_POWER_CYCLE; +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/update_engine.cpp b/sonic-dbus-bridge/src/update_engine.cpp new file mode 100644 index 0000000..98915b3 --- /dev/null +++ b/sonic-dbus-bridge/src/update_engine.cpp @@ -0,0 +1,232 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "update_engine.hpp" +#include "inventory_model.hpp" +#include "logger.hpp" + +namespace sonic::dbus_bridge +{ + +UpdateEngine::UpdateEngine(boost::asio::io_context& io, + std::shared_ptr redisAdapter, + std::shared_ptr dbusExporter, + int pollIntervalSec) + : io_(io), redisAdapter_(redisAdapter), dbusExporter_(dbusExporter), + pollIntervalSec_(pollIntervalSec), timer_(io) +{ +} + +void UpdateEngine::start() +{ + if (running_) + { + return; + } + + if (pollIntervalSec_ > 0) + { + LOG_INFO("Starting update engine (poll interval: %ds)", pollIntervalSec_); + running_ = true; + scheduleNextPoll(); + } + else + { + LOG_INFO("Update engine started (event-driven mode, polling disabled)"); + running_ = true; + } +} + +void UpdateEngine::stop() +{ + if (!running_) + { + return; + } + + LOG_INFO("Stopping update engine"); + running_ = false; + timer_.cancel(); +} + +void UpdateEngine::onPollTimer(const boost::system::error_code& ec) +{ + if (ec == boost::asio::error::operation_aborted) + { + return; // Timer was cancelled + } + + if (ec) + { + LOG_ERROR("Poll timer error: %s", ec.message().c_str()); + scheduleNextPoll(); + return; + } + + doUpdate(); + scheduleNextPoll(); +} + +void UpdateEngine::doUpdate() +{ + try + { + // Read current data from Redis + auto metadata = redisAdapter_->getDeviceMetadata(); + auto state = redisAdapter_->getChassisState(); + + // Check if anything changed + bool changed = false; + + if (!cachedMetadata_ || + cachedMetadata_->serialNumber != metadata.serialNumber || + cachedMetadata_->platform != metadata.platform || + cachedMetadata_->hostname != metadata.hostname) + { + changed = true; + cachedMetadata_ = metadata; + } + + if (!cachedState_ || + cachedState_->powerState != state.powerState) + { + changed = true; + cachedState_ = state; + } + + if (changed) + { + LOG_INFO("Detected changes, updating D-Bus objects..."); + + // Build new model (without FRU/platform.json - those don't change at runtime) + InventoryModel newModel = InventoryModelBuilder::build( + std::nullopt, // FRU doesn't change + metadata, + std::nullopt, // platform.json doesn't change + state + ); + + // Update D-Bus objects + dbusExporter_->updateObjects(newModel); + + // Notify callback + if (updateCallback_) + { + updateCallback_(); + } + } + } + catch (const std::exception& e) + { + LOG_ERROR("Update error: %s", e.what()); + } +} + +void UpdateEngine::scheduleNextPoll() +{ + if (!running_ || pollIntervalSec_ <= 0) + { + return; + } + + timer_.expires_after(std::chrono::seconds(pollIntervalSec_)); + timer_.async_wait([this](const boost::system::error_code& ec) { + onPollTimer(ec); + }); +} + +void UpdateEngine::onRedisFieldChange(const std::string& key, + const std::string& field, + const std::string& value) +{ + LOG_INFO("[UpdateEngine] Redis field changed: %s.%s = %s", + key.c_str(), field.c_str(), value.c_str()); + + try + { + bool needsUpdate = false; + + // Handle DEVICE_METADATA changes + if (key == "DEVICE_METADATA") + { + // Re-read entire DEVICE_METADATA to get all fields + auto metadata = redisAdapter_->getDeviceMetadata(); + + // Check if this field actually changed from cached value + if (!cachedMetadata_ || + cachedMetadata_->serialNumber != metadata.serialNumber || + cachedMetadata_->platform != metadata.platform || + cachedMetadata_->hostname != metadata.hostname) + { + LOG_INFO("[UpdateEngine] DEVICE_METADATA changed, updating D-Bus"); + cachedMetadata_ = metadata; + needsUpdate = true; + } + } + // Handle CHASSIS_STATE changes + else if (key == "CHASSIS_STATE") + { + // Re-read entire CHASSIS_STATE to get all fields + auto state = redisAdapter_->getChassisState(); + + // Check if power state changed + if (!cachedState_ || cachedState_->powerState != state.powerState) + { + LOG_INFO("[UpdateEngine] CHASSIS_STATE changed, updating D-Bus"); + cachedState_ = state; + needsUpdate = true; + } + } + // Handle SWITCH_HOST_STATE changes (currently not mapped to D-Bus) + else if (key == "SWITCH_HOST_STATE") + { + LOG_DEBUG("[UpdateEngine] SWITCH_HOST_STATE changed (not currently mapped to D-Bus)"); + // Future: Map to host state D-Bus properties if needed + } + else + { + LOG_WARNING("[UpdateEngine] Unknown Redis key: %s", key.c_str()); + return; + } + + // Update D-Bus objects if needed + if (needsUpdate) + { + // Build new model with updated data + InventoryModel newModel = InventoryModelBuilder::build( + std::nullopt, // FRU doesn't change at runtime + cachedMetadata_, // Updated metadata + std::nullopt, // platform.json doesn't change at runtime + cachedState_ // Updated chassis state + ); + + // Update D-Bus objects + dbusExporter_->updateObjects(newModel); + + LOG_INFO("[UpdateEngine] D-Bus objects updated successfully"); + + // Notify callback + if (updateCallback_) + { + updateCallback_(); + } + } + else + { + LOG_DEBUG("[UpdateEngine] No actual change detected, skipping D-Bus update"); + } + } + catch (const std::exception& e) + { + LOG_ERROR("[UpdateEngine] Error handling Redis field change: %s", e.what()); + } +} + +} // namespace sonic::dbus_bridge + diff --git a/sonic-dbus-bridge/src/user_mgr.cpp b/sonic-dbus-bridge/src/user_mgr.cpp new file mode 100644 index 0000000..dc8be52 --- /dev/null +++ b/sonic-dbus-bridge/src/user_mgr.cpp @@ -0,0 +1,202 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "user_mgr.hpp" +#include "users.hpp" +#include "logger.hpp" + +#include +#include + +#include +#include +#include +#include + +namespace sonic +{ +namespace user +{ + +namespace +{ +// Only the admin user is exposed via D-Bus for authentication/authorization +constexpr const char* adminUserName = "admin"; + +long currentDate() +{ + const auto date = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count(); + + if (date > std::numeric_limits::max()) + { + return std::numeric_limits::max(); + } + + if (date < std::numeric_limits::min()) + { + return std::numeric_limits::min(); + } + + return date; +} + +} + + + +bool UserMgr::isUserExist(const std::string& userName) +{ + if (userName.empty()) + { + LOG_ERROR("User name is empty"); + throw std::invalid_argument("User name is empty"); + } + if (usersList.find(userName) == usersList.end()) + { + return false; + } + return true; +} + + + +UserMgr::UserMgr(sdbusplus::asio::object_server& server, const char* path, + sonic::dbus_bridge::ObjectMapperService* objectMapper) : + server(server), + path(path), + objectMapper_(objectMapper) +{ + // Register ObjectManager interface at /xyz/openbmc_project/user + // This is required for BMCWeb's getManagedObjects() to work + server.add_manager(path); + + // Register xyz.openbmc_project.User.Manager interface + userMgrIface = server.add_interface(path, "xyz.openbmc_project.User.Manager"); + + // Register AllPrivileges property (read-only) + userMgrIface->register_property("AllPrivileges", privMgr); + + // Register AllGroups property (read-only) + userMgrIface->register_property("AllGroups", allGroups); + + // Register GetUserInfo method + userMgrIface->register_method( + "GetUserInfo", + [this](const std::string& userName) { + return getUserInfo(userName); + }); + + // Register DeleteUser method (delete via object path, not this interface) + // BMCWeb uses the Delete method on individual user objects + + userMgrIface->initialize(); + + initUserObjects(); +} + + + +bool UserMgr::isUserEnabled(const std::string& userName) +{ + std::array buffer{}; + struct spwd spwd; + struct spwd* resultPtr = nullptr; + int status = getspnam_r(userName.c_str(), &spwd, buffer.data(), + buffer.max_size(), &resultPtr); + if (!status && (&spwd == resultPtr)) + { + // according to chage/usermod code -1 means that account does not expire + // https://github.com/shadow-maint/shadow/blob/7a796897e52293efe9e210ab8da32b7aefe65591/src/chage.c + if (resultPtr->sp_expire < 0) + { + return true; + } + + // check account expiration date against current date + if (resultPtr->sp_expire > currentDate()) + { + return true; + } + + return false; + } + return false; // assume user is disabled for any error. +} + + + +void UserMgr::initUserObjects(void) +{ + // Only create D-Bus object for the admin user + // Authentication is done via PAM for all users, but only admin + // is exposed for Redfish AccountService and authorization + + std::string userName = adminUserName; + + // Check if admin user exists in the system + std::array buffer{}; + struct passwd pwd; + struct passwd* resultPtr = nullptr; + + int status = getpwnam_r(userName.c_str(), &pwd, buffer.data(), + buffer.max_size(), &resultPtr); + + if (status != 0 || resultPtr == nullptr) + { + LOG_ERROR("Admin user '%s' not found in system", userName.c_str()); + // Don't throw - service can still start, but GetUserInfo will fail + return; + } + + // Admin user always has priv-admin privilege + std::string userPriv = "priv-admin"; + + // Admin user is in redfish group (for additional permissions if needed) + std::vector userGroups = {"redfish"}; + + // Create D-Bus object path for admin user + sdbusplus::message::object_path tempObjPath(usersObjPath); + tempObjPath /= userName; + std::string objPath(tempObjPath); + + // Create the Users object for admin + usersList.emplace(userName, std::make_unique( + server, objPath, userGroups, + userPriv, isUserEnabled(userName), *this)); + + LOG_INFO("Created D-Bus object for admin user at %s", objPath.c_str()); +} + +UserInfoMap UserMgr::getUserInfo(const std::string& userName) +{ + UserInfoMap userInfo; + + // Check if user exists in our list (local user) + if (!isUserExist(userName)) + { + LOG_ERROR("GetUserInfo: User %s not found", userName.c_str()); + throw std::runtime_error("User not found"); + } + + const auto& user = usersList[userName]; + + userInfo.emplace("UserPrivilege", user->getUserPrivilege()); + userInfo.emplace("UserGroups", user->getUserGroups()); + userInfo.emplace("UserEnabled", user->getUserEnabled()); + userInfo.emplace("UserLockedForFailedAttempt", user->getUserLockedForFailedAttempt()); + userInfo.emplace("UserPasswordExpired", user->getUserPasswordExpired()); + userInfo.emplace("RemoteUser", false); // Always false for local users + + return userInfo; +} + +} // namespace user +} // namespace sonic diff --git a/sonic-dbus-bridge/src/users.cpp b/sonic-dbus-bridge/src/users.cpp new file mode 100644 index 0000000..5839f3d --- /dev/null +++ b/sonic-dbus-bridge/src/users.cpp @@ -0,0 +1,68 @@ +/////////////////////////////////////// +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2026 Nexthop AI +// Copyright (C) 2024 SONiC Project +// Author: Nexthop AI +// Author: SONiC Project +// License file: sonic-redfish/LICENSE +/////////////////////////////////////// + +#include "users.hpp" +#include "user_mgr.hpp" +#include "logger.hpp" + + +namespace sonic +{ +namespace user +{ + +/** @brief Constructs Users object. + * + * @param[in] server - sdbusplus asio object server + * @param[in] path - D-Bus path + * @param[in] groups - users group list + * @param[in] priv - user privilege + * @param[in] enabled - user enabled state + * @param[in] parent - user manager - parent object + */ +Users::Users(sdbusplus::asio::object_server& server, const std::string& path, + std::vector groups, const std::string& priv, + bool enabled, UserMgr& parent) : + userName(sdbusplus::message::object_path(path).filename()), + manager(parent), + server(server), + userPrivilege(priv), + userGroups(std::move(groups)), + userEnabled(enabled) +{ + // Create D-Bus interface for User.Attributes + userIface = server.add_interface(path, "xyz.openbmc_project.User.Attributes"); + + // Register UserPrivilege property (read-only) + userIface->register_property("UserPrivilege", userPrivilege); + + // Register UserGroups property (read-only) + userIface->register_property("UserGroups", userGroups); + + // Register UserEnabled property (read-only) + userIface->register_property("UserEnabled", userEnabled); + + userIface->register_property("UserLockedForFailedAttempt", false); + userIface->register_property("UserPasswordExpired", false); + + userIface->initialize(); + + LOG_INFO("User object created for: %s", userName.c_str()); +} + +Users::~Users() +{ + LOG_INFO("Removing D-Bus interfaces for user: %s", userName.c_str()); + + // Remove interface from D-Bus + server.remove_interface(userIface); +} + +} // namespace user +} // namespace sonic diff --git a/sonic-dbus-bridge/subprojects/sdbusplus.wrap b/sonic-dbus-bridge/subprojects/sdbusplus.wrap new file mode 100644 index 0000000..87fb818 --- /dev/null +++ b/sonic-dbus-bridge/subprojects/sdbusplus.wrap @@ -0,0 +1,8 @@ +[wrap-git] +url = https://github.com/openbmc/sdbusplus.git +revision = HEAD +depth = 1 + +[provide] +sdbusplus = sdbusplus_dep + diff --git a/sonic-dbus-bridge/subprojects/stdexec.wrap b/sonic-dbus-bridge/subprojects/stdexec.wrap new file mode 100644 index 0000000..ad1981b --- /dev/null +++ b/sonic-dbus-bridge/subprojects/stdexec.wrap @@ -0,0 +1,8 @@ +[wrap-git] +url = https://github.com/NVIDIA/stdexec.git +revision = main +depth = 1 + +[provide] +stdexec = stdexec_dep +