From c03cc0d937f659715301a11eb890f4cf4942731e Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Mon, 28 Sep 2026 17:34:06 +0800 Subject: [PATCH 1/9] feat(test): add synthetic policy generation and tests --- .github/workflows/ci.yml | 15 +- CMakeLists.txt | 21 +- README.md | 175 +++----- config/executor.yaml | 98 ---- include/rmcs_rl/onnxruntime_inference.hpp | 192 -------- .../rmcs_rl/{rl_bridge => }/parameters.hpp | 0 include/rmcs_rl/rl_bridge/action_channel.hpp | 43 +- include/rmcs_rl/rl_bridge/config.hpp | 36 ++ .../rmcs_rl/rl_bridge/observation_history.hpp | 22 + .../rl_bridge/observation_timeline.hpp | 49 ++ include/rmcs_rl/rl_bridge/types.hpp | 4 - models/policy_drive.onnx | Bin 1417 -> 0 bytes package.xml | 3 +- src/{rl_bridge => }/parameters.cpp | 18 +- src/policy/onnx_runtime.cpp | 76 ++++ src/policy/onnx_runtime.hpp | 39 ++ src/policy/policy_model.cpp | 145 ++++++ src/policy/policy_model.hpp | 54 +++ src/policy_server.cpp | 419 +++--------------- src/policy_server_launcher.cpp | 47 +- src/rl_bridge.cpp | 302 +++---------- src/rl_bridge/action_channel.cpp | 34 +- src/rl_bridge/config.cpp | 108 +++++ src/rl_bridge/interface_binding.cpp | 1 - src/rl_bridge/joint_config.cpp | 2 +- src/rl_bridge/observation_history.cpp | 34 ++ test/data/normalized_identity.onnx | Bin 0 -> 292 bytes {tool => test}/gen_synthetic_policy.py | 58 +-- test/runtime_test.cpp | 116 +++++ test/test_layout.py | 126 ++++++ {tool => test}/test_layout_contract.sh | 29 +- tool/gen_drive_policy.py | 72 --- tool/rl_layout.py | 122 +---- 33 files changed, 1119 insertions(+), 1341 deletions(-) delete mode 100644 config/executor.yaml delete mode 100644 include/rmcs_rl/onnxruntime_inference.hpp rename include/rmcs_rl/{rl_bridge => }/parameters.hpp (100%) create mode 100644 include/rmcs_rl/rl_bridge/config.hpp create mode 100644 include/rmcs_rl/rl_bridge/observation_history.hpp create mode 100644 include/rmcs_rl/rl_bridge/observation_timeline.hpp delete mode 100644 models/policy_drive.onnx rename src/{rl_bridge => }/parameters.cpp (80%) create mode 100644 src/policy/onnx_runtime.cpp create mode 100644 src/policy/onnx_runtime.hpp create mode 100644 src/policy/policy_model.cpp create mode 100644 src/policy/policy_model.hpp create mode 100644 src/rl_bridge/config.cpp create mode 100644 src/rl_bridge/observation_history.cpp create mode 100644 test/data/normalized_identity.onnx rename {tool => test}/gen_synthetic_policy.py (57%) create mode 100644 test/runtime_test.cpp create mode 100644 test/test_layout.py rename {tool => test}/test_layout_contract.sh (85%) delete mode 100644 tool/gen_drive_policy.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d4b39c..625694c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,7 @@ on: - "include/**" - "models/**" - "tool/**" + - "test/**" - "CMakeLists.txt" - "package.xml" - "plugins.xml" @@ -51,7 +52,17 @@ jobs: set +u source /opt/ros/jazzy/setup.bash set -u - colcon build --packages-up-to rmcs_rl + colcon build --packages-up-to rmcs_rl --cmake-args -DBUILD_TESTING=ON + + - name: C++ runtime regression + shell: bash + working-directory: /tmp/RMCS/rmcs_ws + run: | + set -e + source /opt/ros/jazzy/setup.bash + source install/setup.bash + colcon test --packages-select rmcs_rl + colcon test-result --test-result-base build/rmcs_rl --verbose - name: Prepare Python toolchain (venv) shell: bash @@ -103,4 +114,4 @@ jobs: working-directory: /tmp/RMCS/rmcs_ws/src/rmcs_rl run: | set -euo pipefail - PYTHON=/tmp/rl-venv/bin/python bash tool/test_layout_contract.sh + PYTHON=/tmp/rl-venv/bin/python bash test/test_layout_contract.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index f3514b3..99a7d15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,8 +51,10 @@ endif() ament_auto_add_library(rmcs_rl_bridge SHARED src/rl_bridge.cpp + src/rl_bridge/config.cpp + src/rl_bridge/observation_history.cpp src/rl_bridge/utility.cpp - src/rl_bridge/parameters.cpp + src/parameters.cpp src/rl_bridge/joint_config.cpp src/rl_bridge/term_parser.cpp src/rl_bridge/interface_binding.cpp @@ -68,6 +70,9 @@ target_link_libraries(rmcs_rl_bridge ${cpp_typesupport_target}) ament_auto_add_executable(policy_server src/policy_server.cpp + src/policy/policy_model.cpp + src/policy/onnx_runtime.cpp + src/parameters.cpp ) target_include_directories(policy_server PRIVATE ${ONNXRUNTIME_ROOT_DIR}/include @@ -80,9 +85,21 @@ install(TARGETS policy_server DESTINATION lib/${PROJECT_NAME}) pluginlib_export_plugin_description_file(rmcs_executor plugins.xml) install(DIRECTORY models DESTINATION share/${PROJECT_NAME}) -install(DIRECTORY config DESTINATION share/${PROJECT_NAME}) install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +if(BUILD_TESTING) + find_package(ament_cmake_gtest REQUIRED) + ament_add_gtest(runtime_test + test/runtime_test.cpp + src/policy/policy_model.cpp + src/policy/onnx_runtime.cpp + ) + target_include_directories(runtime_test PRIVATE src ${ONNXRUNTIME_ROOT_DIR}/include) + target_link_libraries(runtime_test rmcs_rl_bridge ${ONNXRUNTIME_ROOT_DIR}/lib/libonnxruntime.so) + target_compile_definitions(runtime_test PRIVATE + RMCS_RL_IDENTITY_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/normalized_identity.onnx") +endif() + ament_export_dependencies(rosidl_default_runtime) ament_auto_package(USE_SCOPED_HEADER_INSTALL_DIR) diff --git a/README.md b/README.md index 62d7c35..0eb8657 100644 --- a/README.md +++ b/README.md @@ -1,147 +1,98 @@ # rmcs_rl -RMCS(RoboMaster Control System)的 **RL 策略桥**:在「传统 RMCS 结构」与「独立进程里的 ONNX 策略」之间做翻译。 +RMCS 的 RL 部署包。控制进程通过组件接口组装观测,独立策略进程执行 ONNX 推理; +车辆侧消费器负责动作语义、模式切换、限位和电机控制。 -桥只做一件事:**按 YAML 词条把 RMCS 侧接口拼成有序 obs,发出去;把收到的 action 逐项写回 RMCS 侧的 RL 专属接口。** -推理在另一个进程(`policy_server`),PD / FSM / 关节语义在 RMCS 侧消费组件(P1,见「现状与边界」)。 +## 职责与源码 -详细文档: +| 层 | 文件 | 职责 | +| --- | --- | --- | +| 控制桥 | `src/rl_bridge.cpp` | 组件接口、观测发布、动作时效与契约门控 | +| 桥配置 | `src/rl_bridge/config.cpp` | 参数、维数、词条布局的启动检查 | +| 观测与历史 | `src/rl_bridge/observation.cpp`、`observation_history.cpp`、`observation_timeline.hpp` | 单帧观测、历史堆叠、序号时效与复位 | +| 动作通道 | `src/rl_bridge/action_channel.cpp` | ROS 回调与控制循环之间传递完整快照,控制循环不等待锁 | +| ROS 策略服务 | `src/policy_server.cpp` | 订阅观测、发布动作和可选状态 | +| 策略模型 | `src/policy/policy_model.cpp` | 元数据、模型 ID、归一化、裁剪、有限值检查 | +| 推理后端 | `src/policy/onnx_runtime.cpp` | ONNX Runtime 会话、张量形状及执行 | +| 子进程管理 | `src/policy_server_launcher.cpp` | 启停、退出回收、延时重启 | +| 参数解析 | `src/parameters.cpp` | 上述组件共用的类型及数值检查 | -- [架构与组件](planning/docs/architecture.md) -- [桥式重构设计(v2,定稿方案)](planning/docs/bridge-design.md) -- [构建、配置与部署](planning/docs/deployment.md) -- [策略模型合同(张量形状 + 元数据要求)](planning/docs/model-contract.md) +组件保持 RMCS 的 `.cpp` 类布局,构造函数直接注册输出。观测输入类型依赖其他组件的 +输出表,在 `before_pairing()` 中解析。非模板模型实现位于 `.cpp`,私有头文件放在 +`src/policy/`;控制桥不链接 ONNX Runtime。 -## 两条硬边界 +## 车辆控制链 -| 边界 | 通道 | 数量 | -|---|---|---| -| 桥 ↔ **RMCS 侧**(executor 内的组件) | 只有 `register_input` / `register_output` 接口,**没有任何 topic** | N 个观测输入 + M 个动作输出 + 使能/复位/事实位 | -| 桥 ↔ **策略进程**(不是 RMCS 组件,独立可执行文件) | ROS topic | **2 条必需**(`/obs`、`/action`)+ 1 条可选运维(`/policy_status`,缺省关) | +| 车辆 | 配置(位于 rmcs_bringup/config) | 消费及控制 | +| --- | --- | --- | +| wheel-leg | `wheel-leg-infantry-rl.yaml` | `WheelLegRlImu` → 桥 → `WheelLegRlConsumer` → 配对角度环 → 速度 PID → DM MIT 力矩 | +| deformable | `deformable-infantry-omni-rl.yaml` | 桥 → `DeformableRlSuspension` → `DeformableSuspensionArbiter` → 关节控制器 | -topic 存在的**唯一**原因是「策略进程独立」。想消除这 3 条 topic,只能把 ONNX 放回控制进程(进程内推理)—— -那正是桥要避免的事(ORT 会跟着 1 kHz 控制进程一起加载/崩溃/重启)。 +wheel-leg 的 IMU 观测使用 Body xyz;关节 offset、配对选弧和机械限位由硬件及车辆控制层管理。 +deformable 使用 RF、LF、LB、RB 的策略动作顺序,消费器根据标定把 RL 坐标转换为物理角; +RL 未就绪时仲裁器使用传统姿态目标。双下复位经组件接口清除历史、动作及控制状态。 -## 组件与可执行文件 +## 构建与启动 -| 名称 | 位置 | 依赖 ONNX Runtime | 职责 | -|---|---|---|---| -| `rmcs_rl::RlBridge` | 库 `rmcs_rl_bridge` | **否** | 观测组装、定频发布、动作回写、`valid/healthy/action_age` 事实位、合同指纹 | -| `rmcs_rl::PolicyServerLauncher` | 库 `rmcs_rl_bridge` | **否** | 随 executor 生命周期 fork/exec 独立的 `policy_server` 子进程,可退避重启、防孤儿 | -| `policy_server` | 可执行文件(`ros2 run rmcs_rl policy_server`) | **是**(唯一链接 ORT 的可执行文件) | 收一帧 obs → 归一化 → ONNX → 回一帧 action(纯反应式,无定时器) | -| 消息 `rmcs_rl/msg/*` | 本包 `msg/`(rosidl 生成,类型全名如 `rmcs_rl/msg/Observation`) | 否 | `Observation` / `Action` / `PolicyStatus` | +在 ROS 工作区内: -## 数据流 - -``` -RMCS 侧 output 接口 ──(桥:按词条拼 obs)──> obs 向量 ──topic /obs──> policy_server ──ONNX──> action - ▲ │ - └─ RMCS 侧 consumer(P1:FSM/PD/限位,写电机 control_*)<──(桥:逐项回写)── action 向量 <─┘ +```sh +colcon build --merge-install --symlink-install --packages-select rmcs_rl rmcs_core rmcs_bringup +source install/setup.bash ``` -## 部署到真机 - -本包**不含台架夹具**:链路必须挂到真实 RMCS 组件上跑。简要步骤(完整流程见 -[planning/docs/deployment.md](planning/docs/deployment.md)): - -1. 改 `config/executor.yaml`:观测/动作词条与 `joint_*` 指向真机的接口路径, - `policy_server.rl_model_path` 指向已盖章的模型; -2. 把该文件复制到 `rmcs_bringup/config/.yaml`,或真机上 `--params-file` 直接加载; -3. 真机起两个进程: +使用对应车辆的 bringup 配置启动 RMCS;配置中的 `PolicyServerLauncher` 自动启动策略进程。 +需要独立调试策略进程时,将 launcher 的 `autostart` 设为 false,再运行: ```sh -ros2 run rmcs_executor rmcs_executor --ros-args --params-file -ros2 run rmcs_rl policy_server --ros-args --params-file +ros2 run rmcs_rl policy_server --ros-args --params-file <车辆配置.yaml> ``` -`layout_hash` 两侧必须一致;`valid=0` 的原因会直接打在桥的日志里(见 -[planning/docs/deployment.md](planning/docs/deployment.md) 的排障表)。注意 P1 的 RMCS 侧 consumer 尚未实现, -真机上桥恒 `valid=0`、不会输出权威动作(见「现状与边界」)。 +车辆配置统一放在 `rmcs_bringup/config/`;旧的、不含完整消费链的 `config/executor.yaml` 已移除。 -## 加一台新车型 / 加一条观测词条 +## 模型与契约 -1. 在部署 YAML 的 `rl_bridge.ros__parameters` 里写 `observation_terms`(**顺序就是 obs 索引顺序**) - 与 `action_terms`(`index=` 必须恰好是 `0..M-1` 的完整置换)。 -2. 只写路径 + 取值语义,**不要写 `type=`**:接口的 C++ 类型由桥在 `before_pairing` 里按 `output_map` - 的 `typeid` 自省(`take=x` / `take=vec3` / `transform=projected_gravity` 决定取值语义与 dim)。 - `type=` 是逃生口,只在自省失败(提示「无 producer 或类型不在候选表」)时才显式写。 -3. 词条引用的接口**必须在启动时已存在**(配对只在启动做一次,运行期热加接口不支持); - 确实可能缺失的可选接口用 `default=` 兜底(仅标量路径词条)。 -4. 尺寸自检:`Σdim(observation_terms)` 与 `rl_obs_size`、`action_terms` 条数与 `rl_action_size` 写了就必须一致。 -5. 改完重新盖章 + 重新校验,**然后重启 executor**(新接口/新词条都要重新配对): +模型输入为 float32 `obs[batch,N]`,输出为 float32 `actions[batch,M]`,batch 为 1 或动态。 +部署模型须含 `rmcs_obs_layout`、`rmcs_actions_layout`;建议带 `policy_layout_hash` 和版本。 +`history_length × 单帧维数 = rl_obs_size`。归一化均值和标准差必须成对提供,标准差为正数。 + +新模型先核对训练的观测顺序、坐标、基准角、缩放和频率,再盖章: ```sh -python3 src/rmcs_rl/tool/stamp_layout_metadata.py --model --from-config --node rl_bridge -python3 src/rmcs_rl/tool/check_policy_contract.py --config --node rl_bridge +bash src/rmcs_rl/tool/stamp_model.sh <模型.onnx> --config <车辆配置.yaml> --version <版本> ``` -> 词条**增删或维度变化**等于换了策略输入维度 → 必须重新导出模型(盖章只改 metadata,不改张量 shape)。 -> 仅「维度不变」的改名/换实现(例如 v1 的类型前缀 id → v2 去类型化 id)才只需要重盖章,不需要重训。 - -## 工具链回归 +按工具输出同步 `policy_server.rl_model_path`、`rl_bridge.expected_model_id`,然后验证: ```sh -# 不需要 executor:词条语法自检 + gen/stamp/check 正例 + 6 个负例 -bash src/rmcs_rl/tool/test_layout_contract.sh +python3 src/rmcs_rl/tool/check_policy_contract.py <模型.onnx> --config <车辆配置.yaml> --node rl_bridge --expect-model-id ``` -实测 **PASS=21 FAIL=0**。CI 里也会跑这一项,外加对 `models/*.onnx` 逐个做模型自检。 +盖章只写元数据;布局匹配不能证明训练侧的坐标或动作含义正确。 +更新模型或配置后重启 RMCS。模型或布局不匹配会锁存拒绝动作,需要重启恢复。 -## 工具链 +当前 `models/deformable_sps_V2.onnx` 缺少 `rmcs_obs_layout` 和 `rmcs_actions_layout`, +完整契约检查与策略服务会拒绝它。这是已有模型的部署缺口,需核对训练契约后补元数据; +不能只按张量维数推断其含义。 -| 工具 | 用途 | -|---|---| -| `tool/rl_layout.py` | 词条语法 / 规范串 / `layout_hash` 的**单一真源**(`python3 tool/rl_layout.py` 跑自检) | -| `tool/stamp_layout_metadata.py` | 部署 YAML → 写进 ONNX `metadata_props`(`rmcs_obs_layout` / `rmcs_actions_layout` / `policy_layout_hash` …) | -| `tool/check_policy_contract.py` | 两种模式:`MODEL`(模型自检:张量契约 + metadata 自洽,不比对 YAML,CI 用)/ `MODEL --config X [--node N] [--print-layout] [--expect-model-id H]`(YAML ↔ 张量 ↔ metadata 完整校验) | -| `tool/gen_synthetic_policy.py` | `--from-config X -o M.onnx`:生成零动作合成模型(`obs[1,N] → actions[1,M]`;ONNX 后端强制 `ir_version=10`,因为 ORT 1.20 拒收 IR 13) | -| `tool/test_layout_contract.sh` | Python 侧布局契约回归(含 6 个必须 FAIL 的负例) | -| `tool/install_rl_deps.sh` | `bash tool/install_rl_deps.sh local\|remote`:装 `libonnxruntime.so.1`(仅 `policy_server` 需要) | +## 运行接口 -## 现状与边界 +- `/obs`、`/action`:两个进程间的 ROS 消息。 +- `/policy_status`:可选模型身份和推理耗时信息。 +- 控制进程内部使用组件接口 `/valid`、`healthy`、`action_age` 和配置的动作输出。 +- 动作必须对应最近两次有效观测之一且未超时;复位前的动作不能重新获得控制权。 +- `invalid_value` 可选 `nan`、`zero`、`hold`;实际车辆使用 `"nan"` 让消费器处理失效。 -- **P0 已完成**:桥、策略进程、消息定义、合同指纹(v2)、工具链。 -- **P1 进行中**:RMCS 侧 consumer(FSM / PREPARE / kp,kd / 限位 / NaN 让位)。 - deformable 已有消费侧落地(`DeformableRlSuspension` / 仲裁);wheel-leg 尚未迁到桥式, - 因此轮腿上桥若挂载且 `enable_default: false` → **桥恒 `valid=0`**,不会输出权威动作。 -- 桥**从不写电机 `control_*` 接口**:executor 禁止同名 output,电机控制权始终在 RMCS 侧消费组件手上, - 所以「RL 接管 / 退回传统控制」不需要仲裁组件(consumer 用写 NaN 让位)。 -- 观测接口运行期热加不支持(配对只在启动做一次);`contract_ok` 一旦因合同不符锁存为 false, - 当前实现**只能靠重启 executor 进程恢复**。 +## 工具和测试 -## 目录结构 +`tool/` 仅保留模型校验、盖章和依赖安装工具。离线模型生成及回归放在 `test/`, +不安装到部署目录;合成模型不用于实车启动。历史临时脚本与生成报告可从 Git 历史获取。 +```sh +colcon build --merge-install --symlink-install --packages-select rmcs_rl rmcs_core --cmake-args -DBUILD_TESTING=ON +colcon test --merge-install --packages-select rmcs_rl rmcs_core +PYTHON=<带 onnx、onnxruntime、PyYAML 的 Python> bash src/rmcs_rl/test/test_layout_contract.sh ``` -rmcs_rl/ -├── README.md # 本页(入口) -├── config/ -│ └── executor.yaml # 实车配置模板(轮腿;复制到 rmcs_bringup/config/.yaml) -├── planning/ -│ └── docs/ -│ ├── architecture.md # 进程/组件、数据流、接口清单、valid 状态机 -│ ├── bridge-design.md # 重构定稿方案(权威设计) -│ ├── deployment.md # 构建 → 模型 → 配置 → 运行 → 验证 → 交接 -│ ├── model-contract.md # 模型张量合同与 metadata 清单 -│ └── deformable-rl-pipeline.md # deformable 消费侧落地说明 -├── include/rmcs_rl/ # 头文件(安装到 include/rmcs_rl/,与 rosidl 生成头一致) -│ ├── rl_layout.hpp # FNV-1a64 / layout_hash / model_id(与 tool/rl_layout.py 同构) -│ ├── onnxruntime_inference.hpp -│ └── rl_bridge/ # 桥内部辅助模块头文件 -├── models/ # 策略 ONNX(安装到 share/rmcs_rl/models/) -├── msg/ # Observation / Action / PolicyStatus(rosidl 生成,类型名 rmcs_rl/msg/*) -├── src/ # 仅实现文件 -│ ├── rl_bridge.cpp # 桥(RlBridge 组件) -│ ├── rl_bridge/ # 桥内部辅助模块实现 -│ ├── policy_server.cpp # 策略进程(独立可执行文件,非 executor 组件) -│ └── policy_server_launcher.cpp # PolicyServerLauncher 组件(拉起/重启策略进程) -├── tool/ # 见上表 -├── plugins.xml # rmcs_rl_bridge 的 pluginlib 导出 -└── CMakeLists.txt -``` - -## 相关 -- 集成示例:`rmcs_bringup/config/deformable-infantry-omni-rl.yaml`(桥式 + launcher); - `wheel-leg-infantry-rl.yaml` 尚未挂 RL 桥(待迁到桥式) -- 训练侧:任何能导出 `obs[1,N] → actions[1,M]` 且带 `rmcs_obs_layout` / `rmcs_actions_layout` metadata 的 - ONNX 仓库(Isaac Lab / legged_gym / rsl_rl …)都可以接 +C++ 回归覆盖推理归一化、历史帧与跨线程动作快照;Python 回归覆盖布局解析、盖章及错误契约拒绝。 +车辆包保留 DM 使能、帧解码、闭链几何、Body IMU 以及 MuJoCo 查看器回归。 diff --git a/config/executor.yaml b/config/executor.yaml deleted file mode 100644 index d5559fd..0000000 --- a/config/executor.yaml +++ /dev/null @@ -1,98 +0,0 @@ - -rmcs_executor: - ros__parameters: - update_rate: 1000.0 - components: - - rmcs_core::hardware::WheelLegInfantryRL -> wheel_leg_infantry_rl - - rmcs_core::controller::chassis::WheelLegChassisController -> wheel_leg_chassis_controller - - rmcs_core::controller::chassis::WheelLegRlImu -> wheel_leg_rl_imu - - rmcs_rl::RlBridge -> rl_bridge - - rmcs_rl::PolicyServerLauncher -> policy_server_launcher - -wheel_leg_infantry_rl: - ros__parameters: - board_serial: "" - -wheel_leg_chassis_controller: - ros__parameters: - rl_state_path: "/wheel_leg/rl/state" - vx_max: 2.5 - yaw_rate_max: 3.0 - heading_kp: 3.0 - deadzone: 0.08 - command_height_min: 0.26 - command_height_max: 0.28 - default_command_height: 0.27 - -rl_bridge: - ros__parameters: - history_length: 1 - rl_base: "/wheel_leg/rl" - policy_rate: 50.0 - max_action_age: 0.04 # 缺省 = 2 / policy_rate;超时 → valid=0(绝不保持旧动作) - - rl_obs_size: 35 - rl_action_size: 6 - - enable_interface: "/wheel_leg/rl/enable" - enable_default: false - invalid_value: "nan" # 必须加引号!不加会被 YAML 解析成 float,桥启动即失败 - reset_interface: "/chassis/reset_count" - expected_model_id: "0xd4612f6cd48a6e9c" - - joint_names: [left_hip_joint, left_knee_joint, right_hip_joint, right_knee_joint, left_wheel, right_wheel] - joint_base_path: "/wheel_leg" - joint_angle_suffix: "/angle" - joint_velocity_suffix: "/velocity" - joint_torque_suffix: "/torque" - default_joint_pos: - left_hip_joint: 0.0 - left_knee_joint: 0.0 - right_hip_joint: 0.0 - right_knee_joint: 0.0 - left_wheel: 0.0 - right_wheel: 0.0 - - observation_terms: - - index=0 path=/chassis/control_velocity take=x - - index=1 path=/chassis/control_velocity take=y - - index=2 path=/chassis/control_velocity take=z - - index=3 path=/chassis/control_height scale=5.0 - # 训练 IMU 观测直接使用车身 Body xyz;URDF 轴向差异不对 IMU 做 90° 换轴。 - - index=4 path=/wheel_leg/rl/imu/angular_velocity take=vec3 scale=0.5 - - index=7 path=/wheel_leg/rl/imu/projected_gravity take=vec3 - - index=10 type=joint_pos joints=left_hip_joint,left_knee_joint,right_hip_joint,right_knee_joint relative=true - - index=14 type=joint_pos joints=left_wheel,right_wheel zero=true - - index=16 type=joint_vel joints=left_hip_joint,left_knee_joint,right_hip_joint,right_knee_joint scale=0.1 - - index=20 type=joint_vel joints=left_wheel,right_wheel scale=0.1 - - index=22 type=last_action - - index=28 type=constant value=1,0,0,0,0,0,0 - - action_terms: - - index=0 output=/wheel_leg/rl/action/left_hip name=left_hip - - index=1 output=/wheel_leg/rl/action/left_knee name=left_knee - - index=2 output=/wheel_leg/rl/action/right_hip name=right_hip - - index=3 output=/wheel_leg/rl/action/right_knee name=right_knee - - index=4 output=/wheel_leg/rl/action/left_wheel name=left_wheel - - index=5 output=/wheel_leg/rl/action/right_wheel name=right_wheel - -policy_server: - ros__parameters: - rl_base: "/wheel_leg/rl" # 必须与桥一致 - rl_model_path: "models/wheel_leg_v1.onnx" - input_name: "obs" - output_name: "actions" - normalization_from_metadata: true - publish_status: false - status_rate: 2.0 - -# 由 executor 进程内组件随 rmcs 一起拉起 policy_server(不改 bringup/launch/服务)。 -# params_file 相对 share/rmcs_bringup/config 解析,也可写绝对路径; -# 复制本模板到 rmcs_bringup/config/.yaml 后,改成那个文件名。 -policy_server_launcher: - ros__parameters: - autostart: true - params_file: "executor.yaml" - respawn: true - respawn_delay: 1.0 - poll_interval: 0.5 diff --git a/include/rmcs_rl/onnxruntime_inference.hpp b/include/rmcs_rl/onnxruntime_inference.hpp deleted file mode 100644 index 6555ff4..0000000 --- a/include/rmcs_rl/onnxruntime_inference.hpp +++ /dev/null @@ -1,192 +0,0 @@ -#pragma once - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace rmcs_rl { - -class OnnxRuntimeInference { -public: - struct Config { - std::string model_path; - std::string input_name = "obs"; - std::string output_name = "actions"; - std::size_t input_size = 0; - std::size_t output_size = 0; - }; - - OnnxRuntimeInference() = default; - - OnnxRuntimeInference(const OnnxRuntimeInference&) = delete; - OnnxRuntimeInference& operator=(const OnnxRuntimeInference&) = delete; - - bool load(const Config& config) { - std::string ignored; - return load(config, ignored); - } - - bool load(const Config& config, std::string& error) { - config_ = config; - session_.reset(); - error.clear(); - try { - session_options_.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_ALL); - session_options_.SetIntraOpNumThreads(1); - session_options_.SetInterOpNumThreads(1); - session_ = - std::make_unique(env_, config_.model_path.c_str(), session_options_); - - if (session_->GetInputCount() != 1 || session_->GetOutputCount() != 1) { - error = "model must have exactly 1 input and 1 output, got " - + std::to_string(session_->GetInputCount()) + " input(s) / " - + std::to_string(session_->GetOutputCount()) + " output(s)"; - session_.reset(); - return false; - } - - const auto actual_input = session_->GetInputNameAllocated(0, allocator_); - const auto actual_output = session_->GetOutputNameAllocated(0, allocator_); - if (actual_input.get() != config_.input_name - || actual_output.get() != config_.output_name) { - error = "tensor names must be '" + config_.input_name + "' / '" - + config_.output_name + "', got '" + actual_input.get() + "' / '" - + actual_output.get() + "'"; - session_.reset(); - return false; - } - - const auto input_type_info = session_->GetInputTypeInfo(0); - const auto output_type_info = session_->GetOutputTypeInfo(0); - const auto input_info = input_type_info.GetTensorTypeAndShapeInfo(); - const auto output_info = output_type_info.GetTensorTypeAndShapeInfo(); - if (input_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT - || output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) { - error = "tensor element type must be float32"; - session_.reset(); - return false; - } - - const auto input_shape = input_info.GetShape(); - const auto output_shape = output_info.GetShape(); - if (input_shape.size() != 2 || output_shape.size() != 2) { - error = "tensor rank must be 2 ([batch, N])"; - session_.reset(); - return false; - } - if ((input_shape[0] != 1 && input_shape[0] != -1) - || (output_shape[0] != 1 && output_shape[0] != -1)) { - error = "batch dimension must be 1 or dynamic"; - session_.reset(); - return false; - } - if (input_shape[1] <= 0 || output_shape[1] <= 0) { - error = "feature dimensions must be concrete positive values"; - session_.reset(); - return false; - } - - const auto model_input_size = static_cast(input_shape[1]); - const auto model_output_size = static_cast(output_shape[1]); - if (config_.input_size != 0 && config_.input_size != model_input_size) { - error = "configured rl_obs_size=" + std::to_string(config_.input_size) - + " but model input shape is [1," + std::to_string(model_input_size) + "]"; - session_.reset(); - return false; - } - if (config_.output_size != 0 && config_.output_size != model_output_size) { - error = "configured rl_action_size=" + std::to_string(config_.output_size) - + " but model output shape is [1," + std::to_string(model_output_size) + "]"; - session_.reset(); - return false; - } - - config_.input_size = model_input_size; - config_.output_size = model_output_size; - // This deployment path runs one observation at a time. Normalize a - // symbolic batch dimension to 1 for Ort::CreateTensor below. - input_shape_ = {1, static_cast(model_input_size)}; - output_shape_ = {1, static_cast(model_output_size)}; - input_buffer_.assign(config_.input_size, 0.0F); - output_buffer_.assign(config_.output_size, 0.0F); - memory_info_ = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault); - return true; - } catch (const Ort::Exception& exception) { - error = std::string{"ONNX Runtime: "} + exception.what(); - session_.reset(); - return false; - } - } - - [[nodiscard]] bool ready() const { return session_ != nullptr; } - - [[nodiscard]] const std::string& model_path() const { return config_.model_path; } - [[nodiscard]] std::size_t input_size() const { return config_.input_size; } - [[nodiscard]] std::size_t output_size() const { return config_.output_size; } - - [[nodiscard]] std::optional metadata(const std::string& key) const { - if (!session_) - return std::nullopt; - try { - auto model_metadata = session_->GetModelMetadata(); - auto value = model_metadata.LookupCustomMetadataMapAllocated(key.c_str(), allocator_); - if (!value) - return std::nullopt; - return std::string(value.get()); - } catch (const Ort::Exception&) { - return std::nullopt; - } - } - - bool run(std::span input, std::span output) { - if (!session_ || input.size() < config_.input_size || output.size() < config_.output_size) - return false; - try { - std::copy( - input.begin(), input.begin() + static_cast(config_.input_size), - input_buffer_.begin()); - Ort::Value input_tensor = Ort::Value::CreateTensor( - memory_info_, input_buffer_.data(), config_.input_size, input_shape_.data(), - input_shape_.size()); - Ort::Value output_tensor = Ort::Value::CreateTensor( - memory_info_, output_buffer_.data(), config_.output_size, output_shape_.data(), - output_shape_.size()); - - const char* input_names[] = {config_.input_name.c_str()}; - const char* output_names[] = {config_.output_name.c_str()}; - auto outputs = session_->Run( - Ort::RunOptions{nullptr}, input_names, &input_tensor, 1, output_names, 1); - if (outputs.size() != 1 || !outputs[0].IsTensor()) - return false; - const float* data = outputs[0].GetTensorData(); - std::copy( - data, data + static_cast(config_.output_size), output.begin()); - return true; - } catch (const Ort::Exception&) { - return false; - } - } - -private: - Ort::Env env_{ORT_LOGGING_LEVEL_WARNING, "rmcs_rl"}; - Ort::SessionOptions session_options_; - Ort::AllocatorWithDefaultOptions allocator_; - Ort::MemoryInfo memory_info_{nullptr}; - std::unique_ptr session_; - std::vector input_shape_; - std::vector output_shape_; - std::vector input_buffer_; - std::vector output_buffer_; - Config config_; -}; - -} // namespace rmcs_rl diff --git a/include/rmcs_rl/rl_bridge/parameters.hpp b/include/rmcs_rl/parameters.hpp similarity index 100% rename from include/rmcs_rl/rl_bridge/parameters.hpp rename to include/rmcs_rl/parameters.hpp diff --git a/include/rmcs_rl/rl_bridge/action_channel.hpp b/include/rmcs_rl/rl_bridge/action_channel.hpp index b46a479..e948bf4 100644 --- a/include/rmcs_rl/rl_bridge/action_channel.hpp +++ b/include/rmcs_rl/rl_bridge/action_channel.hpp @@ -1,11 +1,8 @@ #pragma once -#include -#include -#include #include -#include #include +#include #include #include @@ -18,42 +15,14 @@ namespace rmcs_rl { class ActionChannel { public: - void resize(std::size_t action_size) { incoming_.action.assign(action_size, 0.0); } - - void store(const rmcs_rl::msg::Action& message) { - const auto received = std::chrono::steady_clock::now(); - - const std::uint64_t sequence = action_sequence_.load(std::memory_order_relaxed); - action_sequence_.store(sequence + 1, std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_release); - - incoming_.obs_seq = message.obs_seq; - incoming_.layout_hash = message.layout_hash; - incoming_.model_id = message.model_id; - incoming_.received = received; - std::copy(message.action.begin(), message.action.end(), incoming_.action.begin()); - - std::atomic_thread_fence(std::memory_order_release); - action_sequence_.store(sequence + 2, std::memory_order_relaxed); - } - - bool try_read(ActionSnapshot& snapshot) { - for (int attempt = 0; attempt < 4; ++attempt) { - const std::uint64_t before = action_sequence_.load(std::memory_order_relaxed); - if (before == 0 || (before & 1U) != 0) - return false; - std::atomic_thread_fence(std::memory_order_acquire); - snapshot = incoming_; - std::atomic_thread_fence(std::memory_order_acquire); - if (action_sequence_.load(std::memory_order_relaxed) == before) - return true; - } - return false; - } + void resize(std::size_t action_size); + void store(const rmcs_rl::msg::Action& message); + bool try_read(ActionSnapshot& snapshot); private: ActionSnapshot incoming_; - alignas(64) std::atomic action_sequence_{0}; + std::mutex mutex_; + bool received_ = false; }; void write_actions( diff --git a/include/rmcs_rl/rl_bridge/config.hpp b/include/rmcs_rl/rl_bridge/config.hpp new file mode 100644 index 0000000..7b5ab24 --- /dev/null +++ b/include/rmcs_rl/rl_bridge/config.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include +#include +#include +#include +#include + +#include +#include +#include + +namespace rmcs_rl { + +struct BridgeConfig { + JointConfig joint_config; + std::vector obs_terms; + std::vector action_terms; + std::size_t obs_size = 0; + std::size_t obs_frame_size = 0; + std::size_t history_length = 1; + std::size_t action_size = 0; + std::string rl_base; + double policy_rate = 50.0; + double max_action_age = 0.04; + std::chrono::nanoseconds pub_period{}; + std::uint64_t expected_model_id = 0; + InvalidMode invalid_mode = InvalidMode::kNaN; + std::string enable_path; + bool enable_default = false; + std::string reset_path; +}; + +BridgeConfig load_bridge_config(rclcpp::Node& node); + +} // namespace rmcs_rl diff --git a/include/rmcs_rl/rl_bridge/observation_history.hpp b/include/rmcs_rl/rl_bridge/observation_history.hpp new file mode 100644 index 0000000..b08f31d --- /dev/null +++ b/include/rmcs_rl/rl_bridge/observation_history.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include + +namespace rmcs_rl { + +// Frames are oldest first; startup and reset fill the history with the first valid frame. +class ObservationHistory { +public: + ObservationHistory(std::size_t frame_size, std::size_t history_length); + const std::vector& append(std::span frame); + void reset(); + +private: + std::size_t frame_size_; + std::vector values_; + bool initialized_ = false; +}; + +} // namespace rmcs_rl diff --git a/include/rmcs_rl/rl_bridge/observation_timeline.hpp b/include/rmcs_rl/rl_bridge/observation_timeline.hpp new file mode 100644 index 0000000..bd322d2 --- /dev/null +++ b/include/rmcs_rl/rl_bridge/observation_timeline.hpp @@ -0,0 +1,49 @@ +#pragma once + +#include +#include +#include + +namespace rmcs_rl { + +class ObservationTimeline { +public: + using Clock = std::chrono::steady_clock; + + bool due(Clock::time_point now, std::chrono::nanoseconds period) const { + return !started_ || now - current_time_ >= period; + } + + std::uint64_t publish(Clock::time_point now) { + previous_valid_ = started_; + previous_time_ = current_time_; + current_time_ = now; + started_ = true; + return ++sequence_; + } + + double age(std::uint64_t sequence, Clock::time_point now) const { + if (started_ && sequence == sequence_) + return std::chrono::duration(now - current_time_).count(); + if (previous_valid_ && sequence == sequence_ - 1) + return std::chrono::duration(now - previous_time_).count(); + return std::numeric_limits::quiet_NaN(); + } + + void reset() { + // Keep IDs monotonic so a delayed action cannot match a new frame after reset. + started_ = previous_valid_ = false; + current_time_ = previous_time_ = {}; + } + + [[nodiscard]] std::uint64_t sequence() const { return sequence_; } + +private: + Clock::time_point current_time_{}; + Clock::time_point previous_time_{}; + std::uint64_t sequence_ = 0; + bool started_ = false; + bool previous_valid_ = false; +}; + +} // namespace rmcs_rl diff --git a/include/rmcs_rl/rl_bridge/types.hpp b/include/rmcs_rl/rl_bridge/types.hpp index 705cbe9..a8d7f35 100644 --- a/include/rmcs_rl/rl_bridge/types.hpp +++ b/include/rmcs_rl/rl_bridge/types.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -10,7 +9,6 @@ #include #include -#include #include #include @@ -81,7 +79,6 @@ struct ActionTerm { struct Slot { std::string path; Binding binding = Binding::kDouble; - bool required = true; std::unique_ptr> double_value; std::unique_ptr> bool_value; std::unique_ptr> int_value; @@ -98,7 +95,6 @@ struct ActionSnapshot { std::uint64_t layout_hash = 0; std::uint64_t model_id = 0; std::vector action; - std::chrono::steady_clock::time_point received{}; }; } // namespace rmcs_rl diff --git a/models/policy_drive.onnx b/models/policy_drive.onnx deleted file mode 100644 index cdbb0b063d68463c0f8e9162eecfcb0c30c92409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1417 zcmaKs!A{#i5Qgh`jki+>){0glM<03!6)p(@5((N6I1q^gf>SS+6A-Z!>NFI4+C;xmiyIyH4d-5ZR?}wwB)!5$IZgl zqQsBWWRfQS=i1wO%$2j%dJU|{V4U96tI}}nzBJxUf6s=1Gqo}Qi@!rc?^v`%%3LPZ zD3ofHNQq@q%|fYWi4zZit6nm7yDE5|8;OXejD0l%*L7GT$o{p)6(5`Euflt^5UsF}@ zDu_muYh}JGbTrSrPf3hYpImoZWY8*x1JDu+J zwcl)E&-!J47YOaTCYpQ~2b99PI4JAlkDh$)Ft-au+GQfyC@ygNoRUw1z<87@DLWV@ zA>Mg4%j=E9i7T{Ka2JG;e|sNHM)i-std_msgs pluginlib - ament_lint_auto - ament_lint_common + ament_cmake_gtest rosidl_interface_packages diff --git a/src/rl_bridge/parameters.cpp b/src/parameters.cpp similarity index 80% rename from src/rl_bridge/parameters.cpp rename to src/parameters.cpp index f230b7d..ec1a401 100644 --- a/src/rl_bridge/parameters.cpp +++ b/src/parameters.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include @@ -17,7 +17,7 @@ std::optional number_parameter(rclcpp::Node& node, const std::string& na case rclcpp::ParameterType::PARAMETER_DOUBLE: return parameter.as_double(); case rclcpp::ParameterType::PARAMETER_INTEGER: return static_cast(parameter.as_int()); case rclcpp::ParameterType::PARAMETER_NOT_SET: return std::nullopt; - default: throw std::invalid_argument("RlBridge: parameter '" + name + "' must be a number"); + default: throw std::invalid_argument("rmcs_rl: parameter '" + name + "' must be a number"); } } @@ -26,7 +26,7 @@ double number_or(rclcpp::Node& node, const std::string& name, double fallback) { if (!value.has_value()) return fallback; if (!std::isfinite(*value)) - throw std::invalid_argument("RlBridge: parameter '" + name + "' is not finite"); + throw std::invalid_argument("rmcs_rl: parameter '" + name + "' is not finite"); return *value; } @@ -40,8 +40,8 @@ std::uint64_t parse_u64(const std::string& text, const std::string& name) { return static_cast(value); } catch (const std::exception&) { throw std::invalid_argument( - "RlBridge: parameter '" + name - + "' must be a decimal or 0x-prefixed 64-bit id, got '" + text + "'"); + "rmcs_rl: parameter '" + name + "' must be a decimal or 0x-prefixed 64-bit id, got '" + + text + "'"); } } @@ -51,7 +51,7 @@ std::optional integer_parameter(rclcpp::Node& node, const std::str return std::nullopt; const auto rounded = std::llround(*value); if (std::abs(*value - static_cast(rounded)) > 1e-9) - throw std::invalid_argument("RlBridge: parameter '" + name + "' must be an integer"); + throw std::invalid_argument("rmcs_rl: parameter '" + name + "' must be an integer"); return rounded; } @@ -66,7 +66,7 @@ bool bool_or(rclcpp::Node& node, const std::string& name, bool fallback) { if (parameter.get_type() == rclcpp::ParameterType::PARAMETER_NOT_SET) return fallback; if (parameter.get_type() != rclcpp::ParameterType::PARAMETER_BOOL) - throw std::invalid_argument("RlBridge: parameter '" + name + "' must be a boolean"); + throw std::invalid_argument("rmcs_rl: parameter '" + name + "' must be a boolean"); return parameter.as_bool(); } @@ -81,7 +81,7 @@ std::string string_or(rclcpp::Node& node, const std::string& name, const std::st if (parameter.get_type() == rclcpp::ParameterType::PARAMETER_NOT_SET) return fallback; if (parameter.get_type() != rclcpp::ParameterType::PARAMETER_STRING) - throw std::invalid_argument("RlBridge: parameter '" + name + "' must be a string"); + throw std::invalid_argument("rmcs_rl: parameter '" + name + "' must be a string"); return parameter.as_string(); } @@ -91,7 +91,7 @@ std::vector string_array_or(rclcpp::Node& node, const std::string& if (!node.get_parameter(name, value)) return {}; } catch (const std::exception&) { - throw std::invalid_argument("RlBridge: parameter '" + name + "' must be a list of strings"); + throw std::invalid_argument("rmcs_rl: parameter '" + name + "' must be a list of strings"); } return value; } diff --git a/src/policy/onnx_runtime.cpp b/src/policy/onnx_runtime.cpp new file mode 100644 index 0000000..2ea9857 --- /dev/null +++ b/src/policy/onnx_runtime.cpp @@ -0,0 +1,76 @@ +#include "onnx_runtime.hpp" + +#include +#include + +namespace rmcs_rl { + +OnnxRuntime::OnnxRuntime( + const std::string& model_path, const std::string& input_name, const std::string& output_name) + : input_name_(input_name) + , output_name_(output_name) { + Ort::SessionOptions options; + options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_ALL); + options.SetIntraOpNumThreads(1); + options.SetInterOpNumThreads(1); + session_ = Ort::Session{env_, model_path.c_str(), options}; + + if (session_.GetInputCount() != 1 || session_.GetOutputCount() != 1) + throw std::invalid_argument("model must have exactly one input and one output"); + const auto actual_input = session_.GetInputNameAllocated(0, allocator_); + const auto actual_output = session_.GetOutputNameAllocated(0, allocator_); + if (actual_input.get() != input_name_ || actual_output.get() != output_name_) + throw std::invalid_argument( + "tensor names must be '" + input_name_ + "' / '" + output_name_ + "', got '" + + actual_input.get() + "' / '" + actual_output.get() + "'"); + + const auto input_type = session_.GetInputTypeInfo(0); + const auto output_type = session_.GetOutputTypeInfo(0); + const auto input_info = input_type.GetTensorTypeAndShapeInfo(); + const auto output_info = output_type.GetTensorTypeAndShapeInfo(); + if (input_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT + || output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) + throw std::invalid_argument("tensor element type must be float32"); + + const auto input_shape = input_info.GetShape(); + const auto output_shape = output_info.GetShape(); + if (input_shape.size() != 2 || output_shape.size() != 2) + throw std::invalid_argument("tensor rank must be 2 ([batch, N])"); + if ((input_shape[0] != 1 && input_shape[0] != -1) + || (output_shape[0] != 1 && output_shape[0] != -1)) + throw std::invalid_argument("batch dimension must be 1 or dynamic"); + if (input_shape[1] <= 0 || output_shape[1] <= 0) + throw std::invalid_argument("feature dimensions must be concrete positive values"); + + // The server evaluates one robot observation, even when the exported batch is dynamic. + input_shape_ = {1, input_shape[1]}; + input_buffer_.resize(static_cast(input_shape[1])); + output_size_ = static_cast(output_shape[1]); +} + +std::optional OnnxRuntime::metadata(const char* key) const { + const auto model_metadata = session_.GetModelMetadata(); + const auto value = model_metadata.LookupCustomMetadataMapAllocated(key, allocator_); + if (!value) + return std::nullopt; + return std::string{value.get()}; +} + +void OnnxRuntime::run(std::span input, std::span output) { + if (input.size() != input_size() || output.size() != output_size()) + throw std::invalid_argument("inference buffers do not match model dimensions"); + std::copy(input.begin(), input.end(), input_buffer_.begin()); + auto tensor = Ort::Value::CreateTensor( + memory_info_, input_buffer_.data(), input_buffer_.size(), input_shape_.data(), + input_shape_.size()); + const char* input_names[] = {input_name_.c_str()}; + const char* output_names[] = {output_name_.c_str()}; + const auto outputs = + session_.Run(Ort::RunOptions{nullptr}, input_names, &tensor, 1, output_names, 1); + if (outputs.size() != 1 || !outputs[0].IsTensor() + || outputs[0].GetTensorTypeAndShapeInfo().GetElementCount() != output_size()) + throw std::runtime_error("inference output does not match model dimensions"); + std::copy_n(outputs[0].GetTensorData(), output_size(), output.begin()); +} + +} // namespace rmcs_rl diff --git a/src/policy/onnx_runtime.hpp b/src/policy/onnx_runtime.hpp new file mode 100644 index 0000000..791275e --- /dev/null +++ b/src/policy/onnx_runtime.hpp @@ -0,0 +1,39 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace rmcs_rl { + +class OnnxRuntime { +public: + OnnxRuntime( + const std::string& model_path, const std::string& input_name, + const std::string& output_name); + + [[nodiscard]] std::size_t input_size() const { return input_buffer_.size(); } + [[nodiscard]] std::size_t output_size() const { return output_size_; } + [[nodiscard]] std::optional metadata(const char* key) const; + + void run(std::span input, std::span output); + +private: + Ort::Env env_{ORT_LOGGING_LEVEL_WARNING, "rmcs_rl"}; + Ort::AllocatorWithDefaultOptions allocator_; + Ort::MemoryInfo memory_info_{Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault)}; + Ort::Session session_{nullptr}; + std::string input_name_; + std::string output_name_; + std::array input_shape_{}; + std::vector input_buffer_; + std::size_t output_size_ = 0; +}; + +} // namespace rmcs_rl diff --git a/src/policy/policy_model.cpp b/src/policy/policy_model.cpp new file mode 100644 index 0000000..f950d14 --- /dev/null +++ b/src/policy/policy_model.cpp @@ -0,0 +1,145 @@ +#include "policy_model.hpp" + +#include +#include +#include + +#include + +namespace rmcs_rl { +namespace { + +double parse_number(const std::string& text, const char* key) { + std::size_t consumed = 0; + const double value = std::stod(text, &consumed); + if (consumed != text.size() || !std::isfinite(value)) + throw std::invalid_argument(std::string{"non-finite or invalid metadata: "} + key); + return value; +} + +std::vector parse_numbers(const std::string& text, const char* key) { + std::vector result; + for (std::size_t begin = 0; begin < text.size();) { + begin = text.find_first_not_of(", \t", begin); + if (begin == std::string::npos) + break; + const auto end = text.find_first_of(", \t", begin); + result.push_back(parse_number(text.substr(begin, end - begin), key)); + if (end == std::string::npos) + break; + begin = end; + } + return result; +} + +std::optional clip_metadata(const OnnxRuntime& runtime, const char* key) { + const auto text = runtime.metadata(key); + if (!text || text->empty()) + return std::nullopt; + const double value = parse_number(*text, key); + if (value <= 0.0) + throw std::invalid_argument(std::string{key} + " must be positive"); + return value; +} + +} // namespace + +PolicyModel::PolicyModel(const Config& config) + : runtime_(config.path, config.input_name, config.output_name) { + info_.path = config.path; + info_.obs_size = runtime_.input_size(); + info_.action_size = runtime_.output_size(); + std::string error; + if (!model_id_of_file(config.path, info_.model_id, error)) + throw std::runtime_error(error); + + info_.obs_signature = runtime_.metadata("rmcs_obs_layout").value_or(""); + info_.actions_signature = runtime_.metadata("rmcs_actions_layout").value_or(""); + info_.version = runtime_.metadata("policy_version").value_or(""); + if (info_.obs_signature.empty() || info_.actions_signature.empty()) + throw std::invalid_argument( + "model is missing rmcs_obs_layout / rmcs_actions_layout; " + "stamp it with tool/stamp_layout_metadata.py before deploying"); + info_.layout_hash = rmcs_rl::layout_hash( + info_.obs_signature, info_.actions_signature, info_.obs_size, info_.action_size); + if (const auto declared = runtime_.metadata("policy_layout_hash"); + declared && !declared->empty()) { + std::size_t consumed = 0; + const auto hash = std::stoull(*declared, &consumed, 16); + if (consumed != declared->size() || hash != info_.layout_hash) + throw std::invalid_argument( + "policy_layout_hash does not match layout metadata: expected " + + hex16(info_.layout_hash)); + } + + load_normalization(config); + obs_buffer_.resize(info_.obs_size); + action_buffer_.resize(info_.action_size); +} + +void PolicyModel::load_normalization(const Config& config) { + if (config.normalization_from_metadata) { + const auto mean = runtime_.metadata("rmcs_obs_mean"); + const auto deviation = runtime_.metadata("rmcs_obs_std"); + if (mean.has_value() != deviation.has_value()) + throw std::invalid_argument("rmcs_obs_mean and rmcs_obs_std must appear together"); + if (mean && deviation) { + obs_mean_ = parse_numbers(*mean, "rmcs_obs_mean"); + obs_std_ = parse_numbers(*deviation, "rmcs_obs_std"); + if (obs_mean_.size() != info_.obs_size || obs_std_.size() != info_.obs_size) + throw std::invalid_argument("normalization metadata does not match obs_size"); + if (std::any_of( + obs_std_.begin(), obs_std_.end(), [](double value) { return value <= 0; })) + throw std::invalid_argument("rmcs_obs_std must be positive"); + } + obs_clip_ = clip_metadata(runtime_, "rmcs_obs_clip"); + action_clip_ = clip_metadata(runtime_, "rmcs_action_clip"); + } + if (config.obs_clip) + obs_clip_ = config.obs_clip; + if (config.action_clip) + action_clip_ = config.action_clip; + for (const auto clip : {obs_clip_, action_clip_}) + if (clip && (!std::isfinite(*clip) || *clip < 0.0)) + throw std::invalid_argument("clip parameter must be finite and non-negative"); +} + +bool PolicyModel::run( + std::span observation, std::span action, std::string& error) { + error.clear(); + if (observation.size() != info_.obs_size || action.size() != info_.action_size) { + error = "observation/action dimensions do not match model"; + return false; + } + for (std::size_t i = 0; i < observation.size(); ++i) { + double value = observation[i]; + if (!obs_mean_.empty()) + value = (value - obs_mean_[i]) / obs_std_[i]; + if (obs_clip_) + value = std::clamp(value, -*obs_clip_, *obs_clip_); + obs_buffer_[i] = static_cast(value); + if (!std::isfinite(obs_buffer_[i])) { + error = "non-finite observation at index " + std::to_string(i); + return false; + } + } + try { + runtime_.run(obs_buffer_, action_buffer_); + } catch (const std::exception& exception) { + error = exception.what(); + return false; + } + if (!std::all_of(action_buffer_.begin(), action_buffer_.end(), [](float value) { + return std::isfinite(value); + })) { + error = "policy output contains non-finite values"; + return false; + } + for (std::size_t i = 0; i < action.size(); ++i) { + const double value = action_buffer_[i]; + action[i] = action_clip_ ? std::clamp(value, -*action_clip_, *action_clip_) : value; + } + return true; +} + +} // namespace rmcs_rl diff --git a/src/policy/policy_model.hpp b/src/policy/policy_model.hpp new file mode 100644 index 0000000..e12ccf7 --- /dev/null +++ b/src/policy/policy_model.hpp @@ -0,0 +1,54 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "onnx_runtime.hpp" + +namespace rmcs_rl { + +class PolicyModel { +public: + struct Config { + std::string path; + std::string input_name = "obs"; + std::string output_name = "actions"; + bool normalization_from_metadata = true; + std::optional obs_clip; + std::optional action_clip; + }; + + struct Info { + std::string path; + std::string obs_signature; + std::string actions_signature; + std::string version; + std::size_t obs_size = 0; + std::size_t action_size = 0; + std::uint64_t layout_hash = 0; + std::uint64_t model_id = 0; + }; + + explicit PolicyModel(const Config& config); + + [[nodiscard]] const Info& info() const { return info_; } + bool run(std::span observation, std::span action, std::string& error); + +private: + void load_normalization(const Config& config); + + OnnxRuntime runtime_; + Info info_; + std::vector obs_mean_; + std::vector obs_std_; + std::optional obs_clip_; + std::optional action_clip_; + std::vector obs_buffer_; + std::vector action_buffer_; +}; + +} // namespace rmcs_rl diff --git a/src/policy_server.cpp b/src/policy_server.cpp index 4c6e872..6039c40 100644 --- a/src/policy_server.cpp +++ b/src/policy_server.cpp @@ -1,88 +1,27 @@ - #include #include #include -#include #include #include #include #include -#include #include -#include #include #include +#include #include #include -#include -#include -#include -#include #include -#include #include #include #include - -#include +#include #include -namespace rmcs_rl { - -namespace { - -std::vector parse_float_list(const std::string& text, const char* what) { - std::vector values; - std::size_t begin = 0; - while (begin <= text.size()) { - const auto end = text.find_first_of(", \t", begin); - const auto piece = - text.substr(begin, end == std::string::npos ? std::string::npos : end - begin); - if (!piece.empty()) { - try { - std::size_t consumed = 0; - const double value = std::stod(piece, &consumed); - if (consumed != piece.size()) - throw std::invalid_argument("trailing"); - values.push_back(value); - } catch (const std::exception&) { - throw std::invalid_argument( - std::string{"policy_server: metadata "} + what + " has a non-number '" + piece - + "'"); - } - } - if (end == std::string::npos) - break; - begin = end + 1; - } - return values; -} +#include "policy/policy_model.hpp" -std::optional parse_float(const std::string& text) { - try { - std::size_t consumed = 0; - const double value = std::stod(text, &consumed); - if (consumed != text.size()) - return std::nullopt; - return value; - } catch (const std::exception&) { - return std::nullopt; - } -} - -double parse_clip_metadata(const std::string& text, const char* key) { - const auto value = parse_float(text); - if (!value.has_value()) - throw std::runtime_error( - std::string{"policy_server: metadata "} + key + "=" + text + " is not a float"); - if (!std::isfinite(*value) || *value <= 0.0) - throw std::runtime_error( - std::string{"policy_server: metadata "} + key + " must be finite and > 0, got " + text); - return *value; -} - -} // namespace +namespace rmcs_rl { class PolicyServer final : public rclcpp::Node { public: @@ -90,282 +29,87 @@ class PolicyServer final : public rclcpp::Node { : Node( "policy_server", rclcpp::NodeOptions{}.automatically_declare_parameters_from_overrides(true)) { - - rl_base_ = string_or_("rl_base", "/rl"); - - const std::string model_path = string_or_("rl_model_path", ""); - if (model_path.empty()) + const auto rl_base = string_or(*this, "rl_base", "/rl"); + PolicyModel::Config config; + config.path = string_or(*this, "rl_model_path", ""); + if (config.path.empty()) throw std::invalid_argument("policy_server: parameter 'rl_model_path' is required"); - resolved_model_path_ = resolve_model_path_(model_path); - - std::string load_error; - OnnxRuntimeInference::Config inference_config; - inference_config.model_path = resolved_model_path_; - inference_config.input_name = string_or_("input_name", "obs"); - inference_config.output_name = string_or_("output_name", "actions"); - if (!inference_.load(inference_config, load_error)) - throw std::runtime_error( - "policy_server: cannot load '" + resolved_model_path_ + "': " + load_error); - - obs_size_ = inference_.input_size(); - action_size_ = inference_.output_size(); - if (obs_size_ == 0 || action_size_ == 0) - throw std::runtime_error("policy_server: model has zero-sized obs/action tensor"); - - std::string model_id_error; - if (!model_id_of_file(resolved_model_path_, model_id_, model_id_error)) - throw std::runtime_error("policy_server: " + model_id_error); - - const auto obs_layout = inference_.metadata("rmcs_obs_layout"); - const auto actions_layout = inference_.metadata("rmcs_actions_layout"); - if (!obs_layout || obs_layout->empty() || !actions_layout || actions_layout->empty()) - throw std::runtime_error( - "policy_server: model '" + resolved_model_path_ - + "' is missing metadata 'rmcs_obs_layout' / 'rmcs_actions_layout'; stamp it with " - "tool/stamp_layout_metadata.py before deploying (see " - "planning/docs/bridge-design.md §6)"); - obs_signature_ = *obs_layout; - actions_signature_ = *actions_layout; - policy_version_ = inference_.metadata("policy_version").value_or(""); - layout_hash_ = - rmcs_rl::layout_hash(obs_signature_, actions_signature_, obs_size_, action_size_); - - if (const auto declared = inference_.metadata("policy_layout_hash"); - declared && !declared->empty()) { - std::uint64_t declared_hash = 0; - try { - declared_hash = std::stoull(*declared, nullptr, 16); - } catch (const std::exception&) { - throw std::runtime_error( - "policy_server: metadata 'policy_layout_hash' is not a " - "hex string: '" - + *declared + "'"); - } - if (declared_hash != layout_hash_) - throw std::runtime_error( - "policy_server: metadata 'policy_layout_hash'=" + *declared - + " does not match the hash computed from the layout metadata (" - + hex16(layout_hash_) + "); re-stamp the model"); - } - - load_normalization_(); - - action_publisher_ = create_publisher( - rl_base_ + "/action", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort()); - observation_subscription_ = create_subscription( - rl_base_ + "/obs", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort(), - [this](rmcs_rl::msg::Observation::UniquePtr message) { - on_observation_(std::move(message)); - }); - - if (bool_or_("publish_status", false)) { - status_publisher_ = create_publisher( - rl_base_ + "/policy_status", + if (config.path.front() != '/') + config.path = + ament_index_cpp::get_package_share_directory("rmcs_rl") + "/" + config.path; + config.input_name = string_or(*this, "input_name", "obs"); + config.output_name = string_or(*this, "output_name", "actions"); + config.normalization_from_metadata = bool_or(*this, "normalization_from_metadata", true); + if (const double clip = number_or(*this, "obs_clip", -1.0); clip >= 0.0) + config.obs_clip = clip; + if (const double clip = number_or(*this, "action_clip", -1.0); clip >= 0.0) + config.action_clip = clip; + model_ = std::make_unique(config); + + action_publisher_ = create_publisher( + rl_base + "/action", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort()); + observation_subscription_ = create_subscription( + rl_base + "/obs", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort(), + [this](msg::Observation::UniquePtr message) { on_observation(std::move(message)); }); + if (bool_or(*this, "publish_status", false)) { + status_publisher_ = create_publisher( + rl_base + "/policy_status", rclcpp::QoS{rclcpp::KeepLast(1)}.transient_local().best_effort()); - const double rate = std::max(number_or_("status_rate", 2.0), 0.1); + const double rate = std::max(number_or(*this, "status_rate", 2.0), 0.1); status_timer_ = create_wall_timer( - std::chrono::duration(1.0 / rate), [this]() { publish_status_(); }); + std::chrono::duration(1.0 / rate), [this]() { publish_status(); }); } - RCLCPP_INFO(get_logger(), "policy loaded: %s", resolved_model_path_.c_str()); - RCLCPP_INFO(get_logger(), " model_id : %s", hex16(model_id_).c_str()); + const auto& info = model_->info(); + RCLCPP_INFO(get_logger(), "policy loaded: %s", info.path.c_str()); RCLCPP_INFO( - get_logger(), " policy_version: %s", - policy_version_.empty() ? "(none)" : policy_version_.c_str()); - RCLCPP_INFO(get_logger(), " obs_size=%zu action_size=%zu", obs_size_, action_size_); - RCLCPP_INFO(get_logger(), " obs signature : %s", obs_signature_.c_str()); - RCLCPP_INFO(get_logger(), " action signature : %s", actions_signature_.c_str()); - RCLCPP_INFO( - get_logger(), " layout_hash : %s (bridge must log the same value)", - hex16(layout_hash_).c_str()); - if (!obs_mean_.empty()) - RCLCPP_INFO( - get_logger(), " normalization : mean/std from metadata, obs_clip=%s", - obs_clip_.has_value() ? std::to_string(*obs_clip_).c_str() : "(none)"); - RCLCPP_INFO(get_logger(), "waiting for obs on %s/obs", rl_base_.c_str()); + get_logger(), "model_id=%s layout_hash=%s version=%s obs=%zu action=%zu", + hex16(info.model_id).c_str(), hex16(info.layout_hash).c_str(), info.version.c_str(), + info.obs_size, info.action_size); + RCLCPP_INFO(get_logger(), "obs signature: %s", info.obs_signature.c_str()); + RCLCPP_INFO(get_logger(), "action signature: %s", info.actions_signature.c_str()); + RCLCPP_INFO(get_logger(), "waiting for obs on %s/obs", rl_base.c_str()); } private: - std::string string_or_(const std::string& name, const std::string& fallback) const { - rclcpp::Parameter parameter; - try { - if (!get_parameter(name, parameter)) - return fallback; - } catch (const std::exception&) { - return fallback; - } - if (parameter.get_type() != rclcpp::ParameterType::PARAMETER_STRING) - return fallback; - return parameter.as_string(); - } - - double number_or_(const std::string& name, double fallback) const { - rclcpp::Parameter parameter; - try { - if (!get_parameter(name, parameter)) - return fallback; - } catch (const std::exception&) { - return fallback; - } - if (parameter.get_type() == rclcpp::ParameterType::PARAMETER_DOUBLE) - return parameter.as_double(); - if (parameter.get_type() == rclcpp::ParameterType::PARAMETER_INTEGER) - return static_cast(parameter.as_int()); - return fallback; - } - - bool bool_or_(const std::string& name, bool fallback) const { - rclcpp::Parameter parameter; - try { - if (!get_parameter(name, parameter)) - return fallback; - } catch (const std::exception&) { - return fallback; - } - if (parameter.get_type() != rclcpp::ParameterType::PARAMETER_BOOL) - return fallback; - return parameter.as_bool(); - } - - static std::string resolve_model_path_(const std::string& path) { - if (path.empty() || path.front() == '/') - return path; - try { - return ament_index_cpp::get_package_share_directory("rmcs_rl") + "/" + path; - } catch (const std::exception&) { - return path; - } - } - - void load_normalization_() { - const bool from_metadata = bool_or_("normalization_from_metadata", true); - if (from_metadata) { - if (const auto value = inference_.metadata("rmcs_obs_mean"); value && !value->empty()) - obs_mean_ = parse_float_list(*value, "rmcs_obs_mean"); - if (const auto value = inference_.metadata("rmcs_obs_std"); value && !value->empty()) - obs_std_ = parse_float_list(*value, "rmcs_obs_std"); - if (!obs_mean_.empty() && obs_mean_.size() != obs_size_) - throw std::runtime_error( - "policy_server: metadata rmcs_obs_mean has " + std::to_string(obs_mean_.size()) - + " values, expected " + std::to_string(obs_size_)); - if (!obs_std_.empty() && obs_std_.size() != obs_size_) - throw std::runtime_error( - "policy_server: metadata rmcs_obs_std has " + std::to_string(obs_std_.size()) - + " values, expected " + std::to_string(obs_size_)); - if (!obs_mean_.empty() && !obs_std_.empty()) { - for (const double sigma : obs_std_) - if (!(sigma > 0.0) || !std::isfinite(sigma)) - throw std::runtime_error( - "policy_server: metadata rmcs_obs_std must be " - "finite and > 0"); - } else { - obs_mean_.clear(); - obs_std_.clear(); - } - if (const auto value = inference_.metadata("rmcs_obs_clip"); value && !value->empty()) - obs_clip_ = parse_clip_metadata(*value, "rmcs_obs_clip"); - if (const auto value = inference_.metadata("rmcs_action_clip"); - value && !value->empty()) - action_clip_ = parse_clip_metadata(*value, "rmcs_action_clip"); - } - - const double obs_clip_param = number_or_("obs_clip", -1.0); - if (obs_clip_param >= 0.0) - obs_clip_ = obs_clip_param; - const double action_clip_param = number_or_("action_clip", -1.0); - if (action_clip_param >= 0.0) - action_clip_ = action_clip_param; - - obs_buffer_.assign(obs_size_, 0.0F); - action_buffer_.assign(action_size_, 0.0F); - } - - void on_observation_(rmcs_rl::msg::Observation::UniquePtr message) { - if (message->layout_hash != layout_hash_) { + void on_observation(msg::Observation::UniquePtr message) { + const auto& info = model_->info(); + if (message->layout_hash != info.layout_hash) { if (!layout_mismatch_logged_) { layout_mismatch_logged_ = true; - RCLCPP_FATAL( - get_logger(), - "layout_hash mismatch: bridge sent %s but this model expects %s " - "(model '%s'); refusing to answer (bridge will report valid=0). " - "Check that the deployment YAML and the model metadata describe the same " - "observation/action terms.", - hex16(message->layout_hash).c_str(), hex16(layout_hash_).c_str(), - resolved_model_path_.c_str()); + RCLCPP_ERROR( + get_logger(), "layout_hash mismatch: bridge=%s model=%s; refusing actions", + hex16(message->layout_hash).c_str(), hex16(info.layout_hash).c_str()); } - ++rejected_count_; - return; - } - if (message->obs.size() != obs_size_) { - RCLCPP_ERROR_THROTTLE( - get_logger(), *get_clock(), 1000, "obs has %zu values, model expects %zu; ignoring", - message->obs.size(), obs_size_); - ++rejected_count_; return; } const auto started = std::chrono::steady_clock::now(); - - for (std::size_t i = 0; i < obs_size_; ++i) { - double value = message->obs[i]; - if (!obs_mean_.empty()) - value = (value - obs_mean_[i]) / obs_std_[i]; - if (obs_clip_.has_value()) - value = std::clamp(value, -*obs_clip_, *obs_clip_); - if (!std::isfinite(value)) { - RCLCPP_WARN_THROTTLE( - get_logger(), *get_clock(), 1000, "obs[%zu] is not finite; ignoring frame", i); - ++rejected_count_; - return; - } - obs_buffer_[i] = static_cast(value); - } - - if (!inference_.run(obs_buffer_, action_buffer_)) { - RCLCPP_ERROR_THROTTLE( - get_logger(), *get_clock(), 1000, "ONNX Runtime rejected the obs frame; ignoring"); - ++rejected_count_; - return; - } - - if (!std::all_of(action_buffer_.begin(), action_buffer_.end(), [](float value) { - return std::isfinite(value); - })) { + msg::Action action; + action.action.resize(info.action_size); + std::string error; + if (!model_->run(message->obs, action.action, error)) { RCLCPP_WARN_THROTTLE( - get_logger(), *get_clock(), 1000, - "policy output contains non-finite values; ignoring frame " - "(bridge will see a stale action and drop authority)"); - ++rejected_count_; + get_logger(), *get_clock(), 1000, "policy rejected observation: %s", error.c_str()); return; } - - rmcs_rl::msg::Action action; action.header.stamp = get_clock()->now(); action.obs_seq = message->obs_seq; - action.layout_hash = layout_hash_; - action.model_id = model_id_; - action.action.resize(action_size_); - for (std::size_t i = 0; i < action_size_; ++i) { - double value = static_cast(action_buffer_[i]); - if (action_clip_.has_value()) - value = std::clamp(value, -*action_clip_, *action_clip_); - action.action[i] = value; - } + action.layout_hash = info.layout_hash; + action.model_id = info.model_id; action_publisher_->publish(action); - const auto elapsed = std::chrono::duration(std::chrono::steady_clock::now() - started); - record_inference_time_(elapsed.count()); - ++served_count_; + record_inference_time(elapsed.count()); } - void record_inference_time_(double microseconds) { + void record_inference_time(double microseconds) { inference_window_[inference_window_cursor_] = microseconds; inference_window_cursor_ = (inference_window_cursor_ + 1) % inference_window_.size(); inference_window_count_ = std::min(inference_window_count_ + 1, inference_window_.size()); } - double percentile_(double fraction) const { + double percentile(double fraction) const { if (inference_window_count_ == 0) return 0.0; std::vector samples( @@ -376,53 +120,30 @@ class PolicyServer final : public rclcpp::Node { return samples[std::min(index, samples.size() - 1)]; } - void publish_status_() { - if (!status_publisher_) - return; - rmcs_rl::msg::PolicyStatus status; + void publish_status() { + const auto& info = model_->info(); + msg::PolicyStatus status; status.header.stamp = get_clock()->now(); - status.model_name = resolved_model_path_; - status.model_id = model_id_; - status.policy_version = policy_version_; - status.layout_hash = layout_hash_; - status.obs_size = static_cast(obs_size_); - status.action_size = static_cast(action_size_); - status.inference_p50_us = percentile_(0.50); - status.inference_p99_us = percentile_(0.99); + status.model_name = info.path; + status.model_id = info.model_id; + status.policy_version = info.version; + status.layout_hash = info.layout_hash; + status.obs_size = static_cast(info.obs_size); + status.action_size = static_cast(info.action_size); + status.inference_p50_us = percentile(0.50); + status.inference_p99_us = percentile(0.99); status_publisher_->publish(status); } - std::string rl_base_; - std::string resolved_model_path_; - std::string obs_signature_; - std::string actions_signature_; - std::string policy_version_; - std::size_t obs_size_ = 0; - std::size_t action_size_ = 0; - std::uint64_t layout_hash_ = 0; - std::uint64_t model_id_ = 0; - - std::vector obs_mean_; - std::vector obs_std_; - std::optional obs_clip_; - std::optional action_clip_; - - std::vector obs_buffer_; - std::vector action_buffer_; - - std::uint64_t served_count_ = 0; - std::uint64_t rejected_count_ = 0; + rclcpp::Publisher::SharedPtr action_publisher_; + rclcpp::Subscription::SharedPtr observation_subscription_; + rclcpp::Publisher::SharedPtr status_publisher_; + rclcpp::TimerBase::SharedPtr status_timer_; + std::unique_ptr model_; bool layout_mismatch_logged_ = false; - std::array inference_window_{}; std::size_t inference_window_cursor_ = 0; std::size_t inference_window_count_ = 0; - - OnnxRuntimeInference inference_; - rclcpp::Publisher::SharedPtr action_publisher_; - rclcpp::Subscription::SharedPtr observation_subscription_; - rclcpp::Publisher::SharedPtr status_publisher_; - rclcpp::TimerBase::SharedPtr status_timer_; }; } // namespace rmcs_rl diff --git a/src/policy_server_launcher.cpp b/src/policy_server_launcher.cpp index baf4677..c82f0ec 100644 --- a/src/policy_server_launcher.cpp +++ b/src/policy_server_launcher.cpp @@ -17,13 +17,10 @@ #include #include #include +#include namespace rmcs_rl { -// Spawns and supervises an independent policy_server child process for the executor lifetime: -// - the component only exists in RL configs; non-RL robots are unaffected; -// - the child sets PR_SET_PDEATHSIG so the kernel reaps it when executor exits/crashes; -// - update() does a low-frequency waitpid(WNOHANG) poll with optional backoff restart. class PolicyServerLauncher : public rmcs_executor::Component , public rclcpp::Node { @@ -32,11 +29,11 @@ class PolicyServerLauncher : Node( get_component_name(), rclcpp::NodeOptions{}.automatically_declare_parameters_from_overrides(true)) { - autostart_ = bool_or_("autostart", true); - respawn_ = bool_or_("respawn", true); - respawn_delay_ = number_or_("respawn_delay", 1.0); - poll_interval_ = number_or_("poll_interval", 0.5); - params_file_ = string_or_("params_file", ""); + autostart_ = bool_or(*this, "autostart", true); + respawn_ = bool_or(*this, "respawn", true); + respawn_delay_ = number_or(*this, "respawn_delay", 1.0); + poll_interval_ = number_or(*this, "poll_interval", 0.5); + params_file_ = string_or(*this, "params_file", ""); resolve_paths_(); } @@ -63,35 +60,6 @@ class PolicyServerLauncher private: using SteadyClock = std::chrono::steady_clock; - std::string string_or_(const std::string& name, const std::string& fallback) const { - if (!has_parameter(name)) - return fallback; - const auto parameter = get_parameter(name); - if (parameter.get_type() != rclcpp::ParameterType::PARAMETER_STRING) - return fallback; - return parameter.as_string(); - } - - double number_or_(const std::string& name, double fallback) const { - if (!has_parameter(name)) - return fallback; - const auto parameter = get_parameter(name); - if (parameter.get_type() == rclcpp::ParameterType::PARAMETER_DOUBLE) - return parameter.as_double(); - if (parameter.get_type() == rclcpp::ParameterType::PARAMETER_INTEGER) - return static_cast(parameter.as_int()); - return fallback; - } - - bool bool_or_(const std::string& name, bool fallback) const { - if (!has_parameter(name)) - return fallback; - const auto parameter = get_parameter(name); - if (parameter.get_type() != rclcpp::ParameterType::PARAMETER_BOOL) - return fallback; - return parameter.as_bool(); - } - void resolve_paths_() { try { const auto share = ament_index_cpp::get_package_share_directory("rmcs_rl"); @@ -229,7 +197,8 @@ class PolicyServerLauncher ::kill(pid, SIGKILL); ::waitpid(pid, nullptr, 0); - RCLCPP_WARN(get_logger(), "policy_server (pid=%d) did not stop, killed", static_cast(pid)); + RCLCPP_WARN( + get_logger(), "policy_server (pid=%d) did not stop, killed", static_cast(pid)); } bool autostart_ = true; diff --git a/src/rl_bridge.cpp b/src/rl_bridge.cpp index 1c0336f..e175f76 100644 --- a/src/rl_bridge.cpp +++ b/src/rl_bridge.cpp @@ -3,10 +3,8 @@ #include #include #include -#include #include #include -#include #include #include #include @@ -24,11 +22,12 @@ #include #include +#include #include #include #include -#include -#include +#include +#include #include #include #include @@ -42,21 +41,30 @@ class RlBridge final explicit RlBridge() : Node( get_component_name(), - rclcpp::NodeOptions{}.automatically_declare_parameters_from_overrides(true)) { + rclcpp::NodeOptions{}.automatically_declare_parameters_from_overrides(true)) + , config_(load_bridge_config(*this)) + , history_(config_.obs_frame_size, config_.history_length) { - rl_base_ = string_or(*this, "rl_base", "/rl"); - - joint_config_ = load_joint_config(*this); - - load_action_terms_(); - load_observation_terms_(); - load_runtime_parameters_(); - - register_status_outputs_(); + for (const auto& term : config_.action_terms) { + action_outputs_.push_back(std::make_unique>()); + register_output(term.output, *action_outputs_.back(), 0.0); + own_output_paths_.insert(term.output); + } + register_output(config_.rl_base + "/valid", valid_output_, 0.0); + register_output(config_.rl_base + "/healthy", healthy_output_, 0.0); + register_output( + config_.rl_base + "/action_age", action_age_output_, + std::numeric_limits::quiet_NaN()); + register_output(config_.rl_base + "/obs_seq", obs_seq_output_, std::size_t{0}); + own_output_paths_.insert(config_.rl_base + "/valid"); + own_output_paths_.insert(config_.rl_base + "/healthy"); + own_output_paths_.insert(config_.rl_base + "/action_age"); + own_output_paths_.insert(config_.rl_base + "/obs_seq"); setup_topics_(); - - action_channel_.resize(action_size_); - read_snapshot_.action.assign(action_size_, 0.0); + last_actions_.assign(config_.action_size, 0.0); + written_.assign(config_.action_size, 0.0); + action_channel_.resize(config_.action_size); + read_snapshot_.action.assign(config_.action_size, 0.0); } void before_pairing(const OutputInfoMap& output_map) override { @@ -69,15 +77,15 @@ class RlBridge final "RlBridge: interface \"" + slot.path + "\" is produced by RlBridge itself (self reference)"); - obs_signature_ = obs_layout_signature(obs_terms_, history_length_); - actions_signature_ = actions_layout_signature(action_terms_); - layout_hash_ = - rmcs_rl::layout_hash(obs_signature_, actions_signature_, obs_size_, action_size_); + obs_signature_ = obs_layout_signature(config_.obs_terms, config_.history_length); + actions_signature_ = actions_layout_signature(config_.action_terms); + layout_hash_ = rmcs_rl::layout_hash( + obs_signature_, actions_signature_, config_.obs_size, config_.action_size); log_layout_(); RCLCPP_INFO( - get_logger(), "contract: obs_size=%zu action_size=%zu policy_rate=%.3f Hz", obs_size_, - action_size_, policy_rate_); + get_logger(), "contract: obs_size=%zu action_size=%zu policy_rate=%.3f Hz", + config_.obs_size, config_.action_size, config_.policy_rate); RCLCPP_INFO( get_logger(), "layout_hash=%s (obs/action signatures below)", hex16(layout_hash_).c_str()); @@ -85,7 +93,7 @@ class RlBridge final RCLCPP_INFO(get_logger(), " action signature : %s", actions_signature_.c_str()); RCLCPP_INFO( get_logger(), "topics: %s/obs -> %s/action (best_effort, keep_last=1)", - rl_base_.c_str(), rl_base_.c_str()); + config_.rl_base.c_str(), config_.rl_base.c_str()); } void update() override { @@ -101,8 +109,8 @@ class RlBridge final bool seq_ok = false; bool finite = true; if (has_snapshot) { - age = obs_age_of(snapshot.obs_seq, now); - seq_ok = (snapshot.obs_seq == pub_seq_) || (snapshot.obs_seq + 1 == pub_seq_); + age = timeline_.age(snapshot.obs_seq, now); + seq_ok = std::isfinite(age); finite = std::all_of(snapshot.action.begin(), snapshot.action.end(), [](double value) { return std::isfinite(value); }); @@ -110,10 +118,11 @@ class RlBridge final } const bool enabled = read_enable_(); - const bool fresh = has_snapshot && is_finite(age) && age <= max_action_age_; + const bool fresh = has_snapshot && is_finite(age) && age <= config_.max_action_age; const bool valid = enabled && contract_ok_ && has_snapshot && fresh && seq_ok && finite; - write_actions(valid, snapshot, action_terms_, invalid_mode_, written_, action_outputs_); + write_actions( + valid, snapshot, config_.action_terms, config_.invalid_mode, written_, action_outputs_); if (valid) last_actions_ = snapshot.action; @@ -121,7 +130,7 @@ class RlBridge final *valid_output_ = valid ? 1.0 : 0.0; *healthy_output_ = (contract_ok_ && fresh) ? 1.0 : 0.0; *action_age_output_ = age; - *obs_seq_output_ = pub_seq_; + *obs_seq_output_ = timeline_.sequence(); if (valid != last_valid_) { if (valid) { @@ -140,130 +149,16 @@ class RlBridge final } private: - void load_action_terms_() { - const auto action_specs = string_array_or(*this, "action_terms"); - if (action_specs.empty()) - throw std::invalid_argument("RlBridge: required parameter 'action_terms' is missing"); - std::unordered_set output_paths; - std::set action_indices; - for (const auto& spec : action_specs) { - auto term = parse_action_term(spec); - if (!output_paths.emplace(term.output).second) - throw std::invalid_argument( - "RlBridge: two action terms map to the same output " - "interface '" - + term.output + "'"); - if (!action_indices.emplace(term.index).second) - throw std::invalid_argument( - "RlBridge: duplicate action index " + std::to_string(term.index) - + " (each slot must appear exactly once)"); - action_terms_.push_back(std::move(term)); - } - for (std::size_t i = 0; i < action_terms_.size(); ++i) - if (action_terms_[i].index != i) - throw std::invalid_argument( - "RlBridge: action indices must form the complete " - "permutation 0.." - + std::to_string(action_terms_.size() - 1) + "; got index=" - + std::to_string(action_terms_[i].index) + " at position " + std::to_string(i)); - action_size_ = action_terms_.size(); - if (const auto declared = integer_parameter(*this, "rl_action_size"); - declared.has_value() && static_cast(*declared) != action_size_) - throw std::invalid_argument( - "RlBridge: rl_action_size=" + std::to_string(*declared) + " but action_terms has " - + std::to_string(action_size_) + " entries"); - last_actions_.assign(action_size_, 0.0); - written_.assign(action_size_, 0.0); - - for (const auto& term : action_terms_) { - action_outputs_.push_back(std::make_unique>()); - register_output(term.output, *action_outputs_.back(), 0.0); - own_output_paths_.insert(term.output); - } - } - - void load_observation_terms_() { - const auto observation_specs = string_array_or(*this, "observation_terms"); - if (observation_specs.empty()) - throw std::invalid_argument( - "RlBridge: required parameter 'observation_terms' is " - "missing"); - const TermParseContext context{*this, joint_config_, action_size_}; - for (const auto& spec : observation_specs) - obs_terms_.push_back(parse_obs_term(spec, context)); - - assign_observation_indices(obs_terms_); - obs_frame_size_ = [&] { - std::size_t cursor = 0; - for (const auto& term : obs_terms_) - cursor += term.dim; - return cursor; - }(); - const auto history_length = integer_parameter(*this, "history_length").value_or(1); - if (history_length < 1 || history_length > 64) - throw std::invalid_argument("RlBridge: history_length must be in [1, 64]"); - history_length_ = static_cast(history_length); - obs_size_ = obs_frame_size_ * history_length_; - if (const auto declared = integer_parameter(*this, "rl_obs_size"); - declared.has_value() && static_cast(*declared) != obs_size_) - throw std::invalid_argument( - "RlBridge: rl_obs_size=" + std::to_string(*declared) - + " but observation frame/history contract is " + std::to_string(obs_frame_size_) - + "x" + std::to_string(history_length_) + "=" + std::to_string(obs_size_)); - } - - void load_runtime_parameters_() { - policy_rate_ = number_or(*this, "policy_rate", 50.0); - if (!(policy_rate_ > 0.0) || !is_finite(policy_rate_)) - throw std::invalid_argument("RlBridge: policy_rate must be finite and > 0"); - pub_period_ = std::chrono::duration_cast( - std::chrono::duration(1.0 / policy_rate_)); - max_action_age_ = number_or(*this, "max_action_age", 2.0 / policy_rate_); - if (!(max_action_age_ > 0.0) || !is_finite(max_action_age_)) - throw std::invalid_argument("RlBridge: max_action_age must be finite and > 0"); - expected_model_id_ = parse_u64(string_or(*this, "expected_model_id", "0"), "expected_model_id"); - - const std::string invalid = string_or(*this, "invalid_value", "nan"); - if (invalid == "nan") - invalid_mode_ = InvalidMode::kNaN; - else if (invalid == "zero") - invalid_mode_ = InvalidMode::kZero; - else if (invalid == "hold") - invalid_mode_ = InvalidMode::kHold; - else - throw std::invalid_argument( - "RlBridge: invalid_value must be nan|zero|hold " - "(quote it in YAML: invalid_value: \"nan\" — an unquoted " - "nan is parsed as a float), got '" - + string_or(*this, "invalid_value", "") + "'"); - - enable_path_ = string_or(*this, "enable_interface", rl_base_ + "/enable"); - enable_default_ = bool_or(*this, "enable_default", false); - reset_path_ = string_or(*this, "reset_interface", ""); - } - - void register_status_outputs_() { - register_output(rl_base_ + "/valid", valid_output_, 0.0); - register_output(rl_base_ + "/healthy", healthy_output_, 0.0); - register_output( - rl_base_ + "/action_age", action_age_output_, std::numeric_limits::quiet_NaN()); - register_output(rl_base_ + "/obs_seq", obs_seq_output_, std::size_t{0}); - own_output_paths_.insert(rl_base_ + "/valid"); - own_output_paths_.insert(rl_base_ + "/healthy"); - own_output_paths_.insert(rl_base_ + "/action_age"); - own_output_paths_.insert(rl_base_ + "/obs_seq"); - } - void setup_topics_() { obs_publisher_ = create_publisher( - rl_base_ + "/obs", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort()); + config_.rl_base + "/obs", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort()); action_subscription_ = create_subscription( - rl_base_ + "/action", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort(), + config_.rl_base + "/action", rclcpp::QoS{rclcpp::KeepLast(1)}.best_effort(), [this](rmcs_rl::msg::Action::UniquePtr message) { on_action_(std::move(message)); }); } void bind_observation_slots_(const OutputInfoMap& output_map) { - for (auto& term : obs_terms_) { + for (auto& term : config_.obs_terms) { switch (term.kind) { case TermKind::kConstant: case TermKind::kLastAction: break; @@ -271,11 +166,11 @@ class RlBridge final case TermKind::kJointVel: case TermKind::kJointTorque: { for (std::size_t j = 0; j < term.joints.size(); ++j) { - const auto& joint = joint_config_.names[term.joints[j]]; + const auto& joint = config_.joint_config.names[term.joints[j]]; const char field = term.kind == TermKind::kJointPos ? 'a' : term.kind == TermKind::kJointVel ? 'v' : 't'; - const auto path = joint_path(joint_config_, joint, field); + const auto path = joint_path(config_.joint_config, joint, field); term.joint_slots.push_back(acquire_slot( *this, path, {Binding::kDouble}, true, output_map, slots_, "joint term")); } @@ -289,10 +184,7 @@ class RlBridge final switch (term.take) { case Take::kScalar: candidates = { - Binding::kDouble, - Binding::kBool, - Binding::kInt, - Binding::kSize}; + Binding::kDouble, Binding::kBool, Binding::kInt, Binding::kSize}; break; case Take::kComponent: case Take::kVector: @@ -311,14 +203,14 @@ class RlBridge final } void bind_control_slots_(const OutputInfoMap& output_map) { - if (!enable_path_.empty()) + if (!config_.enable_path.empty()) enable_slot_ = acquire_slot( - *this, enable_path_, {Binding::kBool, Binding::kDouble}, false, output_map, slots_, - "enable interface"); + *this, config_.enable_path, {Binding::kBool, Binding::kDouble}, false, output_map, + slots_, "enable interface"); - if (!reset_path_.empty()) + if (!config_.reset_path.empty()) reset_slot_ = acquire_slot( - *this, reset_path_, {Binding::kSize, Binding::kInt, Binding::kDouble}, false, + *this, config_.reset_path, {Binding::kSize, Binding::kInt, Binding::kDouble}, false, output_map, slots_, "reset interface"); } @@ -333,23 +225,13 @@ class RlBridge final } void maybe_publish_observation_(std::chrono::steady_clock::time_point now) { - if (pub_started_ && now - last_pub_time_ < pub_period_) + if (!timeline_.due(now, config_.pub_period)) return; std::vector obs; - if (build_observation(obs_terms_, slots_, last_actions_, obs_size_, obs)) { - if (history_.empty()) - history_.assign(history_length_, obs); - else { - history_.pop_front(); - history_.push_back(obs); - } - std::vector stacked; - stacked.reserve(obs_size_); - for (const auto& frame : history_) - stacked.insert(stacked.end(), frame.begin(), frame.end()); - publish_observation_(stacked, now); - ++pub_ok_count_; + if (build_observation( + config_.obs_terms, slots_, last_actions_, config_.obs_frame_size, obs)) { + publish_observation_(history_.append(obs), now); } else { ++obs_invalid_count_; RCLCPP_WARN_THROTTLE( @@ -362,11 +244,11 @@ class RlBridge final bool read_enable_() const { if (enable_slot_ == kNoSlot) - return enable_default_; + return config_.enable_default; double raw = 0.0; if (!read_double(slots_[enable_slot_], raw)) - return enable_default_; - return raw != 0.0; + return config_.enable_default; + return std::isfinite(raw) && raw != 0.0; } void check_contract_(const ActionSnapshot& snapshot) { @@ -379,19 +261,20 @@ class RlBridge final "(policy process and bridge disagree; refusing to output actions)", hex16(snapshot.layout_hash).c_str(), hex16(layout_hash_).c_str()); } - } else if (expected_model_id_ != 0 && snapshot.model_id != expected_model_id_) { + } else if ( + config_.expected_model_id != 0 && snapshot.model_id != config_.expected_model_id) { if (contract_ok_) { contract_ok_ = false; RCLCPP_FATAL( get_logger(), "model mismatch: action model_id=%s != expected_model_id=%s", - hex16(snapshot.model_id).c_str(), hex16(expected_model_id_).c_str()); + hex16(snapshot.model_id).c_str(), hex16(config_.expected_model_id).c_str()); } } } void log_layout_() const { - RCLCPP_INFO(get_logger(), "observation layout (obs_size=%zu):", obs_size_); - for (const auto& term : obs_terms_) { + RCLCPP_INFO(get_logger(), "observation layout (obs_size=%zu):", config_.obs_size); + for (const auto& term : config_.obs_terms) { std::ostringstream line; line << " [" << term.index << ":" << term.index + term.dim << ") " << term.id << " scale=" << format_number(term.scale); @@ -409,8 +292,8 @@ class RlBridge final } RCLCPP_INFO(get_logger(), "%s", line.str().c_str()); } - RCLCPP_INFO(get_logger(), "action layout (action_size=%zu):", action_size_); - for (const auto& term : action_terms_) { + RCLCPP_INFO(get_logger(), "action layout (action_size=%zu):", config_.action_size); + for (const auto& term : config_.action_terms) { std::ostringstream line; line << " #" << term.index << " " << term.id << " -> " << term.output; if (term.scale != 1.0) @@ -423,47 +306,28 @@ class RlBridge final const std::vector& obs, std::chrono::steady_clock::time_point now) { rmcs_rl::msg::Observation message; message.header.stamp = get_clock()->now(); - message.header.frame_id = ""; - message.obs_seq = ++pub_seq_; + message.obs_seq = timeline_.publish(now); message.layout_hash = layout_hash_; message.obs = obs; obs_publisher_->publish(message); - - prev_pub_seq_ = pub_seq_ - 1; - prev_pub_time_ = last_pub_time_; - last_pub_time_ = now; - pub_started_ = true; } void on_action_(rmcs_rl::msg::Action::UniquePtr message) { - if (message->action.size() != action_size_) { + if (message->action.size() != config_.action_size) { RCLCPP_ERROR_THROTTLE( get_logger(), *get_clock(), 1000, "ignoring action with %zu values (expected %zu)", - message->action.size(), action_size_); + message->action.size(), config_.action_size); return; } action_channel_.store(*message); } - double obs_age_of(std::uint64_t obs_seq, std::chrono::steady_clock::time_point now) const { - if (!pub_started_) - return std::numeric_limits::quiet_NaN(); - if (obs_seq == pub_seq_) - return std::chrono::duration(now - last_pub_time_).count(); - if (obs_seq + 1 == pub_seq_) - return std::chrono::duration(now - prev_pub_time_).count(); - return std::numeric_limits::quiet_NaN(); - } - void reset_runtime_() { reset_action_state(last_actions_, written_); - history_.clear(); - pub_started_ = false; - prev_pub_seq_ = 0; + history_.reset(); + timeline_.reset(); } - // Interface storage is kept before configuration and runtime state so the component wiring - // remains visible at the class boundary. std::vector slots_; std::vector>> action_outputs_; @@ -472,25 +336,9 @@ class RlBridge final OutputInterface action_age_output_{}; OutputInterface obs_seq_output_{}; - JointConfig joint_config_; - - std::vector obs_terms_; - std::vector action_terms_; + BridgeConfig config_; std::unordered_set own_output_paths_; - std::size_t obs_size_ = 0; - std::size_t obs_frame_size_ = 0; - std::size_t history_length_ = 1; - std::size_t action_size_ = 0; - - std::string rl_base_; - double policy_rate_ = 50.0; - double max_action_age_ = 0.04; - std::uint64_t expected_model_id_ = 0; - InvalidMode invalid_mode_ = InvalidMode::kNaN; - std::string enable_path_; - bool enable_default_ = false; - std::string reset_path_; std::size_t enable_slot_ = kNoSlot; std::size_t reset_slot_ = kNoSlot; @@ -500,17 +348,11 @@ class RlBridge final std::vector last_actions_; std::vector written_; - std::deque> history_; - - std::chrono::nanoseconds pub_period_{std::chrono::milliseconds(20)}; - std::chrono::steady_clock::time_point last_pub_time_{}; - std::chrono::steady_clock::time_point prev_pub_time_{}; - bool pub_started_ = false; - std::uint64_t pub_seq_ = 0; - std::uint64_t prev_pub_seq_ = 0; + ObservationHistory history_; + + ObservationTimeline timeline_; std::uint64_t last_reset_count_ = 0; std::uint64_t obs_invalid_count_ = 0; - std::uint64_t pub_ok_count_ = 0; bool contract_ok_ = true; bool last_valid_ = false; diff --git a/src/rl_bridge/action_channel.cpp b/src/rl_bridge/action_channel.cpp index 65484de..d2f7c00 100644 --- a/src/rl_bridge/action_channel.cpp +++ b/src/rl_bridge/action_channel.cpp @@ -2,9 +2,37 @@ #include #include +#include namespace rmcs_rl { +void ActionChannel::resize(std::size_t action_size) { + const std::lock_guard lock{mutex_}; + incoming_.action.assign(action_size, 0.0); + received_ = false; +} + +void ActionChannel::store(const rmcs_rl::msg::Action& message) { + const std::lock_guard lock{mutex_}; + if (message.action.size() != incoming_.action.size()) + throw std::invalid_argument("action channel size mismatch"); + incoming_.obs_seq = message.obs_seq; + incoming_.layout_hash = message.layout_hash; + incoming_.model_id = message.model_id; + std::copy(message.action.begin(), message.action.end(), incoming_.action.begin()); + received_ = true; +} + +bool ActionChannel::try_read(ActionSnapshot& snapshot) { + // The executor must never wait for the ROS callback. A seqlock cannot protect + // concurrent reads/writes of a non-atomic vector under the C++ memory model. + const std::unique_lock lock{mutex_, std::try_to_lock}; + if (!lock.owns_lock() || !received_) + return false; + snapshot = incoming_; + return true; +} + void write_actions( bool valid, const ActionSnapshot& snapshot, const std::vector& terms, InvalidMode invalid_mode, std::vector& written, @@ -19,9 +47,7 @@ void write_actions( written[i] = value; } else { switch (invalid_mode) { - case InvalidMode::kNaN: - value = std::numeric_limits::quiet_NaN(); - break; + case InvalidMode::kNaN: value = std::numeric_limits::quiet_NaN(); break; case InvalidMode::kZero: value = 0.0; break; case InvalidMode::kHold: value = written[i]; break; } @@ -38,7 +64,7 @@ void reset_action_state(std::vector& last_actions, std::vector& std::string invalid_reason( bool enabled, bool contract_ok, bool has_snapshot, bool fresh, bool seq_ok, bool finite) { if (!contract_ok) - return "contract/model mismatch (latched; restart or re-enable)"; + return "contract/model mismatch (latched; restart required)"; if (!enabled) return "disabled by enable interface"; if (!has_snapshot) diff --git a/src/rl_bridge/config.cpp b/src/rl_bridge/config.cpp new file mode 100644 index 0000000..ab9d6d4 --- /dev/null +++ b/src/rl_bridge/config.cpp @@ -0,0 +1,108 @@ +#include + +#include +#include +#include +#include + +#include +#include +#include + +namespace rmcs_rl { + +BridgeConfig load_bridge_config(rclcpp::Node& node) { + BridgeConfig config; + config.rl_base = string_or(node, "rl_base", "/rl"); + config.joint_config = load_joint_config(node); + const auto action_specs = string_array_or(node, "action_terms"); + if (action_specs.empty()) + throw std::invalid_argument("RlBridge: required parameter 'action_terms' is missing"); + std::unordered_set output_paths; + std::set action_indices; + for (const auto& spec : action_specs) { + auto term = parse_action_term(spec); + if (!output_paths.emplace(term.output).second) + throw std::invalid_argument( + "RlBridge: two action terms map to the same output " + "interface '" + + term.output + "'"); + if (!action_indices.emplace(term.index).second) + throw std::invalid_argument( + "RlBridge: duplicate action index " + std::to_string(term.index) + + " (each slot must appear exactly once)"); + config.action_terms.push_back(std::move(term)); + } + for (std::size_t i = 0; i < config.action_terms.size(); ++i) + if (config.action_terms[i].index != i) + throw std::invalid_argument( + "RlBridge: action indices must form the complete " + "permutation 0.." + + std::to_string(config.action_terms.size() - 1) + + "; got index=" + std::to_string(config.action_terms[i].index) + " at position " + + std::to_string(i)); + config.action_size = config.action_terms.size(); + if (const auto declared = integer_parameter(node, "rl_action_size"); + declared.has_value() && static_cast(*declared) != config.action_size) + throw std::invalid_argument( + "RlBridge: rl_action_size=" + std::to_string(*declared) + " but action_terms has " + + std::to_string(config.action_size) + " entries"); + const auto observation_specs = string_array_or(node, "observation_terms"); + if (observation_specs.empty()) + throw std::invalid_argument( + "RlBridge: required parameter 'observation_terms' is " + "missing"); + const TermParseContext context{node, config.joint_config, config.action_size}; + for (const auto& spec : observation_specs) + config.obs_terms.push_back(parse_obs_term(spec, context)); + + assign_observation_indices(config.obs_terms); + config.obs_frame_size = [&] { + std::size_t cursor = 0; + for (const auto& term : config.obs_terms) + cursor += term.dim; + return cursor; + }(); + const auto history_length = integer_parameter(node, "history_length").value_or(1); + if (history_length < 1 || history_length > 64) + throw std::invalid_argument("RlBridge: history_length must be in [1, 64]"); + config.history_length = static_cast(history_length); + config.obs_size = config.obs_frame_size * config.history_length; + if (const auto declared = integer_parameter(node, "rl_obs_size"); + declared.has_value() && static_cast(*declared) != config.obs_size) + throw std::invalid_argument( + "RlBridge: rl_obs_size=" + std::to_string(*declared) + + " but observation frame/history contract is " + std::to_string(config.obs_frame_size) + + "x" + std::to_string(config.history_length) + "=" + std::to_string(config.obs_size)); + config.policy_rate = number_or(node, "policy_rate", 50.0); + if (!(config.policy_rate > 0.0) || !is_finite(config.policy_rate)) + throw std::invalid_argument("RlBridge: policy_rate must be finite and > 0"); + config.pub_period = std::chrono::duration_cast( + std::chrono::duration(1.0 / config.policy_rate)); + config.max_action_age = number_or(node, "max_action_age", 2.0 / config.policy_rate); + if (!(config.max_action_age > 0.0) || !is_finite(config.max_action_age)) + throw std::invalid_argument("RlBridge: max_action_age must be finite and > 0"); + config.expected_model_id = + parse_u64(string_or(node, "expected_model_id", "0"), "expected_model_id"); + + const std::string invalid = string_or(node, "invalid_value", "nan"); + if (invalid == "nan") + config.invalid_mode = InvalidMode::kNaN; + else if (invalid == "zero") + config.invalid_mode = InvalidMode::kZero; + else if (invalid == "hold") + config.invalid_mode = InvalidMode::kHold; + else + throw std::invalid_argument( + "RlBridge: invalid_value must be nan|zero|hold " + "(quote it in YAML: invalid_value: \"nan\" — an unquoted " + "nan is parsed as a float), got '" + + string_or(node, "invalid_value", "") + "'"); + + config.enable_path = string_or(node, "enable_interface", config.rl_base + "/enable"); + config.enable_default = bool_or(node, "enable_default", false); + config.reset_path = string_or(node, "reset_interface", ""); + return config; +} + +} // namespace rmcs_rl diff --git a/src/rl_bridge/interface_binding.cpp b/src/rl_bridge/interface_binding.cpp index 16443b2..ff20f05 100644 --- a/src/rl_bridge/interface_binding.cpp +++ b/src/rl_bridge/interface_binding.cpp @@ -79,7 +79,6 @@ std::size_t acquire_slot( Slot slot; slot.path = path; slot.binding = selected; - slot.required = required; switch (selected) { case Binding::kDouble: slot.double_value = std::make_unique>(); diff --git a/src/rl_bridge/joint_config.cpp b/src/rl_bridge/joint_config.cpp index 4abb641..52f40c2 100644 --- a/src/rl_bridge/joint_config.cpp +++ b/src/rl_bridge/joint_config.cpp @@ -2,7 +2,7 @@ #include -#include +#include #include namespace rmcs_rl { diff --git a/src/rl_bridge/observation_history.cpp b/src/rl_bridge/observation_history.cpp new file mode 100644 index 0000000..cb88e9f --- /dev/null +++ b/src/rl_bridge/observation_history.cpp @@ -0,0 +1,34 @@ +#include + +#include +#include + +namespace rmcs_rl { + +ObservationHistory::ObservationHistory(std::size_t frame_size, std::size_t history_length) + : frame_size_(frame_size) + , values_(frame_size * history_length) { + if (frame_size == 0 || history_length == 0) + throw std::invalid_argument("observation frame size and history length must be positive"); +} + +const std::vector& ObservationHistory::append(std::span frame) { + if (frame.size() != frame_size_) + throw std::invalid_argument("observation frame does not match configured frame size"); + if (!initialized_) { + for (std::size_t offset = 0; offset < values_.size(); offset += frame_size_) + std::copy(frame.begin(), frame.end(), values_.begin() + offset); + initialized_ = true; + } else { + std::move(values_.begin() + frame_size_, values_.end(), values_.begin()); + std::copy(frame.begin(), frame.end(), values_.end() - frame_size_); + } + return values_; +} + +void ObservationHistory::reset() { + initialized_ = false; + std::fill(values_.begin(), values_.end(), 0.0); +} + +} // namespace rmcs_rl diff --git a/test/data/normalized_identity.onnx b/test/data/normalized_identity.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1dbdfa3b0d17d15ff09c67d66441e4566832d99b GIT binary patch literal 292 zcmZvWL2JT56ojj3ad{}}ON-J%59U}a$+o=&3Z*yyf|syaQ(Q=P%iE_I$&c6CDjs^B znQvx0rP(;^Ct|)VEE}%z&N`}8X?E(z$-c~%*HkR-e}NE&qJ=%^;7zVr zub?g3`6HZq@IU|a8mq86P$;&nx5EQT?7Y`f!Am output "actions" float32 [1, N_act]. -The synthetic policy outputs constant zeros: in RL state, position PD holds -default_dof_pos — safe for bench pipeline validation (no learned behavior). - -Sizes come from --obs/--act, or from the deployment YAML (--from-config) so the -model shape always matches the bridge contract; metadata is *not* stamped here -(run stamp_layout_metadata.py afterwards, then check_policy_contract.py). - -Negative test: generate with a wrong obs size (e.g. --obs 42) and verify the -consumer refuses to load (obs size mismatch). - -Usage: - python3 gen_synthetic_policy.py --obs 22 --act 4 -o policy.onnx - python3 gen_synthetic_policy.py --from-config deploy.yaml --node rl_bridge -o policy.onnx -""" +"""Generate a zero-action model for offline contract regression fixtures.""" import argparse import sys +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "tool")) import rl_layout as layout -def _export_with_torch(obs: int, act: int, output: str) -> bool: - """torch 可用则用 torch.onnx.export(保留历史导出路径);不可用返回 False。""" - try: - import torch - import torch.nn as nn - except ImportError: - return False - - class _ZeroPolicy(nn.Module): - def __init__(self, obs_size: int, act_size: int) -> None: - super().__init__() - self.linear = nn.Linear(obs_size, act_size, bias=False) - with torch.no_grad(): - self.linear.weight.zero_() - - def forward(self, obs: torch.Tensor) -> torch.Tensor: - return self.linear(obs) - - model = _ZeroPolicy(obs, act).eval() - dummy = torch.zeros(1, obs, dtype=torch.float32) - torch.onnx.export( - model, - dummy, - output, - input_names=["obs"], - output_names=["actions"], - opset_version=13, - ) - return True - - def _export_with_onnx(obs: int, act: int, output: str) -> None: - """无 torch 时的等价实现:actions = obs @ W,W 全零 → 恒零动作。""" + """actions = obs @ W with zero weights; no training dependency.""" import numpy as np import onnx from onnx import TensorProto, helper, numpy_helper @@ -111,15 +66,12 @@ def main() -> None: print(f"ERROR: obs/act 必须为正整数(obs={obs} act={act})", file=sys.stderr) sys.exit(1) - backend = "torch" if _export_with_torch(obs, act, args.output) else "onnx" - if backend == "onnx": - _export_with_onnx(obs, act, args.output) + _export_with_onnx(obs, act, args.output) print( f"wrote {args.output}: obs float32[1,{obs}] -> actions float32[1,{act}] " "(zero policy)" ) - print(f"backend: {backend}") if __name__ == "__main__": diff --git a/test/runtime_test.cpp b/test/runtime_test.cpp new file mode 100644 index 0000000..df2c3c8 --- /dev/null +++ b/test/runtime_test.cpp @@ -0,0 +1,116 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "policy/policy_model.hpp" + +namespace rmcs_rl { +namespace { + +TEST(ObservationHistory, PreservesFrameSizeOrderAndReset) { + ObservationHistory history{2, 3}; + EXPECT_EQ(history.append(std::array{1.0, 2.0}), (std::vector{1., 2., 1., 2., 1., 2.})); + EXPECT_EQ(history.append(std::array{3.0, 4.0}), (std::vector{1., 2., 1., 2., 3., 4.})); + EXPECT_EQ(history.append(std::array{5.0, 6.0}), (std::vector{1., 2., 3., 4., 5., 6.})); + history.reset(); + EXPECT_EQ(history.append(std::array{7.0, 8.0}), (std::vector{7., 8., 7., 8., 7., 8.})); + EXPECT_THROW(history.append(std::array{1.0}), std::invalid_argument); +} + +TEST(ObservationTimeline, RejectsPreResetAndOlderActions) { + using namespace std::chrono_literals; + const ObservationTimeline::Clock::time_point start{}; + ObservationTimeline timeline; + EXPECT_TRUE(timeline.due(start, 20ms)); + EXPECT_TRUE(std::isnan(timeline.age(0, start))); + const auto first = timeline.publish(start); + EXPECT_FALSE(timeline.due(start + 19ms, 20ms)); + EXPECT_TRUE(timeline.due(start + 20ms, 20ms)); + const auto second = timeline.publish(start + 20ms); + EXPECT_DOUBLE_EQ(timeline.age(first, start + 30ms), 0.03); + EXPECT_DOUBLE_EQ(timeline.age(second, start + 30ms), 0.01); + timeline.reset(); + EXPECT_TRUE(std::isnan(timeline.age(second, start + 31ms))); + const auto third = timeline.publish(start + 31ms); + EXPECT_GT(third, second); + EXPECT_TRUE(std::isnan(timeline.age(second, start + 32ms))); + EXPECT_DOUBLE_EQ(timeline.age(third, start + 32ms), 0.001); + timeline.publish(start + 51ms); + EXPECT_TRUE(std::isnan(timeline.age(second, start + 52ms))); +} + +TEST(ActionChannel, ConcurrentSnapshotsNeverMixFrames) { + ActionChannel channel; + channel.resize(6); + ActionSnapshot snapshot; + EXPECT_FALSE(channel.try_read(snapshot)); + std::atomic finished = false; + std::jthread writer{[&] { + msg::Action message; + message.action.resize(6); + for (std::uint64_t sequence = 1; sequence <= 10000; ++sequence) { + message.obs_seq = message.model_id = message.layout_hash = sequence; + std::fill(message.action.begin(), message.action.end(), static_cast(sequence)); + channel.store(message); + } + finished = true; + }}; + do { + if (!channel.try_read(snapshot)) + continue; + EXPECT_EQ(snapshot.model_id, snapshot.obs_seq); + EXPECT_EQ(snapshot.layout_hash, snapshot.obs_seq); + for (const double action : snapshot.action) + EXPECT_EQ(action, static_cast(snapshot.obs_seq)); + } while (!finished); + writer.join(); + ASSERT_TRUE(channel.try_read(snapshot)); + EXPECT_EQ(snapshot.obs_seq, 10000u); +} + +TEST(PolicyModel, NormalizesClipsAndRejectsInvalidFrames) { + PolicyModel::Config config; + config.path = RMCS_RL_IDENTITY_FIXTURE; + PolicyModel model{config}; + ASSERT_EQ(model.info().obs_size, 2u); + ASSERT_EQ(model.info().action_size, 2u); + std::array action{}; + std::string error; + ASSERT_TRUE(model.run(std::array{3.0, 6.0}, action, error)) << error; + EXPECT_EQ(action, (std::array{1.0, 1.0})); + ASSERT_TRUE(model.run(std::array{9.0, -18.0}, action, error)) << error; + EXPECT_EQ(action, (std::array{1.5, -1.5})); + EXPECT_FALSE(model.run(std::array{1.0}, action, error)); + EXPECT_FALSE( + model.run(std::array{1.0, std::numeric_limits::quiet_NaN()}, action, error)); + ASSERT_TRUE(model.run(std::array{1.0, 2.0}, action, error)) << error; + EXPECT_EQ(action, (std::array{0.0, 0.0})); +} + +TEST(PolicyModel, ParameterClipsOverrideMetadata) { + PolicyModel::Config config; + config.path = RMCS_RL_IDENTITY_FIXTURE; + config.normalization_from_metadata = false; + config.obs_clip = 4.0; + config.action_clip = 3.0; + PolicyModel model{config}; + std::array action{}; + std::string error; + ASSERT_TRUE(model.run(std::array{6.0, -6.0}, action, error)) << error; + EXPECT_EQ(action, (std::array{3.0, -3.0})); +} + +} // namespace +} // namespace rmcs_rl +#include diff --git a/test/test_layout.py b/test/test_layout.py new file mode 100644 index 0000000..1325c27 --- /dev/null +++ b/test/test_layout.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +"""Regression fixtures for the Python/C++ layout contract.""" +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "tool")) +import rl_layout as layout + + +def _self_test() -> None: + """断言语法表(含「同签名与 C++ 接口类型无关」)+ FNV 稳定性。""" + for spec in ("path=/chassis/control_height", + "path=/chassis/control_height type=scalar"): + term = layout.parse_obs_term(spec, 6) + assert term["kind"] == "scalar", term + assert term["dim"] == 1 and term["id"] == "/chassis/control_height", term + assert term["scale"] == 1.0 and term["clip"] is None, term + + base = layout.parse_obs_term("path=/v take=x", 6) + assert (base["dim"], base["id"], base["kind"]) == (1, "vec3c:/v:x", "component"), base + for interface in ("vector3", "direction_vector", "scalar"): + other = layout.parse_obs_term(f"path=/v take=x type={interface}", 6) + assert (other["dim"], other["id"]) == (1, "vec3c:/v:x"), other + assert layout.obs_signature(["path=/v take=x"], 6) == layout.obs_signature(["path=/v take=x type=direction_vector"], 6) + assert layout.obs_signature(["path=/v take=x"], 6) == "v3-history=1|vec3c:/v:x@1" + for axis in ("x", "y", "z"): + assert layout.parse_obs_term(f"path=/v take={axis}", 6)["id"] == f"vec3c:/v:{axis}" + + for alias in ("vec3", "vec", "all", "vector"): + term = layout.parse_obs_term(f"path=/v take={alias}", 6) + assert (term["dim"], term["id"], term["kind"]) == (3, "vec3:/v", "vec3"), term + assert layout.parse_obs_term("path=/v take=vec3 scale=0.5", 6)["scale"] == 0.5 + + gravity = layout.parse_obs_term("path=/imu/quaternion transform=projected_gravity", 6) + assert (gravity["dim"], gravity["id"], gravity["kind"]) == (3, "gravity:/imu/quaternion", "gravity") + assert layout.parse_obs_term("path=/imu/quaternion take=gravity", 6)["id"] == "gravity:/imu/quaternion" + assert layout.obs_signature(["path=/imu/quaternion transform=projected_gravity type=quaternion"], 6) \ + == layout.obs_signature(["path=/imu/quaternion transform=projected_gravity"], 6) + _expect_error(lambda: layout.parse_obs_term("path=/imu/quaternion type=quaternion", 6), "quaternion") + + joint_pos = layout.parse_obs_term("type=joint_pos joints=a,b relative=true", 6) + assert (joint_pos["dim"], joint_pos["id"], joint_pos["relative"]) == (2, "joint_pos:rel:a+b", True) + assert layout.parse_obs_term("type=joint_pos joints=a,b", 6)["id"] == "joint_pos:abs:a+b" + assert layout.parse_obs_term("type=joint_pos joints=a,b zero=true", 6)["id"] == "joint_pos:zero:a+b" + assert layout.parse_obs_term("type=joint_pos joints=a,b relative=false", 6)["id"] == "joint_pos:abs:a+b" + assert joint_pos["joints"] == ["a", "b"] and joint_pos["kind"] == "joint_pos" + assert layout.parse_obs_term("type=joint_vel joints=a,b", 6)["id"] == "joint_vel:abs:a+b" + assert layout.parse_obs_term("type=joint_torque joints=a,b scale=0.25", 6)["id"] == "joint_torque:abs:a+b" + assert layout.parse_obs_term("type=joint_torque joints=a,b scale=0.25", 6)["scale"] == 0.25 + _expect_error(lambda: layout.parse_obs_term("type=joint_pos joints=", 6), "joints") + + last = layout.parse_obs_term("type=last_action", 6) + assert (last["dim"], last["id"]) == (6, "last_action:0+1+2+3+4+5"), last + assert last["indices"] == [0, 1, 2, 3, 4, 5] + assert layout.parse_obs_term("type=last_action indices=0,1,2", 6)["id"] == "last_action:0+1+2" + range_term = layout.parse_obs_term("type=last_action indices=0..5", 6) + assert (range_term["dim"], range_term["id"]) == (6, "last_action:0+1+2+3+4+5"), range_term + _expect_error(lambda: layout.parse_obs_term("type=last_action indices=0..9", 6), "越界") + + const = layout.parse_obs_term("type=constant value=1,0,0.5", 6) + assert (const["dim"], const["id"], const["constants"]) == (3, "constant:1+0+0.5", [1.0, 0.0, 0.5]), const + assert layout.parse_obs_term("type=constant value=1.0,0.0000001", 6)["id"] == "constant:1+1e-07" + + named = layout.parse_obs_term("path=/v take=vec3 name=my_obs", 6) + assert (named["id"], named["dim"]) == ("my_obs", 3), named + + for alias in ("double", "bool", "int", "size", "size_t", "vec3"): + assert layout.parse_obs_term(f"path=/v take=x type={alias}", 6)["id"] == "vec3c:/v:x", alias + assert layout.parse_obs_term("path=/v type=bool", 6)["id"] == "/v" + assert layout.parse_obs_term("path=/v clip=0.5", 6)["clip"] == 0.5 + assert layout.parse_obs_term("path=/v clip=-1:1", 6)["clip"] == (-1.0, 1.0) + _expect_error(lambda: layout.parse_obs_term("path=/v clip=1:-1", 6), "clip") + + assert layout.obs_signature(["path=/v scale=2 clip=10 index=3 default=0.1"], 6) == "v3-history=1|/v*2@1" + assert layout.obs_signature(["path=/v"], 6) == "v3-history=1|/v@1" + + action = layout.parse_action_term("index=0 output=/rl/action/lf0") + assert (action["index"], action["output"], action["name"], action["id"]) \ + == (0, "/rl/action/lf0", "/rl/action/lf0", "#0:/rl/action/lf0"), action + assert layout.parse_action_term("index=1 output=/o name=hip scale=0.5")["id"] == "#1:hip*0.5" + assert layout.action_signature(["index=0 output=/a", "index=1 output=/b scale=0.5"]) == "v2|#0:/a|#1:/b*0.5" + assert layout.action_signature(["index=1 output=/b", "index=0 output=/a"]) == "v2|#0:/a|#1:/b" + _expect_error(lambda: layout.action_signature(["index=0 output=/a", "index=2 output=/c"]), "置换") + _expect_error(lambda: layout.action_signature(["index=0 output=/a", "index=0 output=/b"]), "置换") + + _expect_error(lambda: layout.parse_obs_term("path=/v scale=0", 6), "scale") + _expect_error(lambda: layout.parse_obs_term("path=/v bogus=1", 6), "未知键") + _expect_error(lambda: layout.parse_obs_term("take=x", 6), "path") + _expect_error(lambda: layout.parse_obs_term("path=/v take=w", 6), "take") + _expect_error(lambda: layout.parse_obs_term("path=/v transform=foo", 6), "transform") + _expect_error(lambda: layout.parse_action_term("output=/a"), "index") + _expect_error(lambda: layout.parse_action_term("index=0"), "output") + + assert layout.fnv1a64(b"") == 0xCBF29CE484222325 + assert layout.fnv1a64(b"a") == 0xAF63DC4C8601EC8C + assert layout.fnv1a64(b"abc") == 0xE71FA2190541574B + assert layout.fnv1a64(b"foobar") == 0x85944171F73967E8 + fixed = layout.layout_hash("v2|/chassis/control_height@1|vec3c:/chassis/control_velocity:x@1", + "v2|#0:/a", 20, 6) + assert fixed == 0xC841398B19839E56, layout.hex16(fixed) + assert layout.hex16(0x1A2B3C4D5E6F7788) == "0x1a2b3c4d5e6f7788" + assert layout.hex16(layout.layout_hash("v2", "v2", 0, 0)) == layout.hex16(layout.fnv1a64(b"v2||v2||0x0")) + + assert layout.parse_signature("v2|/a@1")["version"] == "v2" + assert layout.parse_signature("v2")["version"] == "v2" + assert layout.parse_signature("v1|/a@1")["version"] == "v1" + assert layout.is_v1_signature("vector3_component:/v:x@1") + assert layout.is_v1_signature("direction_vector_component:/v:x@1") + assert layout.is_v1_signature("") and layout.is_v1_signature(None) + assert not layout.is_v1_signature("v2|vec3c:/v:x@1") + assert layout.obs_signature_dim("v2|/a@1|vec3:/v@3") == 4 + + print("rl_layout self-test OK") + + +def _expect_error(fn, needle: str) -> None: + try: + fn() + except layout.LayoutError as exc: + assert needle in str(exc), f"错误消息 {exc!r} 未包含 {needle!r}" + return + raise AssertionError(f"应当抛 layout.LayoutError({needle})但没有") + + +if __name__ == "__main__": + _self_test() diff --git a/tool/test_layout_contract.sh b/test/test_layout_contract.sh similarity index 85% rename from tool/test_layout_contract.sh rename to test/test_layout_contract.sh index 6072076..7786a6c 100755 --- a/tool/test_layout_contract.sh +++ b/test/test_layout_contract.sh @@ -3,8 +3,11 @@ set -u HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PKG="$(cd "$HERE/.." && pwd)" +TOOLS="$PKG/tool" PY="${PYTHON:-python3}" -WORK="${TMPDIR:-/tmp}" +WORK="$(mktemp -d "${TMPDIR:-/tmp}/rmcs-rl-contract.XXXXXX")" +trap 'rm -rf "$WORK"' EXIT +cd "$WORK" FIXTURE="$WORK/x.yaml" FIXTURE_TYPES="$WORK/x_types.yaml" MODEL="$WORK/policy.onnx" @@ -71,18 +74,18 @@ sed -e 's|path=/chassis/control_height |path=/chassis/control_height type=scalar "$FIXTURE" >"$FIXTURE_TYPES" echo "== 1. 词条语法自检(rl_layout.py)==" -run_expect 0 "rl_layout self-test" "$PY" "$HERE/rl_layout.py" +run_expect 0 "rl_layout self-test" "$PY" "$HERE/test_layout.py" expect_msg "rl_layout self-test OK" "self-test OK" echo "== 2. 生成 → 盖章 → 校验(正例必须 PASS)==" run_expect 0 "gen_synthetic_policy --from-config" \ "$PY" "$HERE/gen_synthetic_policy.py" --from-config "$FIXTURE" -o "$MODEL" run_expect 0 "stamp_layout_metadata" \ - "$PY" "$HERE/stamp_layout_metadata.py" --model "$MODEL" --from-config "$FIXTURE" + "$PY" "$TOOLS/stamp_layout_metadata.py" --model "$MODEL" --from-config "$FIXTURE" cat "$LOG" SHA_BEFORE="$(sha256sum "$MODEL" | cut -d' ' -f1)" run_expect 0 "stamp_layout_metadata(幂等重跑)" \ - "$PY" "$HERE/stamp_layout_metadata.py" --model "$MODEL" --from-config "$FIXTURE" + "$PY" "$TOOLS/stamp_layout_metadata.py" --model "$MODEL" --from-config "$FIXTURE" SHA_AFTER="$(sha256sum "$MODEL" | cut -d' ' -f1)" if [ "$SHA_BEFORE" = "$SHA_AFTER" ]; then ok "盖章幂等(文件字节不变)" @@ -90,14 +93,14 @@ else bad "盖章非幂等:$SHA_BEFORE != $SHA_AFTER" fi run_expect 0 "check_policy_contract(正例)" \ - "$PY" "$HERE/check_policy_contract.py" "$MODEL" --config "$FIXTURE" + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$FIXTURE" cat "$LOG" expect_msg "== SUMMARY: PASS ==" "SUMMARY PASS" echo "== 3. 逃生口 type= 不改变布局指纹 ==" -SIG_PLAIN="$("$PY" "$HERE/check_policy_contract.py" --print-layout --config "$FIXTURE" \ +SIG_PLAIN="$("$PY" "$TOOLS/check_policy_contract.py" --print-layout --config "$FIXTURE" \ | grep -E 'obs_signature|action_signature|layout_hash')" -SIG_TYPES="$("$PY" "$HERE/check_policy_contract.py" --print-layout --config "$FIXTURE_TYPES" \ +SIG_TYPES="$("$PY" "$TOOLS/check_policy_contract.py" --print-layout --config "$FIXTURE_TYPES" \ | grep -E 'obs_signature|action_signature|layout_hash')" if [ -n "$SIG_PLAIN" ] && [ "$SIG_PLAIN" = "$SIG_TYPES" ]; then ok "带/不带 type= 的规范串与 layout_hash 完全一致" @@ -118,7 +121,7 @@ model.metadata_props.extend(keep) onnx.save(model, dst) PYEOF run_expect 1 "(a) metadata 缺 rmcs_obs_layout" \ - "$PY" "$HERE/check_policy_contract.py" "$WORK/policy_neg_a.onnx" --config "$FIXTURE" + "$PY" "$TOOLS/check_policy_contract.py" "$WORK/policy_neg_a.onnx" --config "$FIXTURE" expect_msg "rmcs_obs_layout" "缺键提示" "$PY" - "$FIXTURE" "$WORK/x_swapped.yaml" <<'PYEOF' @@ -137,7 +140,7 @@ doc["rl_bridge"]["ros__parameters"]["observation_terms"] = terms yaml.safe_dump(doc, open(dst, "w", encoding="utf-8"), allow_unicode=True, sort_keys=False) PYEOF run_expect 1 "(b) 真·换序(index 位置不变,语义换位)" \ - "$PY" "$HERE/check_policy_contract.py" "$MODEL" --config "$WORK/x_swapped.yaml" + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$WORK/x_swapped.yaml" expect_msg "rmcs_obs_layout" "签名不一致提示" "$PY" - "$FIXTURE" "$WORK/x_index_clash.yaml" <<'PYEOF' @@ -149,7 +152,7 @@ terms[0], terms[1] = terms[1], terms[0] # 只换顺序,index= 保持 yaml.safe_dump(doc, open(dst, "w", encoding="utf-8"), allow_unicode=True, sort_keys=False) PYEOF run_expect 1 "(b2) 换序但不改 index= → index 断言" \ - "$PY" "$HERE/check_policy_contract.py" "$MODEL" --config "$WORK/x_index_clash.yaml" + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$WORK/x_index_clash.yaml" expect_msg "index=" "index 断言提示" "$PY" - "$FIXTURE" "$WORK/x_scale.yaml" <<'PYEOF' @@ -161,7 +164,7 @@ terms[5] = terms[5].replace("scale=0.1", "scale=0.2") # joint_vel 缩放 yaml.safe_dump(doc, open(dst, "w", encoding="utf-8"), allow_unicode=True, sort_keys=False) PYEOF run_expect 1 "(c) 改一个 scale=" \ - "$PY" "$HERE/check_policy_contract.py" "$MODEL" --config "$WORK/x_scale.yaml" + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$WORK/x_scale.yaml" expect_msg "policy_layout_hash" "hash 不一致提示" "$PY" - "$MODEL" "$WORK/policy_neg_d.onnx" <<'PYEOF' @@ -174,7 +177,7 @@ for prop in model.metadata_props: onnx.save(model, dst) PYEOF run_expect 1 "(d) policy_layout_hash 写错" \ - "$PY" "$HERE/check_policy_contract.py" "$WORK/policy_neg_d.onnx" --config "$FIXTURE" + "$PY" "$TOOLS/check_policy_contract.py" "$WORK/policy_neg_d.onnx" --config "$FIXTURE" expect_msg "policy_layout_hash" "hash 校验失败提示" "$PY" - "$FIXTURE" "$WORK/x_actsize.yaml" <<'PYEOF' @@ -185,7 +188,7 @@ doc["rl_bridge"]["ros__parameters"]["rl_action_size"] = 5 # 词条是 6 条 yaml.safe_dump(doc, open(dst, "w", encoding="utf-8"), allow_unicode=True, sort_keys=False) PYEOF run_expect 1 "(e) rl_action_size != 动作词条数" \ - "$PY" "$HERE/check_policy_contract.py" "$MODEL" --config "$WORK/x_actsize.yaml" + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$WORK/x_actsize.yaml" expect_msg "rl_action_size" "尺寸不一致提示" echo diff --git a/tool/gen_drive_policy.py b/tool/gen_drive_policy.py deleted file mode 100644 index 48837c6..0000000 --- a/tool/gen_drive_policy.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python3 -"""Generate a drive-style validation policy ONNX for rmcs_rl deployment testing. - -This is an *example* synthetic model for one concrete contract (4 joints, -height-command driven); for other contracts use gen_synthetic_policy.py or -export the real trained policy. Contract must match the YAML config exactly: - input "obs" float32 [1, 22] -> output "actions" float32 [1, 4]. -Layout (identical to the deployment obs builder): - obs[0:3] = commands (vx, 0, yaw_rate) -- reserved, unused - obs[3] = height_cmd * 5.0 - obs[4:7] = ang_vel * 0.5 - obs[7:10] = projected gravity - obs[10:14]= joint pos deviation (position-PD group) - obs[14:18]= joint vel * 0.1 - obs[18:22]= last actions - -Behavior (deterministic, bounded, no state): - a_i = clip( A * tanh(K * (height_cmd - h0)) + bias_i, -clip, clip ) - -> all joints follow the height command (slight per-joint bias for asymmetry), - exercising the full obs -> policy -> action -> PD -> torque -> joint loop. - The height_cmd range below is an example; align with your config. - -Usage: - python3 gen_drive_policy.py -o policy_drive.onnx -""" -import argparse - -import torch -import torch.nn as nn - - -class DrivePolicy(nn.Module): - def __init__(self, amp: float = 2.0, gain: float = 8.0, h0: float = 0.132, - bias=(0.15, -0.08, 0.08, -0.15), clip: float = 2.0): - super().__init__() - self.amp = amp - self.gain = gain - self.h0 = h0 - self.register_buffer("bias", torch.tensor(bias, dtype=torch.float32)) - self.clip = clip - - def forward(self, obs: torch.Tensor) -> torch.Tensor: - height_cmd = obs[:, 3:4] / 5.0 - a = self.amp * torch.tanh(self.gain * (height_cmd - self.h0)) - a = a + self.bias.unsqueeze(0) - return torch.clamp(a, -self.clip, self.clip) - - -def main() -> None: - parser = argparse.ArgumentParser() - parser.add_argument("-o", "--output", default="policy_drive.onnx") - args = parser.parse_args() - - model = DrivePolicy().eval() - dummy = torch.zeros(1, 22, dtype=torch.float32) - with torch.no_grad(): - for h in (0.05, 0.132, 0.17): - obs = dummy.clone() - obs[0, 3] = h * 5.0 - a = model(obs) - target = 0.25 * a + 0.3 - print(f"height={h:.3f} -> actions={a[0].tolist()} (pos target ~{target[0].tolist()})") - - torch.onnx.export( - model, dummy, args.output, - input_names=["obs"], output_names=["actions"], opset_version=13, - ) - print(f"wrote {args.output}: obs float32[1,22] -> actions float32[1,4]") - - -if __name__ == "__main__": - main() diff --git a/tool/rl_layout.py b/tool/rl_layout.py index acc850e..a67a222 100644 --- a/tool/rl_layout.py +++ b/tool/rl_layout.py @@ -3,7 +3,7 @@ C++ 桥(rl_bridge)与策略进程各自实现同一份规范(planning/docs/bridge-design.md §6.2/§6.3), Python 侧的真源就是本模块:stamp_layout_metadata.py / check_policy_contract.py / -gen_synthetic_policy.py 全部从这里取语法与 hash,避免同一份契约靠人写两遍(drift)。 +测试夹具全部从这里取语法与 hash,避免同一份契约靠人写两遍(drift)。 观测词条(YAML observation_terms,每个元素是一个 "key=value ..." 字符串): path / take / transform / type / index / scale / clip / default / name @@ -782,123 +782,3 @@ def _join_floats(values) -> str: if isinstance(values, str): values = [v for v in values.replace(" ", "").split(",") if v != ""] return ",".join(format_scale(float(v)) for v in values) - - - -def _self_test() -> None: - """断言语法表(含「同签名与 C++ 接口类型无关」)+ FNV 稳定性。""" - for spec in ("path=/chassis/control_height", - "path=/chassis/control_height type=scalar"): - term = parse_obs_term(spec, 6) - assert term["kind"] == "scalar", term - assert term["dim"] == 1 and term["id"] == "/chassis/control_height", term - assert term["scale"] == 1.0 and term["clip"] is None, term - - base = parse_obs_term("path=/v take=x", 6) - assert (base["dim"], base["id"], base["kind"]) == (1, "vec3c:/v:x", "component"), base - for interface in ("vector3", "direction_vector", "scalar"): - other = parse_obs_term(f"path=/v take=x type={interface}", 6) - assert (other["dim"], other["id"]) == (1, "vec3c:/v:x"), other - assert obs_signature(["path=/v take=x"], 6) == obs_signature(["path=/v take=x type=direction_vector"], 6) - assert obs_signature(["path=/v take=x"], 6) == "v3-history=1|vec3c:/v:x@1" - for axis in ("x", "y", "z"): - assert parse_obs_term(f"path=/v take={axis}", 6)["id"] == f"vec3c:/v:{axis}" - - for alias in ("vec3", "vec", "all", "vector"): - term = parse_obs_term(f"path=/v take={alias}", 6) - assert (term["dim"], term["id"], term["kind"]) == (3, "vec3:/v", "vec3"), term - assert parse_obs_term("path=/v take=vec3 scale=0.5", 6)["scale"] == 0.5 - - gravity = parse_obs_term("path=/imu/quaternion transform=projected_gravity", 6) - assert (gravity["dim"], gravity["id"], gravity["kind"]) == (3, "gravity:/imu/quaternion", "gravity") - assert parse_obs_term("path=/imu/quaternion take=gravity", 6)["id"] == "gravity:/imu/quaternion" - assert obs_signature(["path=/imu/quaternion transform=projected_gravity type=quaternion"], 6) \ - == obs_signature(["path=/imu/quaternion transform=projected_gravity"], 6) - _expect_error(lambda: parse_obs_term("path=/imu/quaternion type=quaternion", 6), "quaternion") - - joint_pos = parse_obs_term("type=joint_pos joints=a,b relative=true", 6) - assert (joint_pos["dim"], joint_pos["id"], joint_pos["relative"]) == (2, "joint_pos:rel:a+b", True) - assert parse_obs_term("type=joint_pos joints=a,b", 6)["id"] == "joint_pos:abs:a+b" - assert parse_obs_term("type=joint_pos joints=a,b zero=true", 6)["id"] == "joint_pos:zero:a+b" - assert parse_obs_term("type=joint_pos joints=a,b relative=false", 6)["id"] == "joint_pos:abs:a+b" - assert joint_pos["joints"] == ["a", "b"] and joint_pos["kind"] == "joint_pos" - assert parse_obs_term("type=joint_vel joints=a,b", 6)["id"] == "joint_vel:abs:a+b" - assert parse_obs_term("type=joint_torque joints=a,b scale=0.25", 6)["id"] == "joint_torque:abs:a+b" - assert parse_obs_term("type=joint_torque joints=a,b scale=0.25", 6)["scale"] == 0.25 - _expect_error(lambda: parse_obs_term("type=joint_pos joints=", 6), "joints") - - last = parse_obs_term("type=last_action", 6) - assert (last["dim"], last["id"]) == (6, "last_action:0+1+2+3+4+5"), last - assert last["indices"] == [0, 1, 2, 3, 4, 5] - assert parse_obs_term("type=last_action indices=0,1,2", 6)["id"] == "last_action:0+1+2" - range_term = parse_obs_term("type=last_action indices=0..5", 6) - assert (range_term["dim"], range_term["id"]) == (6, "last_action:0+1+2+3+4+5"), range_term - _expect_error(lambda: parse_obs_term("type=last_action indices=0..9", 6), "越界") - - const = parse_obs_term("type=constant value=1,0,0.5", 6) - assert (const["dim"], const["id"], const["constants"]) == (3, "constant:1+0+0.5", [1.0, 0.0, 0.5]), const - assert parse_obs_term("type=constant value=1.0,0.0000001", 6)["id"] == "constant:1+1e-07" - - named = parse_obs_term("path=/v take=vec3 name=my_obs", 6) - assert (named["id"], named["dim"]) == ("my_obs", 3), named - - for alias in ("double", "bool", "int", "size", "size_t", "vec3"): - assert parse_obs_term(f"path=/v take=x type={alias}", 6)["id"] == "vec3c:/v:x", alias - assert parse_obs_term("path=/v type=bool", 6)["id"] == "/v" - assert parse_obs_term("path=/v clip=0.5", 6)["clip"] == 0.5 - assert parse_obs_term("path=/v clip=-1:1", 6)["clip"] == (-1.0, 1.0) - _expect_error(lambda: parse_obs_term("path=/v clip=1:-1", 6), "clip") - - assert obs_signature(["path=/v scale=2 clip=10 index=3 default=0.1"], 6) == "v3-history=1|/v*2@1" - assert obs_signature(["path=/v"], 6) == "v3-history=1|/v@1" - - action = parse_action_term("index=0 output=/rl/action/lf0") - assert (action["index"], action["output"], action["name"], action["id"]) \ - == (0, "/rl/action/lf0", "/rl/action/lf0", "#0:/rl/action/lf0"), action - assert parse_action_term("index=1 output=/o name=hip scale=0.5")["id"] == "#1:hip*0.5" - assert action_signature(["index=0 output=/a", "index=1 output=/b scale=0.5"]) == "v2|#0:/a|#1:/b*0.5" - assert action_signature(["index=1 output=/b", "index=0 output=/a"]) == "v2|#0:/a|#1:/b" - _expect_error(lambda: action_signature(["index=0 output=/a", "index=2 output=/c"]), "置换") - _expect_error(lambda: action_signature(["index=0 output=/a", "index=0 output=/b"]), "置换") - - _expect_error(lambda: parse_obs_term("path=/v scale=0", 6), "scale") - _expect_error(lambda: parse_obs_term("path=/v bogus=1", 6), "未知键") - _expect_error(lambda: parse_obs_term("take=x", 6), "path") - _expect_error(lambda: parse_obs_term("path=/v take=w", 6), "take") - _expect_error(lambda: parse_obs_term("path=/v transform=foo", 6), "transform") - _expect_error(lambda: parse_action_term("output=/a"), "index") - _expect_error(lambda: parse_action_term("index=0"), "output") - - assert fnv1a64(b"") == 0xCBF29CE484222325 - assert fnv1a64(b"a") == 0xAF63DC4C8601EC8C - assert fnv1a64(b"abc") == 0xE71FA2190541574B - assert fnv1a64(b"foobar") == 0x85944171F73967E8 - fixed = layout_hash("v2|/chassis/control_height@1|vec3c:/chassis/control_velocity:x@1", - "v2|#0:/a", 20, 6) - assert fixed == 0xC841398B19839E56, hex16(fixed) - assert hex16(0x1A2B3C4D5E6F7788) == "0x1a2b3c4d5e6f7788" - assert hex16(layout_hash("v2", "v2", 0, 0)) == hex16(fnv1a64(b"v2||v2||0x0")) - - assert parse_signature("v2|/a@1")["version"] == "v2" - assert parse_signature("v2")["version"] == "v2" - assert parse_signature("v1|/a@1")["version"] == "v1" - assert is_v1_signature("vector3_component:/v:x@1") - assert is_v1_signature("direction_vector_component:/v:x@1") - assert is_v1_signature("") and is_v1_signature(None) - assert not is_v1_signature("v2|vec3c:/v:x@1") - assert obs_signature_dim("v2|/a@1|vec3:/v@3") == 4 - - print("rl_layout self-test OK") - - -def _expect_error(fn, needle: str) -> None: - try: - fn() - except LayoutError as exc: - assert needle in str(exc), f"错误消息 {exc!r} 未包含 {needle!r}" - return - raise AssertionError(f"应当抛 LayoutError({needle})但没有") - - -if __name__ == "__main__": - _self_test() From a12f942e1dcb71d54e347649bb22390293b96fe4 Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Tue, 29 Sep 2026 05:20:12 +0800 Subject: [PATCH 2/9] test(ActionChannel): add test for concurrent snapshot handling --- include/rmcs_rl/rl_bridge/action_channel.hpp | 2 ++ src/rl_bridge/action_channel.cpp | 8 ++++- test/runtime_test.cpp | 36 ++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/include/rmcs_rl/rl_bridge/action_channel.hpp b/include/rmcs_rl/rl_bridge/action_channel.hpp index e948bf4..8268069 100644 --- a/include/rmcs_rl/rl_bridge/action_channel.hpp +++ b/include/rmcs_rl/rl_bridge/action_channel.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -23,6 +24,7 @@ class ActionChannel { ActionSnapshot incoming_; std::mutex mutex_; bool received_ = false; + std::atomic has_read_ = false; }; void write_actions( diff --git a/src/rl_bridge/action_channel.cpp b/src/rl_bridge/action_channel.cpp index d2f7c00..31439e5 100644 --- a/src/rl_bridge/action_channel.cpp +++ b/src/rl_bridge/action_channel.cpp @@ -10,6 +10,7 @@ void ActionChannel::resize(std::size_t action_size) { const std::lock_guard lock{mutex_}; incoming_.action.assign(action_size, 0.0); received_ = false; + has_read_.store(false, std::memory_order_release); } void ActionChannel::store(const rmcs_rl::msg::Action& message) { @@ -27,9 +28,14 @@ bool ActionChannel::try_read(ActionSnapshot& snapshot) { // The executor must never wait for the ROS callback. A seqlock cannot protect // concurrent reads/writes of a non-atomic vector under the C++ memory model. const std::unique_lock lock{mutex_, std::try_to_lock}; - if (!lock.owns_lock() || !received_) + if (!lock.owns_lock()) + // Keep the caller's previous snapshot. The bridge still checks its age, + // sequence and contract before allowing it to drive outputs. + return has_read_.load(std::memory_order_acquire); + if (!received_) return false; snapshot = incoming_; + has_read_.store(true, std::memory_order_release); return true; } diff --git a/test/runtime_test.cpp b/test/runtime_test.cpp index df2c3c8..bcf26f8 100644 --- a/test/runtime_test.cpp +++ b/test/runtime_test.cpp @@ -79,6 +79,42 @@ TEST(ActionChannel, ConcurrentSnapshotsNeverMixFrames) { EXPECT_EQ(snapshot.obs_seq, 10000u); } +TEST(ActionChannel, KeepsPreviousSnapshotWhenWriterOwnsLock) { + ActionChannel channel; + channel.resize(1); + + msg::Action message; + message.action = {1.0}; + message.obs_seq = message.layout_hash = message.model_id = 1; + channel.store(message); + + ActionSnapshot snapshot; + ASSERT_TRUE(channel.try_read(snapshot)); + EXPECT_EQ(snapshot.action, (std::vector{1.0})); + + // A second read after the first successful read is allowed to retain the + // caller's snapshot if a concurrent store briefly owns the mutex. The + // channel's public API does not expose the mutex, so this loop exercises + // the same boundary without adding a production-only test hook. + std::atomic finished = false; + std::jthread writer{[&] { + for (std::uint64_t sequence = 2; sequence <= 10000; ++sequence) { + message.obs_seq = message.layout_hash = message.model_id = sequence; + message.action[0] = static_cast(sequence); + channel.store(message); + } + finished = true; + }}; + + while (!finished) { + ASSERT_TRUE(channel.try_read(snapshot)); + ASSERT_EQ(snapshot.action.size(), 1u); + EXPECT_EQ(snapshot.obs_seq, snapshot.model_id); + EXPECT_EQ(snapshot.action.front(), static_cast(snapshot.obs_seq)); + } + writer.join(); +} + TEST(PolicyModel, NormalizesClipsAndRejectsInvalidFrames) { PolicyModel::Config config; config.path = RMCS_RL_IDENTITY_FIXTURE; From e69747f9170041e3c17c2bfdce9704ff0fa73d9b Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Tue, 29 Sep 2026 07:49:52 +0800 Subject: [PATCH 3/9] docs(README): update model information and requirements --- README.md | 7 ++++--- models/deformable_sps_V1.onnx | Bin 203240 -> 203250 bytes ...e_sps_V2.onnx => deformable_sps_V2_N.onnx} | Bin 3 files changed, 4 insertions(+), 3 deletions(-) rename models/{deformable_sps_V2.onnx => deformable_sps_V2_N.onnx} (100%) diff --git a/README.md b/README.md index 0eb8657..eec9f31 100644 --- a/README.md +++ b/README.md @@ -71,9 +71,10 @@ python3 src/rmcs_rl/tool/check_policy_contract.py <模型.onnx> --config <车辆 盖章只写元数据;布局匹配不能证明训练侧的坐标或动作含义正确。 更新模型或配置后重启 RMCS。模型或布局不匹配会锁存拒绝动作,需要重启恢复。 -当前 `models/deformable_sps_V2.onnx` 缺少 `rmcs_obs_layout` 和 `rmcs_actions_layout`, -完整契约检查与策略服务会拒绝它。这是已有模型的部署缺口,需核对训练契约后补元数据; -不能只按张量维数推断其含义。 +当前部署使用 `models/deformable_sps_V1.onnx`;其 `rmcs_obs_layout`、 +`rmcs_actions_layout`、`policy_layout_hash` 和 `policy_version` 已按 +`deformable-infantry-omni-rl.yaml` 盖章。盖章只确认运行时布局契约,不能只按张量维数 +推断训练侧的坐标或动作含义;更新模型或 YAML 后必须重新盖章并同步 `expected_model_id`。 ## 运行接口 diff --git a/models/deformable_sps_V1.onnx b/models/deformable_sps_V1.onnx index d0308f37acb45e2dd4b7e3ae522d1555b1b3cbcd..5eaaae99fe03be460a77a289e339d140f13ef1fa 100644 GIT binary patch delta 78 zcmaE{ndj4Ho`x327N#xCTg8-)vvBbjyvT*Sik diff --git a/models/deformable_sps_V2.onnx b/models/deformable_sps_V2_N.onnx similarity index 100% rename from models/deformable_sps_V2.onnx rename to models/deformable_sps_V2_N.onnx From 79851ce8b095897fd8780e1c67f4599519539fa0 Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Tue, 29 Sep 2026 22:31:15 +0800 Subject: [PATCH 4/9] feat: support multiple model types and input shapes --- README.md | 34 +++++- src/policy/onnx_runtime.cpp | 193 ++++++++++++++++++++++++++++++---- src/policy/onnx_runtime.hpp | 30 +++++- src/policy/policy_model.cpp | 15 ++- src/policy/policy_model.hpp | 10 ++ src/policy_server.cpp | 26 ++++- test/gen_synthetic_policy.py | 54 +++++++--- tool/check_policy_contract.py | 119 ++++++++++++++++----- tool/rl_layout.py | 11 +- tool/stamp_layout_metadata.py | 28 +++++ tool/stamp_model.sh | 4 +- 11 files changed, 458 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index eec9f31..dd757c5 100644 --- a/README.md +++ b/README.md @@ -52,10 +52,42 @@ ros2 run rmcs_rl policy_server --ros-args --params-file <车辆配置.yaml> ## 模型与契约 -模型输入为 float32 `obs[batch,N]`,输出为 float32 `actions[batch,M]`,batch 为 1 或动态。 +模型结构由 `policy_server.model_type` 或 ONNX metadata `rmcs_model_type` 切换,支持: + +- `mlp`:输入可以是 float32 `obs[1,N]`,也可以是带历史帧的 `obs[1,history,feature]`; +- `transformer`:输入为 float32 `obs[1,history,feature]`; +- `generic`:保留 rank-1/2/3 的形状适配,供后续单输入结构接入。 + +输出支持 rank-1/2/3,只要除 batch 外的元素总数等于动作数 `M`。batch 为 1 或动态。 +`auto` 优先读取 `rmcs_model_type`,没有 metadata 时才按 rank-2 推断 MLP、rank-3 推断 +Transformer。真正需要多输入(例如独立 attention mask、position id)的模型需要新增专用 +adapter,当前部署接口会在启动时明确拒绝。 部署模型须含 `rmcs_obs_layout`、`rmcs_actions_layout`;建议带 `policy_layout_hash` 和版本。 `history_length × 单帧维数 = rl_obs_size`。归一化均值和标准差必须成对提供,标准差为正数。 +带历史帧的模型示例(桥和策略进程都要使用同一历史长度): + +```yaml +rl_bridge: + ros__parameters: + history_length: 8 + rl_obs_size: 208 # 8 × 26 +policy_server: + ros__parameters: + model_type: "transformer" # 带历史帧 MLP 这里写 "mlp" + sequence_length: 8 # 动态 rank-3 输入时需要 + feature_size: 26 + rl_obs_size: 208 +``` + +模型盖章时可以把结构和序列维度写进 metadata,避免只靠 rank 猜测: + +```sh +python3 src/rmcs_rl/tool/stamp_layout_metadata.py \ + --model policy.onnx --from-config <车辆配置.yaml> --node rl_bridge \ + --model-type transformer --sequence-length 8 --feature-size 26 +``` + 新模型先核对训练的观测顺序、坐标、基准角、缩放和频率,再盖章: ```sh diff --git a/src/policy/onnx_runtime.cpp b/src/policy/onnx_runtime.cpp index 2ea9857..aac1431 100644 --- a/src/policy/onnx_runtime.cpp +++ b/src/policy/onnx_runtime.cpp @@ -1,22 +1,64 @@ #include "onnx_runtime.hpp" #include +#include +#include #include namespace rmcs_rl { +namespace { + +std::string lower(std::string value) { + std::transform(value.begin(), value.end(), value.begin(), [](unsigned char character) { + return static_cast(std::tolower(character)); + }); + return value; +} + +std::size_t parse_positive(const std::optional& value, const char* key) { + if (!value || value->empty()) + return 0; + std::size_t consumed = 0; + std::size_t result = 0; + try { + result = std::stoull(*value, &consumed); + } catch (const std::exception&) { + throw std::invalid_argument(std::string{key} + " metadata must be a positive integer"); + } + if (consumed != value->size() || result == 0) + throw std::invalid_argument(std::string{key} + " metadata must be a positive integer"); + return result; +} + +bool batch_dimension_ok(std::int64_t dimension) { + // ONNX uses -1 for a dynamic dimension. Symbolic dimensions are returned + // as -1 by the C++ API, so this also covers named batch dimensions. + return dimension == 1 || dimension == -1; +} + +} // namespace + +OnnxRuntime::OnnxRuntime(const Config& config) + : input_name_(config.input_name) + , output_name_(config.output_name) { + if (config.model_path.empty()) + throw std::invalid_argument("model path must not be empty"); + const auto requested_type = lower(config.model_type); + if (requested_type != "auto" && requested_type != "mlp" && requested_type != "transformer" + && requested_type != "generic") + throw std::invalid_argument( + "model_type must be auto, mlp, transformer, or generic (got '" + config.model_type + + "')"); -OnnxRuntime::OnnxRuntime( - const std::string& model_path, const std::string& input_name, const std::string& output_name) - : input_name_(input_name) - , output_name_(output_name) { Ort::SessionOptions options; options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_ALL); options.SetIntraOpNumThreads(1); options.SetInterOpNumThreads(1); - session_ = Ort::Session{env_, model_path.c_str(), options}; + session_ = Ort::Session{env_, config.model_path.c_str(), options}; if (session_.GetInputCount() != 1 || session_.GetOutputCount() != 1) - throw std::invalid_argument("model must have exactly one input and one output"); + throw std::invalid_argument( + "model must have exactly one runtime input and one output; multi-input models need a future adapter"); const auto actual_input = session_.GetInputNameAllocated(0, allocator_); const auto actual_output = session_.GetOutputNameAllocated(0, allocator_); if (actual_input.get() != input_name_ || actual_output.get() != output_name_) @@ -24,6 +66,9 @@ OnnxRuntime::OnnxRuntime( "tensor names must be '" + input_name_ + "' / '" + output_name_ + "', got '" + actual_input.get() + "' / '" + actual_output.get() + "'"); + // Keep TypeInfo alive while reading the TensorTypeAndShapeInfo. The + // latter is a view into TypeInfo in ONNX Runtime; chaining a temporary + // here can read freed type metadata on some runtime builds. const auto input_type = session_.GetInputTypeInfo(0); const auto output_type = session_.GetOutputTypeInfo(0); const auto input_info = input_type.GetTensorTypeAndShapeInfo(); @@ -32,20 +77,128 @@ OnnxRuntime::OnnxRuntime( || output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) throw std::invalid_argument("tensor element type must be float32"); - const auto input_shape = input_info.GetShape(); - const auto output_shape = output_info.GetShape(); - if (input_shape.size() != 2 || output_shape.size() != 2) - throw std::invalid_argument("tensor rank must be 2 ([batch, N])"); - if ((input_shape[0] != 1 && input_shape[0] != -1) - || (output_shape[0] != 1 && output_shape[0] != -1)) - throw std::invalid_argument("batch dimension must be 1 or dynamic"); - if (input_shape[1] <= 0 || output_shape[1] <= 0) - throw std::invalid_argument("feature dimensions must be concrete positive values"); - - // The server evaluates one robot observation, even when the exported batch is dynamic. - input_shape_ = {1, input_shape[1]}; - input_buffer_.resize(static_cast(input_shape[1])); - output_size_ = static_cast(output_shape[1]); + const auto raw_input_shape = input_info.GetShape(); + const auto raw_output_shape = output_info.GetShape(); + if (raw_input_shape.empty() || raw_input_shape.size() > 3) + throw std::invalid_argument( + "supported policy input ranks are 1 ([N]), 2 ([batch,N]), and 3 ([batch,sequence,feature])"); + if (raw_input_shape.size() >= 2 && !batch_dimension_ok(raw_input_shape[0])) + throw std::invalid_argument("input batch dimension must be 1 or dynamic"); + if (raw_output_shape.empty() || raw_output_shape.size() > 3) + throw std::invalid_argument("supported policy output ranks are 1, 2, or 3"); + if (raw_output_shape.size() >= 2 && !batch_dimension_ok(raw_output_shape[0])) + throw std::invalid_argument("output batch dimension must be 1 or dynamic"); + + const auto metadata_type = lower(metadata("rmcs_model_type").value_or("")); + if (!metadata_type.empty() && metadata_type != "mlp" && metadata_type != "transformer" + && metadata_type != "generic") + throw std::invalid_argument("rmcs_model_type metadata must be mlp, transformer, or generic"); + if (requested_type != "auto" && requested_type != "generic" && !metadata_type.empty() + && requested_type != metadata_type) + throw std::invalid_argument( + "model_type parameter '" + requested_type + "' disagrees with rmcs_model_type='" + + metadata_type + "'"); + + std::string resolved_type = requested_type; + if (resolved_type == "auto") + resolved_type = metadata_type; + if (resolved_type.empty()) { + if (raw_input_shape.size() == 2) + resolved_type = "mlp"; + else if (raw_input_shape.size() == 3) + resolved_type = "transformer"; + else + resolved_type = "generic"; + } + if (resolved_type == "mlp" && raw_input_shape.size() != 2 && raw_input_shape.size() != 3) + throw std::invalid_argument( + "model_type=mlp requires input shape [batch,obs] or [batch,history,feature]"); + if (resolved_type == "transformer" && raw_input_shape.size() != 3) + throw std::invalid_argument( + "model_type=transformer requires input shape [batch,sequence,feature]"); + info_.model_type = resolved_type; + info_.input_rank = raw_input_shape.size(); + info_.output_rank = raw_output_shape.size(); + + const auto metadata_sequence = parse_positive(metadata("rmcs_history_length"), "rmcs_history_length"); + const auto metadata_feature = parse_positive(metadata("rmcs_obs_frame_size"), "rmcs_obs_frame_size"); + std::size_t sequence = config.sequence_length != 0 ? config.sequence_length : metadata_sequence; + std::size_t feature = config.feature_size != 0 ? config.feature_size : metadata_feature; + const auto expected_observation = config.observation_size; + + input_shape_.resize(raw_input_shape.size()); + if (raw_input_shape.size() == 1) { + const auto declared = raw_input_shape[0] > 0 ? static_cast(raw_input_shape[0]) : 0; + const auto resolved = declared != 0 ? declared : expected_observation; + if (resolved == 0) + throw std::invalid_argument("dynamic rank-1 input needs observation_size"); + if (declared != 0 && expected_observation != 0 && declared != expected_observation) + throw std::invalid_argument("model input size does not match observation_size"); + input_shape_[0] = static_cast(resolved); + info_.feature_size = resolved; + info_.sequence_length = 1; + } else if (raw_input_shape.size() == 2) { + const auto declared = raw_input_shape[1] > 0 ? static_cast(raw_input_shape[1]) : 0; + const auto resolved = declared != 0 ? declared : expected_observation; + if (resolved == 0) + throw std::invalid_argument("dynamic rank-2 input needs observation_size"); + if (declared != 0 && expected_observation != 0 && declared != expected_observation) + throw std::invalid_argument("model input feature size does not match observation_size"); + input_shape_ = {1, static_cast(resolved)}; + info_.feature_size = resolved; + info_.sequence_length = 1; + } else { + const auto declared_sequence = raw_input_shape[1] > 0 + ? static_cast(raw_input_shape[1]) + : 0; + const auto declared_feature = raw_input_shape[2] > 0 + ? static_cast(raw_input_shape[2]) + : 0; + if (sequence == 0) + sequence = declared_sequence; + if (feature == 0) + feature = declared_feature; + if (sequence == 0 && feature != 0 && expected_observation != 0 + && expected_observation % feature == 0) + sequence = expected_observation / feature; + if (feature == 0 && sequence != 0 && expected_observation != 0 + && expected_observation % sequence == 0) + feature = expected_observation / sequence; + if (sequence == 0 || feature == 0) + throw std::invalid_argument( + "rank-3 input needs concrete sequence/feature dimensions or sequence_length/feature_size"); + if ((declared_sequence != 0 && declared_sequence != sequence) + || (declared_feature != 0 && declared_feature != feature)) + throw std::invalid_argument("configured sequence/feature dimensions do not match model"); + if (expected_observation != 0 && sequence * feature != expected_observation) + throw std::invalid_argument("sequence_length * feature_size does not match observation_size"); + input_shape_ = {1, static_cast(sequence), static_cast(feature)}; + info_.sequence_length = sequence; + info_.feature_size = feature; + } + input_buffer_.resize( + std::accumulate(input_shape_.begin(), input_shape_.end(), std::size_t{1}, [](auto value, auto dim) { + return value * static_cast(dim); + })); + + std::size_t output_size = 1; + bool output_dynamic = false; + for (std::size_t index = raw_output_shape.size() >= 2 ? 1 : 0; index < raw_output_shape.size(); ++index) { + if (raw_output_shape[index] <= 0) + output_dynamic = true; + else + output_size *= static_cast(raw_output_shape[index]); + } + if (output_dynamic) { + if (config.action_size == 0) + throw std::invalid_argument("dynamic output needs action_size"); + output_size = config.action_size; + } else if (config.action_size != 0 && output_size != config.action_size) { + throw std::invalid_argument("model output size does not match action_size"); + } + if (output_size == 0) + throw std::invalid_argument("model output must contain at least one action"); + output_size_ = output_size; } std::optional OnnxRuntime::metadata(const char* key) const { diff --git a/src/policy/onnx_runtime.hpp b/src/policy/onnx_runtime.hpp index 791275e..2113cb5 100644 --- a/src/policy/onnx_runtime.hpp +++ b/src/policy/onnx_runtime.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -14,12 +13,36 @@ namespace rmcs_rl { class OnnxRuntime { public: + struct Config { + std::string model_path; + std::string input_name = "obs"; + std::string output_name = "actions"; + std::string model_type = "auto"; + std::size_t sequence_length = 0; + std::size_t feature_size = 0; + std::size_t observation_size = 0; + std::size_t action_size = 0; + }; + + struct Info { + std::string model_type; + std::size_t input_rank = 0; + std::size_t output_rank = 0; + std::size_t sequence_length = 1; + std::size_t feature_size = 0; + }; + + explicit OnnxRuntime(const Config& config); + + // Kept for small external users of the old deployment API. OnnxRuntime( const std::string& model_path, const std::string& input_name, - const std::string& output_name); + const std::string& output_name) + : OnnxRuntime(Config{model_path, input_name, output_name}) {} [[nodiscard]] std::size_t input_size() const { return input_buffer_.size(); } [[nodiscard]] std::size_t output_size() const { return output_size_; } + [[nodiscard]] const Info& info() const { return info_; } [[nodiscard]] std::optional metadata(const char* key) const; void run(std::span input, std::span output); @@ -31,9 +54,10 @@ class OnnxRuntime { Ort::Session session_{nullptr}; std::string input_name_; std::string output_name_; - std::array input_shape_{}; + std::vector input_shape_; std::vector input_buffer_; std::size_t output_size_ = 0; + Info info_; }; } // namespace rmcs_rl diff --git a/src/policy/policy_model.cpp b/src/policy/policy_model.cpp index f950d14..535eb5f 100644 --- a/src/policy/policy_model.cpp +++ b/src/policy/policy_model.cpp @@ -45,10 +45,23 @@ std::optional clip_metadata(const OnnxRuntime& runtime, const char* key) } // namespace PolicyModel::PolicyModel(const Config& config) - : runtime_(config.path, config.input_name, config.output_name) { + : runtime_(OnnxRuntime::Config{ + config.path, + config.input_name, + config.output_name, + config.model_type, + config.sequence_length, + config.feature_size, + config.observation_size, + config.action_size}) { info_.path = config.path; info_.obs_size = runtime_.input_size(); info_.action_size = runtime_.output_size(); + info_.model_type = runtime_.info().model_type; + info_.input_rank = runtime_.info().input_rank; + info_.output_rank = runtime_.info().output_rank; + info_.sequence_length = runtime_.info().sequence_length; + info_.feature_size = runtime_.info().feature_size; std::string error; if (!model_id_of_file(config.path, info_.model_id, error)) throw std::runtime_error(error); diff --git a/src/policy/policy_model.hpp b/src/policy/policy_model.hpp index e12ccf7..e0a965c 100644 --- a/src/policy/policy_model.hpp +++ b/src/policy/policy_model.hpp @@ -17,6 +17,11 @@ class PolicyModel { std::string path; std::string input_name = "obs"; std::string output_name = "actions"; + std::string model_type = "auto"; + std::size_t sequence_length = 0; + std::size_t feature_size = 0; + std::size_t observation_size = 0; + std::size_t action_size = 0; bool normalization_from_metadata = true; std::optional obs_clip; std::optional action_clip; @@ -29,6 +34,11 @@ class PolicyModel { std::string version; std::size_t obs_size = 0; std::size_t action_size = 0; + std::string model_type; + std::size_t input_rank = 0; + std::size_t output_rank = 0; + std::size_t sequence_length = 1; + std::size_t feature_size = 0; std::uint64_t layout_hash = 0; std::uint64_t model_id = 0; }; diff --git a/src/policy_server.cpp b/src/policy_server.cpp index 6039c40..dc78992 100644 --- a/src/policy_server.cpp +++ b/src/policy_server.cpp @@ -39,6 +39,27 @@ class PolicyServer final : public rclcpp::Node { ament_index_cpp::get_package_share_directory("rmcs_rl") + "/" + config.path; config.input_name = string_or(*this, "input_name", "obs"); config.output_name = string_or(*this, "output_name", "actions"); + config.model_type = string_or(*this, "model_type", "auto"); + if (const auto value = integer_parameter(*this, "sequence_length"); value.has_value()) { + if (*value < 1) + throw std::invalid_argument("policy_server: sequence_length must be positive"); + config.sequence_length = static_cast(*value); + } + if (const auto value = integer_parameter(*this, "feature_size"); value.has_value()) { + if (*value < 1) + throw std::invalid_argument("policy_server: feature_size must be positive"); + config.feature_size = static_cast(*value); + } + if (const auto value = integer_parameter(*this, "rl_obs_size"); value.has_value()) { + if (*value < 1) + throw std::invalid_argument("policy_server: rl_obs_size must be positive"); + config.observation_size = static_cast(*value); + } + if (const auto value = integer_parameter(*this, "rl_action_size"); value.has_value()) { + if (*value < 1) + throw std::invalid_argument("policy_server: rl_action_size must be positive"); + config.action_size = static_cast(*value); + } config.normalization_from_metadata = bool_or(*this, "normalization_from_metadata", true); if (const double clip = number_or(*this, "obs_clip", -1.0); clip >= 0.0) config.obs_clip = clip; @@ -63,9 +84,10 @@ class PolicyServer final : public rclcpp::Node { const auto& info = model_->info(); RCLCPP_INFO(get_logger(), "policy loaded: %s", info.path.c_str()); RCLCPP_INFO( - get_logger(), "model_id=%s layout_hash=%s version=%s obs=%zu action=%zu", + get_logger(), "model_id=%s layout_hash=%s version=%s type=%s input_rank=%zu output_rank=%zu obs=%zu action=%zu", hex16(info.model_id).c_str(), hex16(info.layout_hash).c_str(), info.version.c_str(), - info.obs_size, info.action_size); + info.model_type.c_str(), info.input_rank, info.output_rank, info.obs_size, + info.action_size); RCLCPP_INFO(get_logger(), "obs signature: %s", info.obs_signature.c_str()); RCLCPP_INFO(get_logger(), "action signature: %s", info.actions_signature.c_str()); RCLCPP_INFO(get_logger(), "waiting for obs on %s/obs", rl_base.c_str()); diff --git a/test/gen_synthetic_policy.py b/test/gen_synthetic_policy.py index 0994648..f739ecf 100644 --- a/test/gen_synthetic_policy.py +++ b/test/gen_synthetic_policy.py @@ -8,18 +8,36 @@ import rl_layout as layout -def _export_with_onnx(obs: int, act: int, output: str) -> None: - """actions = obs @ W with zero weights; no training dependency.""" +def _export_with_onnx(obs: int, act: int, output: str, model_type: str, + sequence_length: int, feature_size: int) -> None: + """Export a zero-action MLP/sequence fixture without a training dependency.""" import numpy as np import onnx from onnx import TensorProto, helper, numpy_helper - weight = numpy_helper.from_array(np.zeros((obs, act), dtype=np.float32), name="W") - node = helper.make_node("MatMul", ["obs", "W"], ["actions"], name="zero_action") + if sequence_length > 1: + input_shape = [1, sequence_length, feature_size] + if model_type == "transformer": + node = helper.make_node( + "ReduceMean", ["obs"], ["pooled"], name="sequence_pool", axes=[1], keepdims=0) + weight_shape = (feature_size, act) + matmul_input = "pooled" + else: + node = helper.make_node("Flatten", ["obs"], ["flat"], name="flatten_history", axis=1) + weight_shape = (obs, act) + matmul_input = "flat" + else: + input_shape = [1, obs] + node = None + weight_shape = (obs, act) + matmul_input = "obs" + weight = numpy_helper.from_array(np.zeros(weight_shape, dtype=np.float32), name="W") + matmul = helper.make_node("MatMul", [matmul_input, "W"], ["actions"], name="zero_action") + nodes = [node, matmul] if node is not None else [matmul] graph = helper.make_graph( - [node], + nodes, "zero_policy", - [helper.make_tensor_value_info("obs", TensorProto.FLOAT, [1, obs])], + [helper.make_tensor_value_info("obs", TensorProto.FLOAT, input_shape)], [helper.make_tensor_value_info("actions", TensorProto.FLOAT, [1, act])], [weight], ) @@ -32,10 +50,16 @@ def _export_with_onnx(obs: int, act: int, output: str) -> None: def main() -> None: parser = argparse.ArgumentParser( - description="生成零动作合成策略 ONNX(obs float32[1,N] -> actions float32[1,M])" + description="生成零动作合成策略 ONNX(支持 MLP/Transformer 序列输入)" ) parser.add_argument("--obs", type=int, default=None, help="observation size(缺省 22)") parser.add_argument("--act", type=int, default=None, help="action size(缺省 4)") + parser.add_argument("--model-type", choices=("mlp", "transformer", "generic"), default="mlp", + help="fixture 结构;MLP 可生成 rank-2 或 rank-3 输入") + parser.add_argument("--sequence-length", type=int, default=None, + help="序列长度;>1 时生成 rank-3 输入") + parser.add_argument("--feature-size", type=int, default=None, + help="单帧维度;缺省由 obs/sequence 推导") parser.add_argument("--from-config", "--config", dest="config", default=None, help="部署 YAML:由 observation_terms/action_terms 推导 obs/act 尺寸") parser.add_argument("--node", default=layout.DEFAULT_NODE, @@ -66,12 +90,18 @@ def main() -> None: print(f"ERROR: obs/act 必须为正整数(obs={obs} act={act})", file=sys.stderr) sys.exit(1) - _export_with_onnx(obs, act, args.output) + sequence_length = args.sequence_length or 1 + if sequence_length < 1: + print("ERROR: sequence-length 必须 >= 1", file=sys.stderr) + sys.exit(1) + feature_size = args.feature_size or (obs // sequence_length if obs % sequence_length == 0 else 0) + if feature_size <= 0 or sequence_length * feature_size != obs: + print("ERROR: obs 必须能按 sequence-length 分解为正整数 feature-size", file=sys.stderr) + sys.exit(1) + _export_with_onnx(obs, act, args.output, args.model_type, sequence_length, feature_size) - print( - f"wrote {args.output}: obs float32[1,{obs}] -> actions float32[1,{act}] " - "(zero policy)" - ) + input_desc = f"[1,{obs}]" if sequence_length == 1 else f"[1,{sequence_length},{feature_size}]" + print(f"wrote {args.output}: obs float32{input_desc} -> actions float32[1,{act}] (zero policy)") if __name__ == "__main__": diff --git a/tool/check_policy_contract.py b/tool/check_policy_contract.py index c9dc793..a39546f 100644 --- a/tool/check_policy_contract.py +++ b/tool/check_policy_contract.py @@ -4,8 +4,8 @@ Two modes: * self-check (no --config; used by CI, deployment YAML lives in the RMCS repo): - model loads; one input "obs" / one output "actions"; float32; rank 2; - batch 1 or dynamic; concrete feature dimensions. Layout metadata is OPTIONAL: + model loads; one input "obs" / one output "actions"; float32; rank 1/2/3; + MLP uses rank 2 or rank 3 and Transformer uses rank 3. Layout metadata is OPTIONAL: - missing / v1 -> SKIP (stamped layout metadata is optional for model-only self-check) - present v2 -> signatures must be internally consistent with the tensor sizes, and policy_layout_hash must match those signatures @@ -132,8 +132,9 @@ def _check_normalization(report, meta, obs_size): report.check(key, math.isfinite(value) and value > 0.0, f"{key}={text}") -def _dummy_inference(report, model_path, obs_size, act_size): - """跑一次零输入推理,确认输出有限、形状正确(无 onnxruntime 则跳过)。""" +def _dummy_inference(report, model_path, obs_size, act_size, model_type, + input_rank, sequence_length, feature_size): + """跑一次零输入推理,确认输出有限、元素数正确(无 onnxruntime 则跳过)。""" try: import numpy as np import onnxruntime as ort @@ -142,16 +143,21 @@ def _dummy_inference(report, model_path, obs_size, act_size): return try: session = ort.InferenceSession(str(model_path), providers=["CPUExecutionProvider"]) - obs = np.zeros((1, obs_size), dtype=np.float32) + if input_rank == 3: + obs = np.zeros((1, sequence_length, feature_size), dtype=np.float32) + elif input_rank == 1: + obs = np.zeros((obs_size,), dtype=np.float32) + else: + obs = np.zeros((1, obs_size), dtype=np.float32) actions = session.run(["actions"], {"obs": obs})[0] except Exception as exc: report.check("dummy inference", False, f"{type(exc).__name__}: {exc}") return finite = bool(np.isfinite(actions).all()) - shape_ok = list(actions.shape) == [1, act_size] + shape_ok = int(np.prod(actions.shape, dtype=np.int64)) == act_size report.check( "dummy inference", finite and shape_ok, - f"actions{list(actions.shape)} finite={finite} " + f"actions{list(actions.shape)} elements={actions.size} finite={finite} " f"range=[{actions.min():.4f},{actions.max():.4f}]", ) @@ -171,6 +177,12 @@ def main() -> None: help="期望的观测尺寸(缺省取模型形状)") parser.add_argument("--act", type=int, default=None, help="期望的动作尺寸(缺省取模型形状)") + parser.add_argument("--model-type", choices=("auto", "mlp", "transformer", "generic"), + default="auto", help="模型结构(auto 按 metadata/输入 rank 推断)") + parser.add_argument("--sequence-length", type=int, default=None, + help="Transformer 序列长度(动态输入或无 YAML 时使用)") + parser.add_argument("--feature-size", type=int, default=None, + help="Transformer 单帧维度(动态输入或无 YAML 时使用)") parser.add_argument("--expect-model-id", default=None, help="可选:期望的 model_id(16 位 hex),用于部署对账") args = parser.parse_args() @@ -251,23 +263,80 @@ def _dtype_name(value_info): and out.type.tensor_type.elem_type == TensorProto.FLOAT, f"obs={_dtype_name(inp)} actions={_dtype_name(out)}") in_shape, out_shape = _shape_of(inp), _shape_of(out) - report.check("rank 2", len(in_shape) == 2 and len(out_shape) == 2, - f"obs={in_shape} actions={out_shape}") - if len(in_shape) != 2 or len(out_shape) != 2: - print("== SUMMARY: FAIL (秩不为 2,后续检查跳过) ==") + meta = {prop.key: prop.value for prop in model.metadata_props} + declared_type = meta.get("rmcs_model_type", "").strip().lower() + report.check("model_type metadata", declared_type in ("", "mlp", "transformer", "generic"), + f"rmcs_model_type={declared_type or ''}") + if declared_type and args.model_type not in ("auto", "generic"): + report.check("model_type parameter/metadata", args.model_type == declared_type, + f"parameter={args.model_type} metadata={declared_type}") + model_type = declared_type if args.model_type == "auto" and declared_type else args.model_type + if model_type == "auto": + model_type = {1: "generic", 2: "mlp", 3: "transformer"}.get(len(in_shape), "generic") + rank_ok = ((model_type == "mlp" and len(in_shape) in (2, 3)) + or (model_type == "transformer" and len(in_shape) == 3) + or (model_type == "generic" and 1 <= len(in_shape) <= 3)) + report.check("input rank/model type", rank_ok, + f"model_type={model_type} obs_rank={len(in_shape)} actions_rank={len(out_shape)}") + if not rank_ok: + print("== SUMMARY: FAIL (输入 rank 与模型结构不匹配,后续检查跳过) ==") sys.exit(1) - batch_ok = all( - dim == 1 or dim is None or isinstance(dim, str) - for dim in (in_shape[0], out_shape[0]) - ) + batch_ok = all(dim == 1 or dim is None or isinstance(dim, str) + for dim in ((in_shape[0],) if len(in_shape) >= 2 else ())) + if len(out_shape) >= 2: + batch_ok = batch_ok and (out_shape[0] == 1 or out_shape[0] is None + or isinstance(out_shape[0], str)) report.check("batch dimension", batch_ok, - f"obs={in_shape[0]!r} actions={out_shape[0]!r}(允许 1 或动态维)") - model_obs, model_act = in_shape[1], out_shape[1] - if not isinstance(model_obs, int) or not isinstance(model_act, int) \ - or model_obs <= 0 or model_act <= 0: - report.check("concrete obs/action feature size", False, - f"obs={in_shape} actions={out_shape}(特征维必须是正整数)") + f"obs={in_shape[0] if len(in_shape) >= 2 else ''!r} " + f"actions={out_shape[0] if len(out_shape) >= 2 else ''!r}(允许 1 或动态维)") + + history_length = layout.history_length(args.config, args.node) if args.config else 1 + metadata_sequence = metadata_feature = 0 + for key in ("rmcs_history_length", "rmcs_obs_frame_size"): + text = meta.get(key) + if text is None: + continue + try: + value = int(text) + except ValueError: + report.check(key, False, f"{key}={text!r} 不是正整数") + continue + report.check(key, value > 0, f"{key}={value}") + if key == "rmcs_history_length": + metadata_sequence = value + else: + metadata_feature = value + config_feature_size = obs_size // history_length if obs_size is not None else None + input_tail = in_shape[0:] if len(in_shape) == 1 else in_shape[1:] + sequence_length = args.sequence_length or metadata_sequence or ( + history_length if len(in_shape) == 3 else 1) + feature_size = args.feature_size or metadata_feature or ( + config_feature_size if len(in_shape) == 3 else None) + if len(in_shape) == 3: + declared_sequence, declared_feature = input_tail + if isinstance(declared_sequence, int) and declared_sequence > 0: + sequence_length = declared_sequence + if isinstance(declared_feature, int) and declared_feature > 0: + feature_size = declared_feature + model_obs = sequence_length * feature_size if sequence_length and feature_size else None + else: + model_obs = input_tail[0] if len(input_tail) == 1 else None + output_tail = out_shape[0:] if len(out_shape) == 1 else out_shape[1:] + model_act = 1 + dynamic_output = False + for dim in output_tail: + if isinstance(dim, int) and dim > 0: + model_act *= dim + else: + dynamic_output = True + if dynamic_output: + model_act = act_size + concrete_ok = (isinstance(model_obs, int) and model_obs > 0 + and isinstance(model_act, int) and model_act > 0) + report.check("concrete obs/action size", concrete_ok, + f"obs={model_obs} actions={model_act} shape obs={in_shape} actions={out_shape}") + if not concrete_ok: print(f"== SUMMARY: {'PASS' if report.ok else 'FAIL'} ==") sys.exit(0 if report.ok else 1) @@ -279,11 +348,10 @@ def _dtype_name(value_info): report.info("model sizes", f"obs={model_obs} actions={model_act}(取自模型)") report.check("obs feature shape", model_obs == obs_size, - f"{in_shape} feature={model_obs} expected={obs_size}") + f"{in_shape} flattened={model_obs} expected={obs_size}") report.check("actions feature shape", model_act == act_size, - f"{out_shape} feature={model_act} expected={act_size}") + f"{out_shape} flattened={model_act} expected={act_size}") - meta = {prop.key: prop.value for prop in model.metadata_props} obs_meta, act_meta = meta.get("rmcs_obs_layout"), meta.get("rmcs_actions_layout") version_line = meta.get("policy_version") if version_line: @@ -362,7 +430,8 @@ def _dtype_name(value_info): else f"模型={declared_hash!r} 期望={layout.hex16(digest)}") _check_normalization(report, meta, obs_size) - _dummy_inference(report, args.model, obs_size, act_size) + _dummy_inference(report, args.model, obs_size, act_size, model_type, len(in_shape), + sequence_length, feature_size or obs_size) try: file_id = layout.model_id(args.model) diff --git a/tool/rl_layout.py b/tool/rl_layout.py index a67a222..f0f38d5 100644 --- a/tool/rl_layout.py +++ b/tool/rl_layout.py @@ -757,7 +757,10 @@ def write_metadata(model_path, updates: Dict[str, object]) -> None: def stamp_metadata(model_path, obs_sig: str, act_sig: str, obs_size: int, act_size: int, policy_version: Optional[str] = None, obs_mean=None, obs_std=None, - obs_clip=None, action_clip=None) -> Dict[str, str]: + obs_clip=None, action_clip=None, + model_type: Optional[str] = None, + sequence_length: Optional[int] = None, + feature_size: Optional[int] = None) -> Dict[str, str]: """按规范串盖章:返回实际写入的 metadata(含 policy_layout_hash)。""" updates = { "rmcs_obs_layout": obs_sig, @@ -774,6 +777,12 @@ def stamp_metadata(model_path, obs_sig: str, act_sig: str, obs_size: int, act_si updates["rmcs_obs_clip"] = format_scale(obs_clip) if action_clip is not None: updates["rmcs_action_clip"] = format_scale(action_clip) + if model_type: + updates["rmcs_model_type"] = str(model_type).lower() + if sequence_length is not None: + updates["rmcs_history_length"] = str(int(sequence_length)) + if feature_size is not None: + updates["rmcs_obs_frame_size"] = str(int(feature_size)) write_metadata(model_path, updates) return updates diff --git a/tool/stamp_layout_metadata.py b/tool/stamp_layout_metadata.py index b67346e..eaea382 100644 --- a/tool/stamp_layout_metadata.py +++ b/tool/stamp_layout_metadata.py @@ -14,6 +14,9 @@ rmcs_obs_mean/std 可选(--obs-mean/--obs-std,长度必须 == rl_obs_size) rmcs_obs_clip 可选单浮点(--obs-clip) rmcs_action_clip 可选单浮点(--action-clip) + rmcs_model_type 可选结构标识 mlp/transformer/generic(--model-type) + rmcs_history_length 可选序列长度(Transformer 或带历史帧 MLP) + rmcs_obs_frame_size 可选单帧维度 用法: python3 stamp_layout_metadata.py --model policy.onnx --from-config deploy.yaml @@ -63,6 +66,12 @@ def main() -> None: parser.add_argument("--obs-std", default=None, help="经验标准差,逗号分隔,长度同 obs_size") parser.add_argument("--obs-clip", type=float, default=None, help="观测 clip(单浮点,可选)") parser.add_argument("--action-clip", type=float, default=None, help="动作 clip(单浮点,可选)") + parser.add_argument("--model-type", choices=("mlp", "transformer", "generic"), default=None, + help="模型结构标识;不填则由部署端按输入 rank 推断") + parser.add_argument("--sequence-length", type=int, default=None, + help="序列长度(缺省从 YAML history_length 取值)") + parser.add_argument("--feature-size", type=int, default=None, + help="单帧观测维度(缺省由 rl_obs_size/history_length 推导)") args = parser.parse_args() try: @@ -81,12 +90,31 @@ def main() -> None: if value is not None and (not math.isfinite(value) or value <= 0.0): raise layout.LayoutError(f"{option}={value!r} 必须是有限正数") + history_length = layout.history_length(args.config, args.node) + sequence_length = args.sequence_length if args.sequence_length is not None else ( + history_length if args.model_type in ("mlp", "transformer") else None) + feature_size = args.feature_size if args.feature_size is not None else ( + obs_size // history_length if args.model_type in ("mlp", "transformer") else None) + if feature_size is None and sequence_length is not None and obs_size % sequence_length == 0: + feature_size = obs_size // sequence_length + if sequence_length is not None and sequence_length < 1: + raise layout.LayoutError("--sequence-length 必须 >= 1") + if feature_size is not None and feature_size < 1: + raise layout.LayoutError("--feature-size 必须 >= 1") + if sequence_length is not None and feature_size is None: + raise layout.LayoutError("给出 --sequence-length 时必须能推导或指定 --feature-size") + if sequence_length is not None and sequence_length * feature_size != obs_size: + raise layout.LayoutError( + f"sequence_length * feature_size={sequence_length * feature_size} != rl_obs_size={obs_size}") + before = layout.read_metadata(args.model) updates = layout.stamp_metadata( args.model, obs_sig, act_sig, obs_size, act_size, policy_version=args.policy_version, obs_mean=obs_mean, obs_std=obs_std, obs_clip=args.obs_clip, action_clip=args.action_clip, + model_type=args.model_type, sequence_length=sequence_length, + feature_size=feature_size, ) except layout.LayoutError as exc: print(f"ERROR: {exc}", file=sys.stderr) diff --git a/tool/stamp_model.sh b/tool/stamp_model.sh index 84348fa..fc9b392 100755 --- a/tool/stamp_model.sh +++ b/tool/stamp_model.sh @@ -5,6 +5,7 @@ # 用法: # stamp_model.sh [--version X] [--config ] [--node rl_bridge] # [--obs-mean a,b,... --obs-std a,b,...] [--obs-clip V] [--action-clip V] +# [--model-type mlp|transformer|generic] [--sequence-length N --feature-size N] # # 例: # stamp_model.sh wheel_leg_v3.onnx --version 3.0 @@ -59,7 +60,8 @@ while [[ $# -gt 0 ]]; do NODE="${2:?--node 需要值}" shift 2 ;; - --obs-mean | --obs-std | --obs-clip | --action-clip) + --obs-mean | --obs-std | --obs-clip | --action-clip \ + | --model-type | --sequence-length | --feature-size) EXTRA+=("$1" "${2:?$1 需要值}") shift 2 ;; From cdabd565239cbe2af7f3051f74281c78e7e9daf4 Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Tue, 29 Sep 2026 23:28:17 +0800 Subject: [PATCH 5/9] feat(policy): add support for extra input constants --- CMakeLists.txt | 5 +- README.md | 31 +++++- src/policy/onnx_runtime.cpp | 153 +++++++++++++++++++++++++--- src/policy/onnx_runtime.hpp | 14 +++ src/policy/policy_model.cpp | 3 +- src/policy/policy_model.hpp | 3 + src/policy_server.cpp | 33 ++++++ test/data/extra_input_identity.onnx | Bin 0 -> 281 bytes test/data/seq_history_mismatch.onnx | Bin 0 -> 463 bytes test/data/seq_identity.onnx | Bin 0 -> 463 bytes test/gen_extra_input_fixture.py | 50 +++++++++ test/gen_seq_fixtures.py | 77 ++++++++++++++ test/gen_synthetic_policy.py | 54 +++++++++- test/runtime_test.cpp | 65 ++++++++++++ test/test_layout_contract.sh | 97 ++++++++++++++++++ tool/check_policy_contract.py | 142 ++++++++++++++++++++++---- tool/stamp_layout_metadata.py | 25 ++--- 17 files changed, 691 insertions(+), 61 deletions(-) create mode 100644 test/data/extra_input_identity.onnx create mode 100644 test/data/seq_history_mismatch.onnx create mode 100644 test/data/seq_identity.onnx create mode 100644 test/gen_extra_input_fixture.py create mode 100644 test/gen_seq_fixtures.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 99a7d15..11f9629 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,7 +97,10 @@ if(BUILD_TESTING) target_include_directories(runtime_test PRIVATE src ${ONNXRUNTIME_ROOT_DIR}/include) target_link_libraries(runtime_test rmcs_rl_bridge ${ONNXRUNTIME_ROOT_DIR}/lib/libonnxruntime.so) target_compile_definitions(runtime_test PRIVATE - RMCS_RL_IDENTITY_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/normalized_identity.onnx") + RMCS_RL_IDENTITY_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/normalized_identity.onnx" + RMCS_RL_SEQ_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_identity.onnx" + RMCS_RL_SEQ_MISMATCH_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_history_mismatch.onnx" + RMCS_RL_EXTRA_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/extra_input_identity.onnx") endif() ament_export_dependencies(rosidl_default_runtime) diff --git a/README.md b/README.md index dd757c5..703179b 100644 --- a/README.md +++ b/README.md @@ -60,11 +60,28 @@ ros2 run rmcs_rl policy_server --ros-args --params-file <车辆配置.yaml> 输出支持 rank-1/2/3,只要除 batch 外的元素总数等于动作数 `M`。batch 为 1 或动态。 `auto` 优先读取 `rmcs_model_type`,没有 metadata 时才按 rank-2 推断 MLP、rank-3 推断 -Transformer。真正需要多输入(例如独立 attention mask、position id)的模型需要新增专用 -adapter,当前部署接口会在启动时明确拒绝。 +Transformer。 + +多输入模型(例如独立 attention mask)除 `obs` 外的输入必须是常量张量,在 +`policy_server` 段用 `extra_inputs.<输入名>: [元素列表]` 声明;启动时校验名字对齐、 +元素数量与形状一致、数值有限,缺声明或声明了模型没有的输入都会拒绝; +输出仍必须是唯一的 `actions`。 + +```yaml +policy_server: + ros__parameters: + extra_inputs: + attn_mask: [1, 1, 1, 1] # 展平常量,长度 = 模型该输入非 batch 维元素数 +``` + 部署模型须含 `rmcs_obs_layout`、`rmcs_actions_layout`;建议带 `policy_layout_hash` 和版本。 `history_length × 单帧维数 = rl_obs_size`。归一化均值和标准差必须成对提供,标准差为正数。 +rank-3 模型的序列切分受强制约束:模型的 `T == history_length`、`F == 单帧维数`。 +盖章默认把 `rmcs_history_length`、`rmcs_obs_frame_size` 从 YAML 写入 metadata; +契约工具与 policy_server 启动时按 `--sequence-length/rmcs_history_length/history_length` +(参数 > metadata > 模型声明)逐级等值校验,任一级不符即拒绝。 + 带历史帧的模型示例(桥和策略进程都要使用同一历史长度): ```yaml @@ -80,12 +97,13 @@ policy_server: rl_obs_size: 208 ``` -模型盖章时可以把结构和序列维度写进 metadata,避免只靠 rank 猜测: +盖章默认写入序列键(`rmcs_history_length`/`rmcs_obs_frame_size`,取自 YAML); +`rmcs_model_type` 可选,缺省由部署端按输入 rank 推断: ```sh python3 src/rmcs_rl/tool/stamp_layout_metadata.py \ --model policy.onnx --from-config <车辆配置.yaml> --node rl_bridge \ - --model-type transformer --sequence-length 8 --feature-size 26 + --model-type transformer ``` 新模型先核对训练的观测顺序、坐标、基准角、缩放和频率,再盖章: @@ -127,5 +145,8 @@ colcon test --merge-install --packages-select rmcs_rl rmcs_core PYTHON=<带 onnx、onnxruntime、PyYAML 的 Python> bash src/rmcs_rl/test/test_layout_contract.sh ``` -C++ 回归覆盖推理归一化、历史帧与跨线程动作快照;Python 回归覆盖布局解析、盖章及错误契约拒绝。 +C++ 回归覆盖推理归一化、历史帧、rank-3 序列输入、extra_inputs 常量喂入与错配拒绝、 +跨线程动作快照;Python 回归覆盖布局解析、盖章、T==history 强制、model_type/rank 匹配、 +多输入声明对账及错误契约拒绝。夹具由 `test/gen_seq_fixtures.py`、 +`test/gen_extra_input_fixture.py` 确定性生成后提交。 车辆包保留 DM 使能、帧解码、闭链几何、Body IMU 以及 MuJoCo 查看器回归。 diff --git a/src/policy/onnx_runtime.cpp b/src/policy/onnx_runtime.cpp index aac1431..8fbff25 100644 --- a/src/policy/onnx_runtime.cpp +++ b/src/policy/onnx_runtime.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -56,25 +57,51 @@ OnnxRuntime::OnnxRuntime(const Config& config) options.SetInterOpNumThreads(1); session_ = Ort::Session{env_, config.model_path.c_str(), options}; - if (session_.GetInputCount() != 1 || session_.GetOutputCount() != 1) + if (session_.GetOutputCount() != 1) + throw std::invalid_argument("model must have exactly one output"); + const std::size_t input_count = session_.GetInputCount(); + if (input_count == 0) + throw std::invalid_argument("model must have at least one input"); + + input_names_.reserve(input_count); + std::size_t primary_index = input_count; // sentinel: not found + for (std::size_t index = 0; index < input_count; ++index) { + const auto actual_input = session_.GetInputNameAllocated(index, allocator_); + input_names_.emplace_back(actual_input.get()); + if (input_names_.back() == input_name_) + primary_index = index; + } + if (primary_index == input_count) { + std::string listing; + for (std::size_t index = 0; index < input_count; ++index) + listing += (index == 0 ? "" : ", ") + input_names_[index]; throw std::invalid_argument( - "model must have exactly one runtime input and one output; multi-input models need a future adapter"); - const auto actual_input = session_.GetInputNameAllocated(0, allocator_); + "primary input '" + input_name_ + "' not found; model inputs: [" + listing + "]"); + } const auto actual_output = session_.GetOutputNameAllocated(0, allocator_); - if (actual_input.get() != input_name_ || actual_output.get() != output_name_) + if (actual_output.get() != output_name_) throw std::invalid_argument( - "tensor names must be '" + input_name_ + "' / '" + output_name_ + "', got '" - + actual_input.get() + "' / '" + actual_output.get() + "'"); + "output tensor must be named '" + output_name_ + "', got '" + actual_output.get() + + "'"); + for (std::size_t index = 0; index < input_count; ++index) { + const auto input_type = session_.GetInputTypeInfo(index); + if (input_type.GetONNXType() != ONNX_TYPE_TENSOR) + throw std::invalid_argument( + "input '" + input_names_[index] + "' must be a tensor"); + const auto input_info = input_type.GetTensorTypeAndShapeInfo(); + if (input_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) + throw std::invalid_argument( + "input '" + input_names_[index] + "' element type must be float32"); + } // Keep TypeInfo alive while reading the TensorTypeAndShapeInfo. The // latter is a view into TypeInfo in ONNX Runtime; chaining a temporary // here can read freed type metadata on some runtime builds. - const auto input_type = session_.GetInputTypeInfo(0); + const auto input_type = session_.GetInputTypeInfo(primary_index); const auto output_type = session_.GetOutputTypeInfo(0); const auto input_info = input_type.GetTensorTypeAndShapeInfo(); const auto output_info = output_type.GetTensorTypeAndShapeInfo(); - if (input_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT - || output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) + if (output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) throw std::invalid_argument("tensor element type must be float32"); const auto raw_input_shape = input_info.GetShape(); @@ -169,7 +196,12 @@ OnnxRuntime::OnnxRuntime(const Config& config) "rank-3 input needs concrete sequence/feature dimensions or sequence_length/feature_size"); if ((declared_sequence != 0 && declared_sequence != sequence) || (declared_feature != 0 && declared_feature != feature)) - throw std::invalid_argument("configured sequence/feature dimensions do not match model"); + throw std::invalid_argument( + "model input dims (T=" + std::to_string(declared_sequence) + + ", F=" + std::to_string(declared_feature) + ") do not match expected (T=" + + std::to_string(sequence) + ", F=" + std::to_string(feature) + + ") from sequence_length/feature_size or rmcs_history_length/rmcs_obs_frame_size " + "(model sequence must equal bridge history_length)"); if (expected_observation != 0 && sequence * feature != expected_observation) throw std::invalid_argument("sequence_length * feature_size does not match observation_size"); input_shape_ = {1, static_cast(sequence), static_cast(feature)}; @@ -181,6 +213,79 @@ OnnxRuntime::OnnxRuntime(const Config& config) return value * static_cast(dim); })); + // Extra (non-obs) inputs: every one needs a constant from extra_inputs.*, + // and every declared constant must match a model input. + std::map> remaining = config.extra_input_values; + constant_slot_.assign(input_count, -1); + for (std::size_t index = 0; index < input_count; ++index) { + if (index == primary_index) + continue; + const auto found = remaining.find(input_names_[index]); + if (found == remaining.end()) + throw std::invalid_argument( + "model input '" + input_names_[index] + + "' has no constant value; declare it under policy_server extra_inputs." + " in the vehicle YAML"); + const std::vector source = found->second; + remaining.erase(found); + + const auto extra_type = session_.GetInputTypeInfo(index); + if (extra_type.GetONNXType() != ONNX_TYPE_TENSOR) + throw std::invalid_argument( + "extra input '" + input_names_[index] + "' must be a tensor"); + const auto extra_info = extra_type.GetTensorTypeAndShapeInfo(); + if (extra_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) + throw std::invalid_argument( + "extra input '" + input_names_[index] + "' element type must be float32"); + const auto raw_shape = extra_info.GetShape(); + if (raw_shape.empty() || raw_shape.size() > 3) + throw std::invalid_argument( + "extra input '" + input_names_[index] + "' rank must be 1, 2, or 3"); + + ConstantInput constant; + constant.name = input_names_[index]; + std::size_t elements = 1; + std::size_t first_dim = 0; + if (raw_shape.size() >= 2) { + if (!batch_dimension_ok(raw_shape[0])) + throw std::invalid_argument( + "extra input '" + constant.name + "' batch dimension must be 1 or dynamic"); + constant.shape.push_back(1); + first_dim = 1; + } + for (std::size_t dim = first_dim; dim < raw_shape.size(); ++dim) { + if (raw_shape[dim] <= 0) + throw std::invalid_argument( + "extra input '" + constant.name + + "' non-batch dimensions must be concrete (dynamic dim " + + std::to_string(dim) + ")"); + constant.shape.push_back(raw_shape[dim]); + elements *= static_cast(raw_shape[dim]); + } + if (source.size() != elements) + throw std::invalid_argument( + "extra input '" + constant.name + "' needs " + std::to_string(elements) + + " values, got " + std::to_string(source.size())); + constant.values.reserve(elements); + for (const double value : source) { + if (!std::isfinite(value)) + throw std::invalid_argument( + "extra input '" + constant.name + "' contains a non-finite value"); + constant.values.push_back(static_cast(value)); + } + constant_slot_[index] = static_cast(constants_.size()); + constants_.push_back(std::move(constant)); + } + if (!remaining.empty()) { + std::string listing; + for (const auto& [name, values] : remaining) { + static_cast(values); + listing += (listing.empty() ? "" : ", ") + name; + } + throw std::invalid_argument( + "extra_inputs entry(s) [" + listing + "] have no matching model input"); + } + std::size_t output_size = 1; bool output_dynamic = false; for (std::size_t index = raw_output_shape.size() >= 2 ? 1 : 0; index < raw_output_shape.size(); ++index) { @@ -213,13 +318,29 @@ void OnnxRuntime::run(std::span input, std::span output) { if (input.size() != input_size() || output.size() != output_size()) throw std::invalid_argument("inference buffers do not match model dimensions"); std::copy(input.begin(), input.end(), input_buffer_.begin()); - auto tensor = Ort::Value::CreateTensor( - memory_info_, input_buffer_.data(), input_buffer_.size(), input_shape_.data(), - input_shape_.size()); - const char* input_names[] = {input_name_.c_str()}; + + const std::size_t input_count = input_names_.size(); + std::vector input_names; + input_names.reserve(input_count); + std::vector input_tensors; + input_tensors.reserve(input_count); + for (std::size_t index = 0; index < input_count; ++index) { + input_names.push_back(input_names_[index].c_str()); + if (constant_slot_[index] < 0) { + input_tensors.push_back(Ort::Value::CreateTensor( + memory_info_, input_buffer_.data(), input_buffer_.size(), input_shape_.data(), + input_shape_.size())); + } else { + auto& constant = constants_[static_cast(constant_slot_[index])]; + input_tensors.push_back(Ort::Value::CreateTensor( + memory_info_, constant.values.data(), constant.values.size(), constant.shape.data(), + constant.shape.size())); + } + } const char* output_names[] = {output_name_.c_str()}; - const auto outputs = - session_.Run(Ort::RunOptions{nullptr}, input_names, &tensor, 1, output_names, 1); + const auto outputs = session_.Run( + Ort::RunOptions{nullptr}, input_names.data(), input_tensors.data(), input_count, + output_names, 1); if (outputs.size() != 1 || !outputs[0].IsTensor() || outputs[0].GetTensorTypeAndShapeInfo().GetElementCount() != output_size()) throw std::runtime_error("inference output does not match model dimensions"); diff --git a/src/policy/onnx_runtime.hpp b/src/policy/onnx_runtime.hpp index 2113cb5..4f3cc8d 100644 --- a/src/policy/onnx_runtime.hpp +++ b/src/policy/onnx_runtime.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -22,6 +23,9 @@ class OnnxRuntime { std::size_t feature_size = 0; std::size_t observation_size = 0; std::size_t action_size = 0; + // 额外输入张量的常量值(键 = 模型输入名,值 = 展平的元素), + // 由 policy_server 的 extra_inputs. YAML 参数提供。 + std::map> extra_input_values; }; struct Info { @@ -48,12 +52,22 @@ class OnnxRuntime { void run(std::span input, std::span output); private: + struct ConstantInput { + std::string name; + std::vector shape; + std::vector values; + }; + Ort::Env env_{ORT_LOGGING_LEVEL_WARNING, "rmcs_rl"}; Ort::AllocatorWithDefaultOptions allocator_; Ort::MemoryInfo memory_info_{Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault)}; Ort::Session session_{nullptr}; std::string input_name_; std::string output_name_; + std::vector input_names_; // 会话输入顺序 + std::vector constants_; + // 与 input_names_ 并行:主输入为 -1,其余为 constants_ 下标 + std::vector constant_slot_; std::vector input_shape_; std::vector input_buffer_; std::size_t output_size_ = 0; diff --git a/src/policy/policy_model.cpp b/src/policy/policy_model.cpp index 535eb5f..8a6f548 100644 --- a/src/policy/policy_model.cpp +++ b/src/policy/policy_model.cpp @@ -53,7 +53,8 @@ PolicyModel::PolicyModel(const Config& config) config.sequence_length, config.feature_size, config.observation_size, - config.action_size}) { + config.action_size, + config.extra_input_values}) { info_.path = config.path; info_.obs_size = runtime_.input_size(); info_.action_size = runtime_.output_size(); diff --git a/src/policy/policy_model.hpp b/src/policy/policy_model.hpp index e0a965c..552f681 100644 --- a/src/policy/policy_model.hpp +++ b/src/policy/policy_model.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -25,6 +26,8 @@ class PolicyModel { bool normalization_from_metadata = true; std::optional obs_clip; std::optional action_clip; + // 键 = 额外输入张量名,值 = 展平常量(来自 policy_server extra_inputs.) + std::map> extra_input_values; }; struct Info { diff --git a/src/policy_server.cpp b/src/policy_server.cpp index dc78992..071c792 100644 --- a/src/policy_server.cpp +++ b/src/policy_server.cpp @@ -1,13 +1,16 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include +#include #include #include @@ -60,6 +63,36 @@ class PolicyServer final : public rclcpp::Node { throw std::invalid_argument("policy_server: rl_action_size must be positive"); config.action_size = static_cast(*value); } + for (const auto& parameter_name : list_parameters({"extra_inputs"}, 1).names) { + static constexpr std::string_view kPrefix = "extra_inputs."; + if (!parameter_name.starts_with(kPrefix)) + continue; + const auto extra_name = parameter_name.substr(kPrefix.size()); + if (extra_name.empty()) + throw std::invalid_argument( + "policy_server: extra_inputs entry must be extra_inputs."); + const auto parameter = get_parameter(parameter_name); + std::vector values; + switch (parameter.get_type()) { + case rclcpp::ParameterType::PARAMETER_DOUBLE_ARRAY: + values = parameter.as_double_array(); + break; + case rclcpp::ParameterType::PARAMETER_INTEGER_ARRAY: + for (const auto item : parameter.as_integer_array()) + values.push_back(static_cast(item)); + break; + default: + throw std::invalid_argument( + "policy_server: " + parameter_name + " must be a numeric list"); + } + if (values.empty()) + throw std::invalid_argument("policy_server: " + parameter_name + " is empty"); + for (const double value : values) + if (!std::isfinite(value)) + throw std::invalid_argument( + "policy_server: " + parameter_name + " contains a non-finite value"); + config.extra_input_values.emplace(extra_name, std::move(values)); + } config.normalization_from_metadata = bool_or(*this, "normalization_from_metadata", true); if (const double clip = number_or(*this, "obs_clip", -1.0); clip >= 0.0) config.obs_clip = clip; diff --git a/test/data/extra_input_identity.onnx b/test/data/extra_input_identity.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9289bb740b645fbe580b8872cfa06de651f200ba GIT binary patch literal 281 zcmZvX%?g4*6ooVUkxNlcyP|?zw1~=VCj`}Fv>C=xYrveCxk`c$(&HBPLyNZOp6}dq zEQ?Ikg=?zf)hSG9ctgdgNUkZ;NZc@0p?5c62B!2iG-MR%5J{796f)5RU_n4%;?&#+ z0U^HuR~ZYQ9|t8&`p~ls(uO9f`waORs#f(l`eyz)8~zwRum0kP8dSPHwS-Q&;aQQ! uESD*gVYXSEg+{6J?YiL4uE-MfoVl}el@0yU|6cK7TA5qej>ign?fDO=g-`7O literal 0 HcmV?d00001 diff --git a/test/data/seq_history_mismatch.onnx b/test/data/seq_history_mismatch.onnx new file mode 100644 index 0000000000000000000000000000000000000000..423b0afe410d56a3cd066aef271be2fff36a22db GIT binary patch literal 463 zcmZutL2JS=6mG23^2(TvjEOK0df0Gm>-1I_4i94tJnbOt64EZ!LfW__6+3$Hr|fs` zw5oMDFd+|K-uJ!teb2IROU8jBlHbo*LKOQXVYJezWXk(Na0jOF6|RPy>bAX!dWY)P zpLa>$hALe}s)fE$1+HKV1vJHV8t6zQs%@(@Ci6&XA+v66LiHr&7&em@f=5Btf3s?q z*+647eSI;E^~m^lj^)Sx4oU0LduONo0?sXj9jN0IpXy)^6{}J_)9=7uAZ~(FU``J) z=C}$*!;vnWZP!yQfpD6MRO8F#@V0dGILL#-p{9xU+?(P)4dpd7w~W&Lp5-hDdC&D| z-h1%;yf^Ry*(rO+;)8LbvjxMpmNZeJkTH|8Rd(9U4ke8lQPCH}X!uttWf0DinVuJw EUx4Fx(EtDd literal 0 HcmV?d00001 diff --git a/test/data/seq_identity.onnx b/test/data/seq_identity.onnx new file mode 100644 index 0000000000000000000000000000000000000000..31c723d9fbd86fcac7bc0c7c55ec8bdf4795c0a6 GIT binary patch literal 463 zcmZutL2JS=6mG23^2(TvjEOK0df0GmbM;mj4i94tJnbOt64EZ!LfW__6+3$Hr|fs` zw5oMDFd>2W-uJ!teb2IROU8jBlHbo*LKOQXVYJezWXk(Na0jOF6|RPy>bAZ4^$yjo zKktIR4OO~|R11Bh3S7Y!3TTS!G|-VqRNGc*Oy-f<26Cgz8DkF>EF+1doEO|7O)J zvw_BF`ubuR>yh#A9E*?T4oU0LduONo0?sXj9jN0IpXy)^6{}J_)9=7uAZ~(FU``J) z=C}$*!;u3x+pecr0^u|hsm7Pf;ce;W(anRxp{9xU1~;EZW*QfJ 常量喂入与缺失/多余/数量错配的拒绝。 + +用法:python3 gen_extra_input_fixture.py +""" +import sys +from pathlib import Path + +DATA_DIR = Path(__file__).resolve().parent / "data" + + +def main() -> None: + import onnx + from onnx import TensorProto, helper + + DATA_DIR.mkdir(exist_ok=True) + add = helper.make_node("Add", ["obs", "offset"], ["actions"], name="add_offset") + graph = helper.make_graph( + [add], + "extra_input_policy", + [ + helper.make_tensor_value_info("obs", TensorProto.FLOAT, ["batch", 2]), + helper.make_tensor_value_info("offset", TensorProto.FLOAT, ["batch", 1]), + ], + [helper.make_tensor_value_info("actions", TensorProto.FLOAT, ["batch", 2])], + ) + model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 17)]) + model.ir_version = 8 + model.producer_name = "rmcs_rl/gen_extra_input_fixture" + for key, value in { + "rmcs_obs_layout": "v3-history=1|constant:0+0@2", + "rmcs_actions_layout": "v2|#0:a|#1:b", + }.items(): + entry = model.metadata_props.add() + entry.key = key + entry.value = value + onnx.checker.check_model(model) + path = DATA_DIR / "extra_input_identity.onnx" + onnx.save(model, path) + print(f"wrote {path}") + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/test/gen_seq_fixtures.py b/test/gen_seq_fixtures.py new file mode 100644 index 0000000..ac104cf --- /dev/null +++ b/test/gen_seq_fixtures.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +"""生成 rank-3 序列策略回归夹具(确定性,无训练依赖)。 + +产出(写入 test/data/): + seq_identity.onnx obs float32[batch,2,3] -> actions float32[batch,3] + Flatten 后 actions[j] = x[j] + x[j+3]; + metadata: rmcs_model_type=transformer, + rmcs_history_length=2, rmcs_obs_frame_size=3。 + seq_history_mismatch.onnx 同图,但 rmcs_history_length=3(与张量 T=2 不符), + 用于校验 policy_server 启动期拒绝。 + +用法:python3 gen_seq_fixtures.py +""" +import sys +from pathlib import Path + +DATA_DIR = Path(__file__).resolve().parent / "data" + + +def _build(history: int, frame: int, metadata: dict) -> "object": + import numpy as np + import onnx + from onnx import TensorProto, helper, numpy_helper + + obs = history * frame + act = frame + # W (obs, act) = [I; I; ...] 每个历史帧块都加到同一输出槽: + # actions[j] = sum_t x[t, j] + weight = np.zeros((obs, act), dtype=np.float32) + for t in range(history): + for j in range(act): + weight[t * frame + j, j] = 1.0 + weight_init = numpy_helper.from_array(weight, name="W") + flatten = helper.make_node("Flatten", ["obs"], ["flat"], name="flatten_seq", axis=1) + matmul = helper.make_node("MatMul", ["flat", "W"], ["actions"], name="sum_history") + graph = helper.make_graph( + [flatten, matmul], + "seq_policy", + [helper.make_tensor_value_info( + "obs", TensorProto.FLOAT, ["batch", history, frame])], + [helper.make_tensor_value_info("actions", TensorProto.FLOAT, ["batch", act])], + [weight_init], + ) + model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 17)]) + model.ir_version = 8 + model.producer_name = "rmcs_rl/gen_seq_fixtures" + for key, value in metadata.items(): + entry = model.metadata_props.add() + entry.key = key + entry.value = value + onnx.checker.check_model(model) + return model + + +def main() -> None: + import onnx + + DATA_DIR.mkdir(exist_ok=True) + shared = { + "rmcs_obs_layout": "v3-history=2|constant:0+0+0@3", + "rmcs_actions_layout": "v2|#0:a|#1:b|#2:c", + "rmcs_model_type": "transformer", + "rmcs_obs_frame_size": "3", + } + ok_meta = dict(shared, rmcs_history_length="2") + mismatch_meta = dict(shared, rmcs_history_length="3") + + ok_path = DATA_DIR / "seq_identity.onnx" + mismatch_path = DATA_DIR / "seq_history_mismatch.onnx" + onnx.save(_build(2, 3, ok_meta), ok_path) + onnx.save(_build(2, 3, mismatch_meta), mismatch_path) + print(f"wrote {ok_path}") + print(f"wrote {mismatch_path}") + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/test/gen_synthetic_policy.py b/test/gen_synthetic_policy.py index f739ecf..e8b15e8 100644 --- a/test/gen_synthetic_policy.py +++ b/test/gen_synthetic_policy.py @@ -9,8 +9,13 @@ def _export_with_onnx(obs: int, act: int, output: str, model_type: str, - sequence_length: int, feature_size: int) -> None: - """Export a zero-action MLP/sequence fixture without a training dependency.""" + sequence_length: int, feature_size: int, + extra_specs: list) -> None: + """Export a zero-action MLP/sequence fixture without a training dependency. + + extra_specs: [(name, dims)] 额外输入;每个 ReduceSum 成标量后加到主输出, + 保证额外输入被图消费(onnx.checker 要求)且输出仍为 [1, act]。 + """ import numpy as np import onnx from onnx import TensorProto, helper, numpy_helper @@ -32,12 +37,26 @@ def _export_with_onnx(obs: int, act: int, output: str, model_type: str, weight_shape = (obs, act) matmul_input = "obs" weight = numpy_helper.from_array(np.zeros(weight_shape, dtype=np.float32), name="W") - matmul = helper.make_node("MatMul", [matmul_input, "W"], ["actions"], name="zero_action") + matmul_output = "actions" if not extra_specs else "logits" + matmul = helper.make_node("MatMul", [matmul_input, "W"], [matmul_output], name="zero_action") nodes = [node, matmul] if node is not None else [matmul] + + input_infos = [helper.make_tensor_value_info("obs", TensorProto.FLOAT, input_shape)] + current = matmul_output + for index, (name, dims) in enumerate(extra_specs): + input_infos.append( + helper.make_tensor_value_info(name, TensorProto.FLOAT, [1, *dims])) + nodes.append(helper.make_node( + "ReduceSum", [name], [f"{name}_sum"], name=f"sum_{name}", keepdims=0)) + final = "actions" if index == len(extra_specs) - 1 else f"add_{index}" + nodes.append(helper.make_node( + "Add", [current, f"{name}_sum"], [final], name=f"add_{name}")) + current = final + graph = helper.make_graph( nodes, "zero_policy", - [helper.make_tensor_value_info("obs", TensorProto.FLOAT, input_shape)], + input_infos, [helper.make_tensor_value_info("actions", TensorProto.FLOAT, [1, act])], [weight], ) @@ -60,6 +79,8 @@ def main() -> None: help="序列长度;>1 时生成 rank-3 输入") parser.add_argument("--feature-size", type=int, default=None, help="单帧维度;缺省由 obs/sequence 推导") + parser.add_argument("--extra-input", action="append", default=[], metavar="NAME:DIMS", + help="额外输入张量,如 mask:4 或 pos:2x3(可重复)") parser.add_argument("--from-config", "--config", dest="config", default=None, help="部署 YAML:由 observation_terms/action_terms 推导 obs/act 尺寸") parser.add_argument("--node", default=layout.DEFAULT_NODE, @@ -98,9 +119,32 @@ def main() -> None: if feature_size <= 0 or sequence_length * feature_size != obs: print("ERROR: obs 必须能按 sequence-length 分解为正整数 feature-size", file=sys.stderr) sys.exit(1) - _export_with_onnx(obs, act, args.output, args.model_type, sequence_length, feature_size) + + extra_specs = [] + for spec in args.extra_input: + if ":" not in spec: + print(f"ERROR: --extra-input 需要 NAME:DIMS 形式(got {spec!r})", file=sys.stderr) + sys.exit(1) + name, dims_text = spec.split(":", 1) + try: + dims = [int(part) for part in dims_text.split("x")] + except ValueError: + print(f"ERROR: --extra-input 维度非法(got {spec!r})", file=sys.stderr) + sys.exit(1) + if not name or not dims or any(dim <= 0 for dim in dims): + print(f"ERROR: --extra-input 需要非空名字与正整数维(got {spec!r})", file=sys.stderr) + sys.exit(1) + if name == "obs" or any(existing == name for existing, _ in extra_specs): + print(f"ERROR: --extra-input 名字重复或与 obs 冲突(got {name!r})", file=sys.stderr) + sys.exit(1) + extra_specs.append((name, dims)) + + _export_with_onnx(obs, act, args.output, args.model_type, sequence_length, feature_size, + extra_specs) input_desc = f"[1,{obs}]" if sequence_length == 1 else f"[1,{sequence_length},{feature_size}]" + for name, dims in extra_specs: + input_desc += f" + {name}[1,{'x'.join(str(dim) for dim in dims)}]" print(f"wrote {args.output}: obs float32{input_desc} -> actions float32[1,{act}] (zero policy)") diff --git a/test/runtime_test.cpp b/test/runtime_test.cpp index bcf26f8..becb364 100644 --- a/test/runtime_test.cpp +++ b/test/runtime_test.cpp @@ -147,6 +147,71 @@ TEST(PolicyModel, ParameterClipsOverrideMetadata) { EXPECT_EQ(action, (std::array{3.0, -3.0})); } +TEST(PolicyModel, LoadsRank3SequenceInput) { + PolicyModel::Config config; + config.path = RMCS_RL_SEQ_FIXTURE; + PolicyModel model{config}; + const auto& info = model.info(); + EXPECT_EQ(info.model_type, "transformer"); + EXPECT_EQ(info.input_rank, 3u); + EXPECT_EQ(info.sequence_length, 2u); + EXPECT_EQ(info.feature_size, 3u); + ASSERT_EQ(info.obs_size, 6u); + ASSERT_EQ(info.action_size, 3u); + std::array action{}; + std::string error; + ASSERT_TRUE(model.run(std::array{1., 2., 3., 4., 5., 6.}, action, error)) << error; + EXPECT_EQ(action, (std::array{5.0, 7.0, 9.0})); + EXPECT_FALSE(model.run(std::array{1., 2., 3.}, action, error)); +} + +TEST(PolicyModel, RejectsSequenceHistoryMetadataMismatch) { + PolicyModel::Config config; + config.path = RMCS_RL_SEQ_MISMATCH_FIXTURE; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + +TEST(PolicyModel, RejectsTransformerTypeOnRank2Input) { + PolicyModel::Config config; + config.path = RMCS_RL_IDENTITY_FIXTURE; + config.model_type = "transformer"; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + +TEST(PolicyModel, FeedsExtraInputConstants) { + PolicyModel::Config config; + config.path = RMCS_RL_EXTRA_FIXTURE; + config.extra_input_values["offset"] = {10.0}; + PolicyModel model{config}; + ASSERT_EQ(model.info().obs_size, 2u); + ASSERT_EQ(model.info().action_size, 2u); + std::array action{}; + std::string error; + ASSERT_TRUE(model.run(std::array{3.0, 6.0}, action, error)) << error; + EXPECT_EQ(action, (std::array{13.0, 16.0})); +} + +TEST(PolicyModel, RejectsMissingExtraInputDeclaration) { + PolicyModel::Config config; + config.path = RMCS_RL_EXTRA_FIXTURE; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + +TEST(PolicyModel, RejectsExtraInputWithoutMatchingModelInput) { + PolicyModel::Config config; + config.path = RMCS_RL_EXTRA_FIXTURE; + config.extra_input_values["offset"] = {10.0}; + config.extra_input_values["bogus"] = {1.0}; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + +TEST(PolicyModel, RejectsWrongExtraInputValueCount) { + PolicyModel::Config config; + config.path = RMCS_RL_EXTRA_FIXTURE; + config.extra_input_values["offset"] = {1.0, 2.0}; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + } // namespace } // namespace rmcs_rl #include diff --git a/test/test_layout_contract.sh b/test/test_layout_contract.sh index 7786a6c..0c4364e 100755 --- a/test/test_layout_contract.sh +++ b/test/test_layout_contract.sh @@ -191,6 +191,103 @@ run_expect 1 "(e) rl_action_size != 动作词条数" \ "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$WORK/x_actsize.yaml" expect_msg "rl_action_size" "尺寸不一致提示" +echo "== 5. Transformer rank-3 与 T==history 强制 ==" +FIXTURE_H4="$WORK/x_h4.yaml" +FIXTURE_H5="$WORK/x_h5.yaml" +MODEL_SEQ="$WORK/policy_seq.onnx" + +cat >"$FIXTURE_H4" <<'YAML' +rl_bridge: + ros__parameters: + history_length: 4 + rl_obs_size: 20 + rl_action_size: 6 + observation_terms: + - index=0 path=/chassis/control_height + - index=1 path=/chassis/control_velocity take=x + - index=2 path=/wheel_leg/imu/angular_velocity take=vec3 + action_terms: + - index=0 output=/wheel_leg/rl/action/lf0 + - index=1 output=/wheel_leg/rl/action/lf1 + - index=2 output=/wheel_leg/rl/action/l_wheel + - index=3 output=/wheel_leg/rl/action/rf0 + - index=4 output=/wheel_leg/rl/action/rf1 + - index=5 output=/wheel_leg/rl/action/r_wheel +YAML +sed -e 's/history_length: 4/history_length: 5/' \ + -e 's|index=2 path=/wheel_leg/imu/angular_velocity take=vec3|index=2 type=joint_pos joints=lf0,lf1 relative=true|' \ + "$FIXTURE_H4" >"$FIXTURE_H5" + +run_expect 0 "gen rank-3 transformer 夹具 (T=4, F=5)" \ + "$PY" "$HERE/gen_synthetic_policy.py" --obs 20 --act 6 \ + --model-type transformer --sequence-length 4 -o "$MODEL_SEQ" +run_expect 0 "盖章 transformer(默认写 rmcs_history_length)" \ + "$PY" "$TOOLS/stamp_layout_metadata.py" --model "$MODEL_SEQ" \ + --from-config "$FIXTURE_H4" --model-type transformer +expect_msg "rmcs_history_length" "盖章输出含序列键" +run_expect 0 "check rank-3 transformer(T==history 正例)" \ + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL_SEQ" --config "$FIXTURE_H4" +expect_msg "model sequence dim == expected history" "T 等值检查已执行" + +cp "$MODEL_SEQ" "$WORK/policy_seq_h5.onnx" +run_expect 0 "同一模型按 history=5 配置盖章(模拟窗口错配)" \ + "$PY" "$TOOLS/stamp_layout_metadata.py" --model "$WORK/policy_seq_h5.onnx" \ + --from-config "$FIXTURE_H5" --model-type transformer +run_expect 1 "(f) 模型 T=4 != history=5 → 必须 FAIL" \ + "$PY" "$TOOLS/check_policy_contract.py" "$WORK/policy_seq_h5.onnx" --config "$FIXTURE_H5" +expect_msg "model sequence dim == expected history" "T 不匹配提示" + +cp "$MODEL" "$WORK/policy_mlptype.onnx" +run_expect 0 "给 rank-2 模型盖 rmcs_model_type=transformer" \ + "$PY" "$TOOLS/stamp_layout_metadata.py" --model "$WORK/policy_mlptype.onnx" \ + --from-config "$FIXTURE" --model-type transformer +run_expect 1 "(g) model_type=transformer 但输入 rank=2 → 必须 FAIL" \ + "$PY" "$TOOLS/check_policy_contract.py" "$WORK/policy_mlptype.onnx" --config "$FIXTURE" +expect_msg "input rank/model type" "rank/type 不匹配提示" + +echo "== 6. 多输入(policy_server extra_inputs 常量)==" +FIXTURE_EXTRA="$WORK/x_extra.yaml" +MODEL_EXTRA="$WORK/policy_extra.onnx" +{ + cat "$FIXTURE" + cat <<'YAML' + +policy_server: + ros__parameters: + rl_obs_size: 20 + rl_action_size: 6 + extra_inputs: + mask: [1, 1, 1, 1] +YAML +} >"$FIXTURE_EXTRA" + +run_expect 0 "gen 多输入夹具(obs + mask:4)" \ + "$PY" "$HERE/gen_synthetic_policy.py" --obs 20 --act 6 --extra-input mask:4 -o "$MODEL_EXTRA" +run_expect 0 "盖章多输入夹具" \ + "$PY" "$TOOLS/stamp_layout_metadata.py" --model "$MODEL_EXTRA" --from-config "$FIXTURE_EXTRA" +run_expect 0 "(h) 多输入 + extra_inputs 声明匹配 → PASS" \ + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL_EXTRA" --config "$FIXTURE_EXTRA" +expect_msg "extra input mask" "额外输入校验已执行" + +run_expect 1 "(i) 模型有额外输入但 YAML 无 extra_inputs → FAIL" \ + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL_EXTRA" --config "$FIXTURE" +expect_msg "extra_inputs match model" "缺声明提示" + +FIXTURE_EXTRA_UNKNOWN="$WORK/x_extra_unknown.yaml" +{ + cat "$FIXTURE" + cat <<'YAML' + +policy_server: + ros__parameters: + extra_inputs: + bogus: [1, 2, 3] +YAML +} >"$FIXTURE_EXTRA_UNKNOWN" +run_expect 1 "(j) YAML 声明了模型没有的额外输入 → FAIL" \ + "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$FIXTURE_EXTRA_UNKNOWN" +expect_msg "extra_inputs match model" "多余声明提示" + echo echo "==== 结果:PASS=$PASS FAIL=$FAIL ====" [ "$FAIL" = 0 ] || exit 1 diff --git a/tool/check_policy_contract.py b/tool/check_policy_contract.py index a39546f..7d6e901 100644 --- a/tool/check_policy_contract.py +++ b/tool/check_policy_contract.py @@ -4,8 +4,10 @@ Two modes: * self-check (no --config; used by CI, deployment YAML lives in the RMCS repo): - model loads; one input "obs" / one output "actions"; float32; rank 1/2/3; - MLP uses rank 2 or rank 3 and Transformer uses rank 3. Layout metadata is OPTIONAL: + model loads; primary input "obs" / one output "actions"; float32; rank 1/2/3; + MLP uses rank 2 or rank 3 and Transformer uses rank 3. Extra (non-obs) + inputs are allowed; with --config they must match policy_server extra_inputs. + Layout metadata is OPTIONAL: - missing / v1 -> SKIP (stamped layout metadata is optional for model-only self-check) - present v2 -> signatures must be internally consistent with the tensor sizes, and policy_layout_hash must match those signatures @@ -133,7 +135,7 @@ def _check_normalization(report, meta, obs_size): def _dummy_inference(report, model_path, obs_size, act_size, model_type, - input_rank, sequence_length, feature_size): + input_rank, sequence_length, feature_size, extra_specs=None): """跑一次零输入推理,确认输出有限、元素数正确(无 onnxruntime 则跳过)。""" try: import numpy as np @@ -149,7 +151,15 @@ def _dummy_inference(report, model_path, obs_size, act_size, model_type, obs = np.zeros((obs_size,), dtype=np.float32) else: obs = np.zeros((1, obs_size), dtype=np.float32) - actions = session.run(["actions"], {"obs": obs})[0] + feed = {"obs": obs} + for name, (shape, values) in (extra_specs or {}).items(): + count = 1 + for dim in shape: + count *= dim + if values is None: + values = [1.0] * count + feed[name] = np.asarray(values, dtype=np.float32).reshape(shape) + actions = session.run(["actions"], feed)[0] except Exception as exc: report.check("dummy inference", False, f"{type(exc).__name__}: {exc}") return @@ -244,24 +254,25 @@ def main() -> None: for value in outputs: print(f"output : {value.name} {_shape_of(value)}") - report.check("tensor count/names", len(inputs) == 1 and len(outputs) == 1 - and inputs[0].name == "obs" and outputs[0].name == "actions", - f"inputs={[v.name for v in inputs]} outputs={[v.name for v in outputs]}" - if not (len(inputs) == 1 and len(outputs) == 1) else "obs -> actions") - - if not (len(inputs) == 1 and len(outputs) == 1): - print("== SUMMARY: FAIL (张量不合法,后续检查跳过) ==") + input_names = [value.name for value in inputs] + names_ok = (len(outputs) == 1 and outputs[0].name == "actions" and "obs" in input_names) + report.check("tensor names", names_ok, + f"inputs={input_names} outputs={[v.name for v in outputs]}") + if not names_ok: + print("== SUMMARY: FAIL (张量不合法:需要主输入 obs + 唯一输出 actions,后续检查跳过) ==") sys.exit(1) - inp, out = inputs[0], outputs[0] + inp = next(value for value in inputs if value.name == "obs") + out = outputs[0] def _dtype_name(value_info): elem = value_info.type.tensor_type.elem_type return "float32" if elem == TensorProto.FLOAT else TensorProto.DataType.Name(elem).lower() - report.check("dtype float32", inp.type.tensor_type.elem_type == TensorProto.FLOAT - and out.type.tensor_type.elem_type == TensorProto.FLOAT, - f"obs={_dtype_name(inp)} actions={_dtype_name(out)}") + dtype_ok = (all(value.type.tensor_type.elem_type == TensorProto.FLOAT for value in inputs) + and out.type.tensor_type.elem_type == TensorProto.FLOAT) + report.check("dtype float32", dtype_ok, + f"inputs={[_dtype_name(value) for value in inputs]} actions={_dtype_name(out)}") in_shape, out_shape = _shape_of(inp), _shape_of(out) meta = {prop.key: prop.value for prop in model.metadata_props} declared_type = meta.get("rmcs_model_type", "").strip().lower() @@ -291,6 +302,75 @@ def _dtype_name(value_info): f"obs={in_shape[0] if len(in_shape) >= 2 else ''!r} " f"actions={out_shape[0] if len(out_shape) >= 2 else ''!r}(允许 1 或动态维)") + # 额外输入(如 attention mask):形状校验 + 与 policy_server extra_inputs 对账 + extra_shapes = {value.name: _shape_of(value) for value in inputs if value.name != "obs"} + declared_extra: dict = {} + if args.config: + import yaml + document = yaml.safe_load(open(args.config, encoding="utf-8")) or {} + section = ((document.get("policy_server") or {}).get("ros__parameters") or {}) + raw_extra = section.get("extra_inputs") or {} + if not isinstance(raw_extra, dict): + report.check("extra_inputs section", False, f"extra_inputs={raw_extra!r} 必须是映射") + else: + declared_extra = raw_extra + extra_specs: dict = {} + if extra_shapes or declared_extra: + if args.config: + missing = sorted(set(extra_shapes) - set(declared_extra)) + unknown = sorted(set(declared_extra) - set(extra_shapes)) + report.check("extra_inputs match model", + not missing and not unknown, + f"模型缺声明={missing} 声明无对应输入={unknown}" + if (missing or unknown) else f"{sorted(extra_shapes)}") + else: + report.info("extra_inputs", + f"模型额外输入 {sorted(extra_shapes)}(无 --config,仅校验形状,dummy 用 1 填充)") + for name, shape in sorted(extra_shapes.items()): + ok = True + detail = f"{name}{shape}" + runtime_shape = [] + first_dim = 0 + if len(shape) >= 2: + if not (shape[0] == 1 or shape[0] is None or isinstance(shape[0], str)): + ok = False + detail += " batch 维必须为 1 或动态" + runtime_shape.append(1) + first_dim = 1 + elements = 1 + for dim in shape[first_dim:]: + if not isinstance(dim, int) or dim <= 0: + ok = False + detail += f" 非 batch 维必须是具体正整数(got {dim!r})" + break + runtime_shape.append(dim) + elements *= dim + values = None + if ok and args.config and name in declared_extra: + raw_values = declared_extra[name] + if not isinstance(raw_values, list) or not raw_values: + ok = False + detail += " extra_inputs 值必须是非空列表" + else: + try: + values = [float(item) for item in raw_values] + except (TypeError, ValueError): + ok = False + values = None + detail += " 含非数值元素" + else: + if any(not math.isfinite(item) for item in values): + ok = False + detail += " 含非有限值" + values = None + elif len(values) != elements: + ok = False + detail += f" 值数量 {len(values)} != 元素数 {elements}" + values = None + report.check(f"extra input {name}", ok, detail) + if ok: + extra_specs[name] = (tuple(runtime_shape), values) + history_length = layout.history_length(args.config, args.node) if args.config else 1 metadata_sequence = metadata_feature = 0 for key in ("rmcs_history_length", "rmcs_obs_frame_size"): @@ -308,16 +388,42 @@ def _dtype_name(value_info): else: metadata_feature = value config_feature_size = obs_size // history_length if obs_size is not None else None + if args.config: + if metadata_sequence: + report.check("metadata history == config history_length", + metadata_sequence == history_length, + f"rmcs_history_length={metadata_sequence} history_length={history_length}") + if metadata_feature and config_feature_size: + report.check("metadata frame == config frame size", + metadata_feature == config_feature_size, + f"rmcs_obs_frame_size={metadata_feature} 单帧={config_feature_size}") + if args.sequence_length and args.sequence_length != history_length: + report.check("--sequence-length == history_length", False, + f"--sequence-length={args.sequence_length} history_length={history_length}") + if args.feature_size and config_feature_size and args.feature_size != config_feature_size: + report.check("--feature-size == config frame size", False, + f"--feature-size={args.feature_size} 单帧={config_feature_size}") + input_tail = in_shape[0:] if len(in_shape) == 1 else in_shape[1:] sequence_length = args.sequence_length or metadata_sequence or ( - history_length if len(in_shape) == 3 else 1) + history_length if len(in_shape) == 3 and args.config else None) feature_size = args.feature_size or metadata_feature or ( - config_feature_size if len(in_shape) == 3 else None) + config_feature_size if len(in_shape) == 3 and args.config else None) if len(in_shape) == 3: declared_sequence, declared_feature = input_tail if isinstance(declared_sequence, int) and declared_sequence > 0: + if sequence_length is not None: + report.check("model sequence dim == expected history", + declared_sequence == sequence_length, + f"model T={declared_sequence} expected={sequence_length}" + "(= --sequence-length/rmcs_history_length/history_length," + "与运行时 onnx_runtime 同优先级)") sequence_length = declared_sequence if isinstance(declared_feature, int) and declared_feature > 0: + if feature_size is not None: + report.check("model feature dim == expected frame", + declared_feature == feature_size, + f"model F={declared_feature} expected={feature_size}") feature_size = declared_feature model_obs = sequence_length * feature_size if sequence_length and feature_size else None else: @@ -431,7 +537,7 @@ def _dtype_name(value_info): _check_normalization(report, meta, obs_size) _dummy_inference(report, args.model, obs_size, act_size, model_type, len(in_shape), - sequence_length, feature_size or obs_size) + sequence_length, feature_size or obs_size, extra_specs) try: file_id = layout.model_id(args.model) diff --git a/tool/stamp_layout_metadata.py b/tool/stamp_layout_metadata.py index eaea382..47aea94 100644 --- a/tool/stamp_layout_metadata.py +++ b/tool/stamp_layout_metadata.py @@ -14,9 +14,9 @@ rmcs_obs_mean/std 可选(--obs-mean/--obs-std,长度必须 == rl_obs_size) rmcs_obs_clip 可选单浮点(--obs-clip) rmcs_action_clip 可选单浮点(--action-clip) - rmcs_model_type 可选结构标识 mlp/transformer/generic(--model-type) - rmcs_history_length 可选序列长度(Transformer 或带历史帧 MLP) - rmcs_obs_frame_size 可选单帧维度 + rmcs_model_type 可选结构标识 mlp/transformer/generic(--model-type;缺省由部署端按 rank 推断) + rmcs_history_length 序列长度(缺省取 YAML history_length,部署端据此强制 模型T==history) + rmcs_obs_frame_size 单帧观测维度(缺省由 rl_obs_size/history_length 推导) 用法: python3 stamp_layout_metadata.py --model policy.onnx --from-config deploy.yaml @@ -91,19 +91,14 @@ def main() -> None: raise layout.LayoutError(f"{option}={value!r} 必须是有限正数") history_length = layout.history_length(args.config, args.node) - sequence_length = args.sequence_length if args.sequence_length is not None else ( - history_length if args.model_type in ("mlp", "transformer") else None) + sequence_length = args.sequence_length if args.sequence_length is not None else history_length feature_size = args.feature_size if args.feature_size is not None else ( - obs_size // history_length if args.model_type in ("mlp", "transformer") else None) - if feature_size is None and sequence_length is not None and obs_size % sequence_length == 0: - feature_size = obs_size // sequence_length - if sequence_length is not None and sequence_length < 1: - raise layout.LayoutError("--sequence-length 必须 >= 1") - if feature_size is not None and feature_size < 1: - raise layout.LayoutError("--feature-size 必须 >= 1") - if sequence_length is not None and feature_size is None: - raise layout.LayoutError("给出 --sequence-length 时必须能推导或指定 --feature-size") - if sequence_length is not None and sequence_length * feature_size != obs_size: + obs_size // history_length) + if sequence_length < 1: + raise layout.LayoutError(f"--sequence-length 必须 >= 1") + if feature_size < 1: + raise layout.LayoutError(f"--feature-size 必须 >= 1") + if sequence_length * feature_size != obs_size: raise layout.LayoutError( f"sequence_length * feature_size={sequence_length * feature_size} != rl_obs_size={obs_size}") From 7d7823d37f24fd10a00fdfd624a5f01a360787a6 Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Wed, 30 Sep 2026 13:43:54 +0800 Subject: [PATCH 6/9] feat: add support for typed extra inputs and layout validation --- CMakeLists.txt | 6 +- README.md | 24 +-- src/policy/onnx_runtime.cpp | 187 ++++++++++++++++++---- src/policy/onnx_runtime.hpp | 24 ++- src/policy/policy_model.hpp | 2 +- src/policy_server.cpp | 22 +-- test/data/seq_layout_dynamic.onnx | Bin 0 -> 426 bytes test/data/seq_layout_mismatch.onnx | Bin 0 -> 463 bytes test/data/seq_layout_only.onnx | Bin 0 -> 411 bytes test/data/typed_extra_input_identity.onnx | Bin 0 -> 529 bytes test/gen_seq_fixtures.py | 25 ++- test/gen_typed_extra_input_fixture.py | 48 ++++++ test/runtime_test.cpp | 50 +++++- test/test_layout_contract.sh | 15 ++ tool/check_policy_contract.py | 93 +++++++++-- 15 files changed, 420 insertions(+), 76 deletions(-) create mode 100644 test/data/seq_layout_dynamic.onnx create mode 100644 test/data/seq_layout_mismatch.onnx create mode 100644 test/data/seq_layout_only.onnx create mode 100644 test/data/typed_extra_input_identity.onnx create mode 100644 test/gen_typed_extra_input_fixture.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 11f9629..c1e859e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,7 +100,11 @@ if(BUILD_TESTING) RMCS_RL_IDENTITY_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/normalized_identity.onnx" RMCS_RL_SEQ_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_identity.onnx" RMCS_RL_SEQ_MISMATCH_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_history_mismatch.onnx" - RMCS_RL_EXTRA_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/extra_input_identity.onnx") + RMCS_RL_SEQ_LAYOUT_MISMATCH_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_layout_mismatch.onnx" + RMCS_RL_SEQ_LAYOUT_ONLY_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_layout_only.onnx" + RMCS_RL_SEQ_LAYOUT_DYNAMIC_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/seq_layout_dynamic.onnx" + RMCS_RL_EXTRA_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/extra_input_identity.onnx" + RMCS_RL_TYPED_EXTRA_FIXTURE="${PROJECT_SOURCE_DIR}/test/data/typed_extra_input_identity.onnx") endif() ament_export_dependencies(rosidl_default_runtime) diff --git a/README.md b/README.md index 703179b..7a66c53 100644 --- a/README.md +++ b/README.md @@ -62,25 +62,26 @@ ros2 run rmcs_rl policy_server --ros-args --params-file <车辆配置.yaml> `auto` 优先读取 `rmcs_model_type`,没有 metadata 时才按 rank-2 推断 MLP、rank-3 推断 Transformer。 -多输入模型(例如独立 attention mask)除 `obs` 外的输入必须是常量张量,在 -`policy_server` 段用 `extra_inputs.<输入名>: [元素列表]` 声明;启动时校验名字对齐、 -元素数量与形状一致、数值有限,缺声明或声明了模型没有的输入都会拒绝; +多输入模型(例如独立 attention mask 或 position id)除 `obs` 外的输入必须是常量张量,在 +`policy_server` 段用 `extra_inputs.<输入名>: [元素列表]` 声明;启动时根据 ONNX 输入类型 +创建 `float32`、`int64` 或 `bool` 张量,并校验名字、元素数量和形状;缺声明、类型不匹配 +或声明了模型没有的输入都会拒绝; 输出仍必须是唯一的 `actions`。 ```yaml policy_server: ros__parameters: extra_inputs: - attn_mask: [1, 1, 1, 1] # 展平常量,长度 = 模型该输入非 batch 维元素数 + attn_mask: [true, true, true, true] # bool mask;也支持 int64 position id ``` 部署模型须含 `rmcs_obs_layout`、`rmcs_actions_layout`;建议带 `policy_layout_hash` 和版本。 `history_length × 单帧维数 = rl_obs_size`。归一化均值和标准差必须成对提供,标准差为正数。 -rank-3 模型的序列切分受强制约束:模型的 `T == history_length`、`F == 单帧维数`。 -盖章默认把 `rmcs_history_length`、`rmcs_obs_frame_size` 从 YAML 写入 metadata; -契约工具与 policy_server 启动时按 `--sequence-length/rmcs_history_length/history_length` -(参数 > metadata > 模型声明)逐级等值校验,任一级不符即拒绝。 +rank-3 模型的序列切分受强制约束:模型的 `T == v3-history`、`F == rl_obs_size / history_length`, +其中 `v3-history` 来自必需的 `rmcs_obs_layout`,并且最终还会由动作消息的 layout hash 与 +`rl_bridge` 再次核对。`rmcs_history_length`、`rmcs_obs_frame_size` 和 `sequence_length` 是 +启动时的辅助维度声明,缺失或不一致都会拒绝;它们不能替代布局签名。 带历史帧的模型示例(桥和策略进程都要使用同一历史长度): @@ -97,7 +98,8 @@ policy_server: rl_obs_size: 208 ``` -盖章默认写入序列键(`rmcs_history_length`/`rmcs_obs_frame_size`,取自 YAML); +盖章默认写入序列键(`rmcs_history_length`/`rmcs_obs_frame_size`,取自 YAML);部署端还会 +从必需的 `rmcs_obs_layout` 中读取 `v3-history`,防止只依赖可选 metadata。 `rmcs_model_type` 可选,缺省由部署端按输入 rank 推断: ```sh @@ -145,8 +147,8 @@ colcon test --merge-install --packages-select rmcs_rl rmcs_core PYTHON=<带 onnx、onnxruntime、PyYAML 的 Python> bash src/rmcs_rl/test/test_layout_contract.sh ``` -C++ 回归覆盖推理归一化、历史帧、rank-3 序列输入、extra_inputs 常量喂入与错配拒绝、 +C++ 回归覆盖推理归一化、历史帧、rank-3 序列输入、float32/int64/bool extra_inputs 常量喂入与错配拒绝、 跨线程动作快照;Python 回归覆盖布局解析、盖章、T==history 强制、model_type/rank 匹配、 多输入声明对账及错误契约拒绝。夹具由 `test/gen_seq_fixtures.py`、 -`test/gen_extra_input_fixture.py` 确定性生成后提交。 +`test/gen_extra_input_fixture.py` 和 `test/gen_typed_extra_input_fixture.py` 确定性生成后提交。 车辆包保留 DM 使能、帧解码、闭链几何、Body IMU 以及 MuJoCo 查看器回归。 diff --git a/src/policy/onnx_runtime.cpp b/src/policy/onnx_runtime.cpp index 8fbff25..8b0e4a6 100644 --- a/src/policy/onnx_runtime.cpp +++ b/src/policy/onnx_runtime.cpp @@ -2,9 +2,12 @@ #include #include +#include #include +#include #include #include +#include namespace rmcs_rl { namespace { @@ -37,6 +40,59 @@ bool batch_dimension_ok(std::int64_t dimension) { return dimension == 1 || dimension == -1; } +struct LayoutDimensions { + std::size_t history = 0; + std::size_t feature = 0; + std::size_t observation = 0; +}; + +std::optional layout_dimensions(const std::optional& value) { + if (!value || value->empty()) + return std::nullopt; + constexpr std::string_view prefix = "v3-history="; + const std::string_view signature = *value; + if (!signature.starts_with(prefix)) + return std::nullopt; + + const auto header_end = signature.find('|', prefix.size()); + if (header_end == std::string_view::npos) + throw std::invalid_argument("rmcs_obs_layout is missing observation entries"); + const auto history_text = signature.substr(prefix.size(), header_end - prefix.size()); + LayoutDimensions result; + const auto [history_end, history_error] = std::from_chars( + history_text.data(), history_text.data() + history_text.size(), result.history); + if (history_error != std::errc{} + || history_end != history_text.data() + history_text.size() || result.history == 0) + throw std::invalid_argument("rmcs_obs_layout history must be a positive integer"); + + std::size_t begin = header_end + 1; + while (begin < signature.size()) { + const auto end = signature.find('|', begin); + const auto entry = signature.substr( + begin, end == std::string_view::npos ? std::string_view::npos : end - begin); + const auto at = entry.rfind('@'); + if (at == std::string_view::npos || at + 1 == entry.size()) + throw std::invalid_argument("rmcs_obs_layout entry is missing @dim"); + std::size_t dimension = 0; + const auto dim_text = entry.substr(at + 1); + const auto [dim_end, dim_error] = std::from_chars( + dim_text.data(), dim_text.data() + dim_text.size(), dimension); + if (dim_error != std::errc{} || dim_end != dim_text.data() + dim_text.size() + || dimension == 0) + throw std::invalid_argument("rmcs_obs_layout entry dimension must be positive"); + if (dimension > std::numeric_limits::max() - result.feature) + throw std::invalid_argument("rmcs_obs_layout dimensions overflow"); + result.feature += dimension; + if (end == std::string_view::npos) + break; + begin = end + 1; + } + if (result.feature == 0 || result.history > std::numeric_limits::max() / result.feature) + throw std::invalid_argument("rmcs_obs_layout dimensions overflow"); + result.observation = result.history * result.feature; + return result; +} + } // namespace OnnxRuntime::OnnxRuntime(const Config& config) @@ -83,26 +139,18 @@ OnnxRuntime::OnnxRuntime(const Config& config) throw std::invalid_argument( "output tensor must be named '" + output_name_ + "', got '" + actual_output.get() + "'"); - for (std::size_t index = 0; index < input_count; ++index) { - const auto input_type = session_.GetInputTypeInfo(index); - if (input_type.GetONNXType() != ONNX_TYPE_TENSOR) - throw std::invalid_argument( - "input '" + input_names_[index] + "' must be a tensor"); - const auto input_info = input_type.GetTensorTypeAndShapeInfo(); - if (input_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) - throw std::invalid_argument( - "input '" + input_names_[index] + "' element type must be float32"); - } - // Keep TypeInfo alive while reading the TensorTypeAndShapeInfo. The // latter is a view into TypeInfo in ONNX Runtime; chaining a temporary // here can read freed type metadata on some runtime builds. const auto input_type = session_.GetInputTypeInfo(primary_index); const auto output_type = session_.GetOutputTypeInfo(0); + if (input_type.GetONNXType() != ONNX_TYPE_TENSOR || output_type.GetONNXType() != ONNX_TYPE_TENSOR) + throw std::invalid_argument("obs and actions must be tensors"); const auto input_info = input_type.GetTensorTypeAndShapeInfo(); const auto output_info = output_type.GetTensorTypeAndShapeInfo(); - if (output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) - throw std::invalid_argument("tensor element type must be float32"); + if (input_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT + || output_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) + throw std::invalid_argument("obs and actions element types must be float32"); const auto raw_input_shape = input_info.GetShape(); const auto raw_output_shape = output_info.GetShape(); @@ -149,9 +197,30 @@ OnnxRuntime::OnnxRuntime(const Config& config) const auto metadata_sequence = parse_positive(metadata("rmcs_history_length"), "rmcs_history_length"); const auto metadata_feature = parse_positive(metadata("rmcs_obs_frame_size"), "rmcs_obs_frame_size"); - std::size_t sequence = config.sequence_length != 0 ? config.sequence_length : metadata_sequence; - std::size_t feature = config.feature_size != 0 ? config.feature_size : metadata_feature; - const auto expected_observation = config.observation_size; + const auto layout = layout_dimensions(metadata("rmcs_obs_layout")); + if (raw_input_shape.size() == 3 && !layout) + throw std::invalid_argument("rank-3 model requires an rmcs_obs_layout v3-history signature"); + if (layout && metadata_sequence != 0 && metadata_sequence != layout->history) + throw std::invalid_argument("rmcs_history_length does not match rmcs_obs_layout"); + if (layout && metadata_feature != 0 && metadata_feature != layout->feature) + throw std::invalid_argument("rmcs_obs_frame_size does not match rmcs_obs_layout"); + if (layout && config.sequence_length != 0 && config.sequence_length != layout->history) + throw std::invalid_argument("sequence_length does not match rmcs_obs_layout"); + if (layout && config.feature_size != 0 && config.feature_size != layout->feature) + throw std::invalid_argument("feature_size does not match rmcs_obs_layout"); + std::size_t sequence = config.sequence_length != 0 + ? config.sequence_length + : metadata_sequence != 0 ? metadata_sequence + : layout ? layout->history : 0; + std::size_t feature = config.feature_size != 0 + ? config.feature_size + : metadata_feature != 0 ? metadata_feature + : layout ? layout->feature : 0; + std::size_t expected_observation = config.observation_size; + if (expected_observation == 0 && layout) + expected_observation = layout->observation; + if (layout && expected_observation != layout->observation) + throw std::invalid_argument("observation_size does not match rmcs_obs_layout dimensions"); input_shape_.resize(raw_input_shape.size()); if (raw_input_shape.size() == 1) { @@ -215,7 +284,7 @@ OnnxRuntime::OnnxRuntime(const Config& config) // Extra (non-obs) inputs: every one needs a constant from extra_inputs.*, // and every declared constant must match a model input. - std::map> remaining = config.extra_input_values; + auto remaining = config.extra_input_values; constant_slot_.assign(input_count, -1); for (std::size_t index = 0; index < input_count; ++index) { if (index == primary_index) @@ -226,7 +295,7 @@ OnnxRuntime::OnnxRuntime(const Config& config) "model input '" + input_names_[index] + "' has no constant value; declare it under policy_server extra_inputs." " in the vehicle YAML"); - const std::vector source = found->second; + const auto source = std::move(found->second); remaining.erase(found); const auto extra_type = session_.GetInputTypeInfo(index); @@ -234,9 +303,12 @@ OnnxRuntime::OnnxRuntime(const Config& config) throw std::invalid_argument( "extra input '" + input_names_[index] + "' must be a tensor"); const auto extra_info = extra_type.GetTensorTypeAndShapeInfo(); - if (extra_info.GetElementType() != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) + const auto extra_element_type = extra_info.GetElementType(); + if (extra_element_type != ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT + && extra_element_type != ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64 + && extra_element_type != ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL) throw std::invalid_argument( - "extra input '" + input_names_[index] + "' element type must be float32"); + "extra input '" + input_names_[index] + "' element type must be float32, int64, or bool"); const auto raw_shape = extra_info.GetShape(); if (raw_shape.empty() || raw_shape.size() > 3) throw std::invalid_argument( @@ -244,6 +316,7 @@ OnnxRuntime::OnnxRuntime(const Config& config) ConstantInput constant; constant.name = input_names_[index]; + constant.type = extra_element_type; std::size_t elements = 1; std::size_t first_dim = 0; if (raw_shape.size() >= 2) { @@ -262,16 +335,60 @@ OnnxRuntime::OnnxRuntime(const Config& config) constant.shape.push_back(raw_shape[dim]); elements *= static_cast(raw_shape[dim]); } - if (source.size() != elements) + if (std::visit([](const auto& values) { return values.size(); }, source) != elements) throw std::invalid_argument( "extra input '" + constant.name + "' needs " + std::to_string(elements) - + " values, got " + std::to_string(source.size())); - constant.values.reserve(elements); - for (const double value : source) { - if (!std::isfinite(value)) + + " values, got " + + std::to_string(std::visit([](const auto& values) { return values.size(); }, source))); + constant.element_count = elements; + if (extra_element_type == ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) { + constant.float_values.reserve(elements); + if (const auto* floats = std::get_if>(&source)) { + for (const double value : *floats) { + const float converted = static_cast(value); + if (!std::isfinite(converted)) + throw std::invalid_argument( + "extra input '" + constant.name + "' contains a non-finite or out-of-range float32 value"); + constant.float_values.push_back(converted); + } + } else if (const auto* integers = std::get_if>(&source)) { + for (const auto value : *integers) { + const float converted = static_cast(value); + if (!std::isfinite(converted)) + throw std::invalid_argument( + "extra input '" + constant.name + "' contains an out-of-range float32 value"); + constant.float_values.push_back(converted); + } + } else { throw std::invalid_argument( - "extra input '" + constant.name + "' contains a non-finite value"); - constant.values.push_back(static_cast(value)); + "extra input '" + constant.name + "' needs a float or integer list"); + } + } else if (extra_element_type == ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64) { + if (const auto* integers = std::get_if>(&source)) { + constant.int64_values = *integers; + } else if (const auto* floats = std::get_if>(&source)) { + constant.int64_values.reserve(elements); + for (const double value : *floats) { + const auto promoted = static_cast(value); + if (!std::isfinite(value) || std::trunc(value) != value + || promoted < static_cast(std::numeric_limits::min()) + || promoted > static_cast(std::numeric_limits::max())) + throw std::invalid_argument( + "extra input '" + constant.name + "' contains a non-integral or out-of-range int64 value"); + constant.int64_values.push_back(static_cast(value)); + } + } else { + throw std::invalid_argument( + "extra input '" + constant.name + "' needs an integer or integral float list for int64 tensor"); + } + } else { + const auto* booleans = std::get_if>(&source); + if (!booleans) + throw std::invalid_argument( + "extra input '" + constant.name + "' needs a bool list for bool tensor"); + constant.bool_values = std::make_unique(elements); + for (std::size_t value_index = 0; value_index < elements; ++value_index) + constant.bool_values[value_index] = (*booleans)[value_index]; } constant_slot_[index] = static_cast(constants_.size()); constants_.push_back(std::move(constant)); @@ -332,9 +449,19 @@ void OnnxRuntime::run(std::span input, std::span output) { input_shape_.size())); } else { auto& constant = constants_[static_cast(constant_slot_[index])]; - input_tensors.push_back(Ort::Value::CreateTensor( - memory_info_, constant.values.data(), constant.values.size(), constant.shape.data(), - constant.shape.size())); + if (constant.type == ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT) { + input_tensors.push_back(Ort::Value::CreateTensor( + memory_info_, constant.float_values.data(), constant.element_count, + constant.shape.data(), constant.shape.size())); + } else if (constant.type == ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64) { + input_tensors.push_back(Ort::Value::CreateTensor( + memory_info_, constant.int64_values.data(), constant.element_count, + constant.shape.data(), constant.shape.size())); + } else { + input_tensors.push_back(Ort::Value::CreateTensor( + memory_info_, constant.bool_values.get(), constant.element_count, + constant.shape.data(), constant.shape.size())); + } } } const char* output_names[] = {output_name_.c_str()}; diff --git a/src/policy/onnx_runtime.hpp b/src/policy/onnx_runtime.hpp index 4f3cc8d..0182c0d 100644 --- a/src/policy/onnx_runtime.hpp +++ b/src/policy/onnx_runtime.hpp @@ -3,9 +3,11 @@ #include #include #include +#include #include #include #include +#include #include #include @@ -14,6 +16,9 @@ namespace rmcs_rl { class OnnxRuntime { public: + using ExtraInputValues = std::variant< + std::vector, std::vector, std::vector>; + struct Config { std::string model_path; std::string input_name = "obs"; @@ -25,7 +30,7 @@ class OnnxRuntime { std::size_t action_size = 0; // 额外输入张量的常量值(键 = 模型输入名,值 = 展平的元素), // 由 policy_server 的 extra_inputs. YAML 参数提供。 - std::map> extra_input_values; + std::map extra_input_values; }; struct Info { @@ -42,7 +47,16 @@ class OnnxRuntime { OnnxRuntime( const std::string& model_path, const std::string& input_name, const std::string& output_name) - : OnnxRuntime(Config{model_path, input_name, output_name}) {} + : OnnxRuntime(Config{ + .model_path = model_path, + .input_name = input_name, + .output_name = output_name, + .model_type = "auto", + .sequence_length = 0, + .feature_size = 0, + .observation_size = 0, + .action_size = 0, + .extra_input_values = {}}) {} [[nodiscard]] std::size_t input_size() const { return input_buffer_.size(); } [[nodiscard]] std::size_t output_size() const { return output_size_; } @@ -55,7 +69,11 @@ class OnnxRuntime { struct ConstantInput { std::string name; std::vector shape; - std::vector values; + ONNXTensorElementDataType type = ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED; + std::size_t element_count = 0; + std::vector float_values; + std::vector int64_values; + std::unique_ptr bool_values; }; Ort::Env env_{ORT_LOGGING_LEVEL_WARNING, "rmcs_rl"}; diff --git a/src/policy/policy_model.hpp b/src/policy/policy_model.hpp index 552f681..4add7a9 100644 --- a/src/policy/policy_model.hpp +++ b/src/policy/policy_model.hpp @@ -27,7 +27,7 @@ class PolicyModel { std::optional obs_clip; std::optional action_clip; // 键 = 额外输入张量名,值 = 展平常量(来自 policy_server extra_inputs.) - std::map> extra_input_values; + std::map extra_input_values; }; struct Info { diff --git a/src/policy_server.cpp b/src/policy_server.cpp index 071c792..3f2e466 100644 --- a/src/policy_server.cpp +++ b/src/policy_server.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -72,25 +73,28 @@ class PolicyServer final : public rclcpp::Node { throw std::invalid_argument( "policy_server: extra_inputs entry must be extra_inputs."); const auto parameter = get_parameter(parameter_name); - std::vector values; + OnnxRuntime::ExtraInputValues values; switch (parameter.get_type()) { case rclcpp::ParameterType::PARAMETER_DOUBLE_ARRAY: values = parameter.as_double_array(); break; case rclcpp::ParameterType::PARAMETER_INTEGER_ARRAY: - for (const auto item : parameter.as_integer_array()) - values.push_back(static_cast(item)); + values = parameter.as_integer_array(); + break; + case rclcpp::ParameterType::PARAMETER_BOOL_ARRAY: + values = parameter.as_bool_array(); break; default: throw std::invalid_argument( - "policy_server: " + parameter_name + " must be a numeric list"); + "policy_server: " + parameter_name + " must be a float, integer, or bool list"); } - if (values.empty()) + if (std::visit([](const auto& items) { return items.empty(); }, values)) throw std::invalid_argument("policy_server: " + parameter_name + " is empty"); - for (const double value : values) - if (!std::isfinite(value)) - throw std::invalid_argument( - "policy_server: " + parameter_name + " contains a non-finite value"); + if (const auto* floats = std::get_if>(&values)) + for (const double value : *floats) + if (!std::isfinite(value)) + throw std::invalid_argument( + "policy_server: " + parameter_name + " contains a non-finite value"); config.extra_input_values.emplace(extra_name, std::move(values)); } config.normalization_from_metadata = bool_or(*this, "normalization_from_metadata", true); diff --git a/test/data/seq_layout_dynamic.onnx b/test/data/seq_layout_dynamic.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c770858d777bba54b203b8f494314bd10f31f6ec GIT binary patch literal 426 zcmZvY!AiqG5QdYqHtPhj*4?B-#e5as{MsFlea;6`6XN+9iM}Vk9?x&0sy08b;=UT;24_$BU`b4 z7xwq!7T5)H@{1U#Hm!r!w8aokcWxD)coE5Xs_@xrJgCGyjB;8CRwPmG@TQ2zvABlT rj;PGoQ}$|2W-uJ!teb2IROU8jBlHbo*LKOQXVYJezWXk(Na0jOF6|RPy>bAZ4^$yjo zKktIR4OO~|R11Bh3S7Y!3TTS!G|-VqRNGc*Oy-f<26Cgz8DkF>EF+1doEO|7O)J zvw_BF`ubuR>yh#A9E*?T4oU0LduONo0?sXj9jN0IpXy)^6{}J_)9=7uAZ~(FU``J) z=C}$*!;u3x+pecr0^u|hsm7N}_qKHN=;lG;P}4+vgPY<$x$+vCTSn=A&vKT-yf^S@ z-h1%;yf^d$*(rO+;)8LbvjxMpmNZeJkTH|8Rd(9U4ke8lQPCH}$o;F7G6-kMOwTbI F{sMt=chLX< literal 0 HcmV?d00001 diff --git a/test/data/seq_layout_only.onnx b/test/data/seq_layout_only.onnx new file mode 100644 index 0000000000000000000000000000000000000000..71f6eaf4b8adf343e2d2e00dd10912396dedd735 GIT binary patch literal 411 zcmZut!D@p*5Ot%CGEy2hl!ib(#6wF;TWfAYNy(v;8H`_02QD4L>`iH;d;wpvO%C@wyaMmI+Znlt!i2K>fE^?3&3@wB7 zp+k;6hW-Xj%Un6Nb~LF|Cruj_Xj->M^Uk5n_OI7-8;(wg@)}Nx+a0Q*5z9o1 "object": +def _build(history: int, frame: int, metadata: dict, dynamic: bool = False) -> "object": import numpy as np import onnx from onnx import TensorProto, helper, numpy_helper @@ -37,7 +41,8 @@ def _build(history: int, frame: int, metadata: dict) -> "object": [flatten, matmul], "seq_policy", [helper.make_tensor_value_info( - "obs", TensorProto.FLOAT, ["batch", history, frame])], + "obs", TensorProto.FLOAT, + ["batch", "sequence", "feature"] if dynamic else ["batch", history, frame])], [helper.make_tensor_value_info("actions", TensorProto.FLOAT, ["batch", act])], [weight_init], ) @@ -67,10 +72,26 @@ def main() -> None: ok_path = DATA_DIR / "seq_identity.onnx" mismatch_path = DATA_DIR / "seq_history_mismatch.onnx" + layout_mismatch_path = DATA_DIR / "seq_layout_mismatch.onnx" + layout_only_path = DATA_DIR / "seq_layout_only.onnx" + layout_dynamic_path = DATA_DIR / "seq_layout_dynamic.onnx" onnx.save(_build(2, 3, ok_meta), ok_path) onnx.save(_build(2, 3, mismatch_meta), mismatch_path) + layout_mismatch_meta = dict(ok_meta, + rmcs_obs_layout="v3-history=3|constant:0+0+0@3") + onnx.save(_build(2, 3, layout_mismatch_meta), layout_mismatch_path) + layout_only_meta = { + "rmcs_obs_layout": shared["rmcs_obs_layout"], + "rmcs_actions_layout": shared["rmcs_actions_layout"], + "rmcs_model_type": shared["rmcs_model_type"], + } + onnx.save(_build(2, 3, layout_only_meta), layout_only_path) + onnx.save(_build(2, 3, layout_only_meta, dynamic=True), layout_dynamic_path) print(f"wrote {ok_path}") print(f"wrote {mismatch_path}") + print(f"wrote {layout_mismatch_path}") + print(f"wrote {layout_only_path}") + print(f"wrote {layout_dynamic_path}") if __name__ == "__main__": diff --git a/test/gen_typed_extra_input_fixture.py b/test/gen_typed_extra_input_fixture.py new file mode 100644 index 0000000..d033b31 --- /dev/null +++ b/test/gen_typed_extra_input_fixture.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +"""生成带 int64/bool 常量输入的确定性策略夹具。""" +import sys +from pathlib import Path + +DATA_DIR = Path(__file__).resolve().parent / "data" + + +def main() -> None: + import onnx + from onnx import TensorProto, helper + + cast_ids = helper.make_node("Cast", ["position_ids"], ["position_float"], + name="cast_position", to=TensorProto.FLOAT) + cast_mask = helper.make_node("Cast", ["attention_mask"], ["mask_float"], + name="cast_mask", to=TensorProto.FLOAT) + add_position = helper.make_node("Add", ["obs", "position_float"], ["with_position"], + name="add_position") + add_mask = helper.make_node("Add", ["with_position", "mask_float"], ["actions"], + name="add_mask") + graph = helper.make_graph( + [cast_ids, cast_mask, add_position, add_mask], + "typed_extra_input_policy", + [ + helper.make_tensor_value_info("obs", TensorProto.FLOAT, ["batch", 2]), + helper.make_tensor_value_info("position_ids", TensorProto.INT64, ["batch", 2]), + helper.make_tensor_value_info("attention_mask", TensorProto.BOOL, ["batch", 2]), + ], + [helper.make_tensor_value_info("actions", TensorProto.FLOAT, ["batch", 2])], + ) + model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 17)]) + model.ir_version = 8 + model.producer_name = "rmcs_rl/gen_typed_extra_input_fixture" + for key, value in { + "rmcs_obs_layout": "v3-history=1|constant:0+0@2", + "rmcs_actions_layout": "v2|#0:a|#1:b", + }.items(): + entry = model.metadata_props.add() + entry.key = key + entry.value = value + onnx.checker.check_model(model) + path = DATA_DIR / "typed_extra_input_identity.onnx" + onnx.save(model, path) + print(f"wrote {path}") + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/test/runtime_test.cpp b/test/runtime_test.cpp index becb364..c597a92 100644 --- a/test/runtime_test.cpp +++ b/test/runtime_test.cpp @@ -171,6 +171,28 @@ TEST(PolicyModel, RejectsSequenceHistoryMetadataMismatch) { EXPECT_THROW(PolicyModel{config}, std::invalid_argument); } +TEST(PolicyModel, RejectsSequenceLayoutHistoryMismatch) { + PolicyModel::Config config; + config.path = RMCS_RL_SEQ_LAYOUT_MISMATCH_FIXTURE; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + +TEST(PolicyModel, LoadsSequenceUsingRequiredLayoutOnly) { + PolicyModel::Config config; + config.path = RMCS_RL_SEQ_LAYOUT_ONLY_FIXTURE; + PolicyModel model{config}; + EXPECT_EQ(model.info().sequence_length, 2u); + EXPECT_EQ(model.info().feature_size, 3u); +} + +TEST(PolicyModel, LoadsDynamicSequenceUsingRequiredLayoutOnly) { + PolicyModel::Config config; + config.path = RMCS_RL_SEQ_LAYOUT_DYNAMIC_FIXTURE; + PolicyModel model{config}; + EXPECT_EQ(model.info().sequence_length, 2u); + EXPECT_EQ(model.info().feature_size, 3u); +} + TEST(PolicyModel, RejectsTransformerTypeOnRank2Input) { PolicyModel::Config config; config.path = RMCS_RL_IDENTITY_FIXTURE; @@ -181,7 +203,7 @@ TEST(PolicyModel, RejectsTransformerTypeOnRank2Input) { TEST(PolicyModel, FeedsExtraInputConstants) { PolicyModel::Config config; config.path = RMCS_RL_EXTRA_FIXTURE; - config.extra_input_values["offset"] = {10.0}; + config.extra_input_values["offset"] = std::vector{10.0}; PolicyModel model{config}; ASSERT_EQ(model.info().obs_size, 2u); ASSERT_EQ(model.info().action_size, 2u); @@ -200,15 +222,35 @@ TEST(PolicyModel, RejectsMissingExtraInputDeclaration) { TEST(PolicyModel, RejectsExtraInputWithoutMatchingModelInput) { PolicyModel::Config config; config.path = RMCS_RL_EXTRA_FIXTURE; - config.extra_input_values["offset"] = {10.0}; - config.extra_input_values["bogus"] = {1.0}; + config.extra_input_values["offset"] = std::vector{10.0}; + config.extra_input_values["bogus"] = std::vector{1.0}; EXPECT_THROW(PolicyModel{config}, std::invalid_argument); } TEST(PolicyModel, RejectsWrongExtraInputValueCount) { PolicyModel::Config config; config.path = RMCS_RL_EXTRA_FIXTURE; - config.extra_input_values["offset"] = {1.0, 2.0}; + config.extra_input_values["offset"] = std::vector{1.0, 2.0}; + EXPECT_THROW(PolicyModel{config}, std::invalid_argument); +} + +TEST(PolicyModel, FeedsTypedExtraInputConstants) { + PolicyModel::Config config; + config.path = RMCS_RL_TYPED_EXTRA_FIXTURE; + config.extra_input_values["position_ids"] = std::vector{10, 20}; + config.extra_input_values["attention_mask"] = std::vector{true, false}; + PolicyModel model{config}; + std::array action{}; + std::string error; + ASSERT_TRUE(model.run(std::array{1., 2.}, action, error)) << error; + EXPECT_EQ(action, (std::array{12.0, 22.0})); +} + +TEST(PolicyModel, RejectsWrongTypedExtraInputConstants) { + PolicyModel::Config config; + config.path = RMCS_RL_TYPED_EXTRA_FIXTURE; + config.extra_input_values["position_ids"] = std::vector{true, false}; + config.extra_input_values["attention_mask"] = std::vector{true, false}; EXPECT_THROW(PolicyModel{config}, std::invalid_argument); } diff --git a/test/test_layout_contract.sh b/test/test_layout_contract.sh index 0c4364e..38b9ceb 100755 --- a/test/test_layout_contract.sh +++ b/test/test_layout_contract.sh @@ -288,6 +288,21 @@ run_expect 1 "(j) YAML 声明了模型没有的额外输入 → FAIL" \ "$PY" "$TOOLS/check_policy_contract.py" "$MODEL" --config "$FIXTURE_EXTRA_UNKNOWN" expect_msg "extra_inputs match model" "多余声明提示" +run_expect 0 "typed extra_inputs(int64 + bool)自检 → PASS" \ + "$PY" "$TOOLS/check_policy_contract.py" \ + "$PKG/test/data/typed_extra_input_identity.onnx" --obs 2 --act 2 +expect_msg "dtype" "typed extra_inputs 类型校验" + +run_expect 0 "仅布局签名解析动态 rank-3 → PASS" \ + "$PY" "$TOOLS/check_policy_contract.py" \ + "$PKG/test/data/seq_layout_dynamic.onnx" +expect_msg "rank-3 layout history" "动态序列由布局解析" + +run_expect 1 "模型 T 与布局 history 不符 → FAIL" \ + "$PY" "$TOOLS/check_policy_contract.py" \ + "$PKG/test/data/seq_layout_mismatch.onnx" +expect_msg "metadata history == layout history" "布局与序列 metadata 不一致" + echo echo "==== 结果:PASS=$PASS FAIL=$FAIL ====" [ "$FAIL" = 0 ] || exit 1 diff --git a/tool/check_policy_contract.py b/tool/check_policy_contract.py index 7d6e901..2c664d9 100644 --- a/tool/check_policy_contract.py +++ b/tool/check_policy_contract.py @@ -4,9 +4,10 @@ Two modes: * self-check (no --config; used by CI, deployment YAML lives in the RMCS repo): - model loads; primary input "obs" / one output "actions"; float32; rank 1/2/3; + model loads; primary input "obs" / one output "actions" are float32; rank 1/2/3; MLP uses rank 2 or rank 3 and Transformer uses rank 3. Extra (non-obs) - inputs are allowed; with --config they must match policy_server extra_inputs. + inputs may be float32, int64, or bool; with --config they must match + policy_server extra_inputs. Layout metadata is OPTIONAL: - missing / v1 -> SKIP (stamped layout metadata is optional for model-only self-check) - present v2 -> signatures must be internally consistent with the tensor @@ -152,13 +153,14 @@ def _dummy_inference(report, model_path, obs_size, act_size, model_type, else: obs = np.zeros((1, obs_size), dtype=np.float32) feed = {"obs": obs} - for name, (shape, values) in (extra_specs or {}).items(): + for name, (shape, values, dtype) in (extra_specs or {}).items(): count = 1 for dim in shape: count *= dim if values is None: - values = [1.0] * count - feed[name] = np.asarray(values, dtype=np.float32).reshape(shape) + values = [True] * count if dtype == "bool" else [1] * count + np_dtype = {"float32": np.float32, "int64": np.int64, "bool": np.bool_}[dtype] + feed[name] = np.asarray(values, dtype=np_dtype).reshape(shape) actions = session.run(["actions"], feed)[0] except Exception as exc: report.check("dummy inference", False, f"{type(exc).__name__}: {exc}") @@ -269,9 +271,13 @@ def _dtype_name(value_info): elem = value_info.type.tensor_type.elem_type return "float32" if elem == TensorProto.FLOAT else TensorProto.DataType.Name(elem).lower() - dtype_ok = (all(value.type.tensor_type.elem_type == TensorProto.FLOAT for value in inputs) - and out.type.tensor_type.elem_type == TensorProto.FLOAT) - report.check("dtype float32", dtype_ok, + primary_dtype_ok = inp.type.tensor_type.elem_type == TensorProto.FLOAT + output_dtype_ok = out.type.tensor_type.elem_type == TensorProto.FLOAT + extra_dtype_ok = all(value.type.tensor_type.elem_type in ( + TensorProto.FLOAT, TensorProto.INT64, TensorProto.BOOL) + for value in inputs if value.name != "obs") + dtype_ok = primary_dtype_ok and output_dtype_ok and extra_dtype_ok + report.check("dtype", dtype_ok, f"inputs={[_dtype_name(value) for value in inputs]} actions={_dtype_name(out)}") in_shape, out_shape = _shape_of(inp), _shape_of(out) meta = {prop.key: prop.value for prop in model.metadata_props} @@ -346,6 +352,10 @@ def _dtype_name(value_info): runtime_shape.append(dim) elements *= dim values = None + dtype = _dtype_name(next(value for value in inputs if value.name == name)) + if dtype not in ("float32", "int64", "bool"): + ok = False + detail += f" dtype={dtype}(运行时仅支持 float32/int64/bool)" if ok and args.config and name in declared_extra: raw_values = declared_extra[name] if not isinstance(raw_values, list) or not raw_values: @@ -353,13 +363,27 @@ def _dtype_name(value_info): detail += " extra_inputs 值必须是非空列表" else: try: - values = [float(item) for item in raw_values] - except (TypeError, ValueError): + if dtype == "float32": + if any(isinstance(item, bool) for item in raw_values): + raise ValueError + values = [float(item) for item in raw_values] + elif dtype == "int64": + if any(isinstance(item, bool) for item in raw_values): + raise ValueError + values = [int(item) for item in raw_values] + if any(isinstance(item, float) and item != int(item) + for item in raw_values): + raise ValueError + else: + if any(not isinstance(item, bool) for item in raw_values): + raise ValueError + values = list(raw_values) + except (TypeError, ValueError, OverflowError): ok = False values = None - detail += " 含非数值元素" + detail += f" 不符合 {dtype} 元素类型" else: - if any(not math.isfinite(item) for item in values): + if dtype == "float32" and any(not math.isfinite(item) for item in values): ok = False detail += " 含非有限值" values = None @@ -369,7 +393,26 @@ def _dtype_name(value_info): values = None report.check(f"extra input {name}", ok, detail) if ok: - extra_specs[name] = (tuple(runtime_shape), values) + extra_specs[name] = (tuple(runtime_shape), values, dtype) + + layout_sequence = layout_feature = 0 + obs_layout_text = meta.get("rmcs_obs_layout", "") + if obs_layout_text.startswith("v3-history="): + try: + header, separator, entries = obs_layout_text.partition("|") + if not separator or not entries: + raise ValueError("缺少观测词条") + layout_sequence = int(header.removeprefix("v3-history=")) + if layout_sequence < 1: + raise ValueError("history 必须为正整数") + layout_observation = layout.obs_signature_dim(obs_layout_text) + layout_feature = layout_observation // layout_sequence + except (ValueError, layout.LayoutError) as exc: + report.check("rmcs_obs_layout dimensions", False, str(exc)) + layout_sequence = layout_feature = 0 + if len(in_shape) == 3: + report.check("rank-3 layout history", layout_sequence > 0 and layout_feature > 0, + f"layout T={layout_sequence} F={layout_feature}") history_length = layout.history_length(args.config, args.node) if args.config else 1 metadata_sequence = metadata_feature = 0 @@ -389,6 +432,14 @@ def _dtype_name(value_info): metadata_feature = value config_feature_size = obs_size // history_length if obs_size is not None else None if args.config: + if layout_sequence: + report.check("layout history == config history_length", + layout_sequence == history_length, + f"layout={layout_sequence} history_length={history_length}") + if layout_feature and config_feature_size: + report.check("layout frame == config frame size", + layout_feature == config_feature_size, + f"layout={layout_feature} 单帧={config_feature_size}") if metadata_sequence: report.check("metadata history == config history_length", metadata_sequence == history_length, @@ -403,11 +454,23 @@ def _dtype_name(value_info): if args.feature_size and config_feature_size and args.feature_size != config_feature_size: report.check("--feature-size == config frame size", False, f"--feature-size={args.feature_size} 单帧={config_feature_size}") + if layout_sequence and metadata_sequence: + report.check("metadata history == layout history", metadata_sequence == layout_sequence, + f"rmcs_history_length={metadata_sequence} layout={layout_sequence}") + if layout_feature and metadata_feature: + report.check("metadata frame == layout frame", metadata_feature == layout_feature, + f"rmcs_obs_frame_size={metadata_feature} layout={layout_feature}") + if layout_sequence and args.sequence_length: + report.check("--sequence-length == layout history", args.sequence_length == layout_sequence, + f"--sequence-length={args.sequence_length} layout={layout_sequence}") + if layout_feature and args.feature_size: + report.check("--feature-size == layout frame", args.feature_size == layout_feature, + f"--feature-size={args.feature_size} layout={layout_feature}") input_tail = in_shape[0:] if len(in_shape) == 1 else in_shape[1:] - sequence_length = args.sequence_length or metadata_sequence or ( + sequence_length = args.sequence_length or metadata_sequence or layout_sequence or ( history_length if len(in_shape) == 3 and args.config else None) - feature_size = args.feature_size or metadata_feature or ( + feature_size = args.feature_size or metadata_feature or layout_feature or ( config_feature_size if len(in_shape) == 3 and args.config else None) if len(in_shape) == 3: declared_sequence, declared_feature = input_tail From 77e7db10cbbca7b65c20abcd8e4854c599ad6362 Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Sun, 4 Oct 2026 11:20:14 +0800 Subject: [PATCH 7/9] feat: allow unstamped policy deployment --- include/rmcs_rl/rl_bridge/config.hpp | 1 - src/policy/onnx_runtime.cpp | 5 +++-- src/policy/policy_model.cpp | 23 ++++++----------------- src/policy_server.cpp | 6 ++++-- src/rl_bridge.cpp | 8 -------- src/rl_bridge/config.cpp | 2 -- 6 files changed, 13 insertions(+), 32 deletions(-) diff --git a/include/rmcs_rl/rl_bridge/config.hpp b/include/rmcs_rl/rl_bridge/config.hpp index 7b5ab24..3d551a2 100644 --- a/include/rmcs_rl/rl_bridge/config.hpp +++ b/include/rmcs_rl/rl_bridge/config.hpp @@ -24,7 +24,6 @@ struct BridgeConfig { double policy_rate = 50.0; double max_action_age = 0.04; std::chrono::nanoseconds pub_period{}; - std::uint64_t expected_model_id = 0; InvalidMode invalid_mode = InvalidMode::kNaN; std::string enable_path; bool enable_default = false; diff --git a/src/policy/onnx_runtime.cpp b/src/policy/onnx_runtime.cpp index 8b0e4a6..e7d63a3 100644 --- a/src/policy/onnx_runtime.cpp +++ b/src/policy/onnx_runtime.cpp @@ -198,8 +198,9 @@ OnnxRuntime::OnnxRuntime(const Config& config) const auto metadata_sequence = parse_positive(metadata("rmcs_history_length"), "rmcs_history_length"); const auto metadata_feature = parse_positive(metadata("rmcs_obs_frame_size"), "rmcs_obs_frame_size"); const auto layout = layout_dimensions(metadata("rmcs_obs_layout")); - if (raw_input_shape.size() == 3 && !layout) - throw std::invalid_argument("rank-3 model requires an rmcs_obs_layout v3-history signature"); + if (raw_input_shape.size() == 3 && !layout && (config.sequence_length == 0 || config.feature_size == 0)) + throw std::invalid_argument( + "rank-3 model without metadata requires sequence_length and feature_size"); if (layout && metadata_sequence != 0 && metadata_sequence != layout->history) throw std::invalid_argument("rmcs_history_length does not match rmcs_obs_layout"); if (layout && metadata_feature != 0 && metadata_feature != layout->feature) diff --git a/src/policy/policy_model.cpp b/src/policy/policy_model.cpp index 8a6f548..dda66ff 100644 --- a/src/policy/policy_model.cpp +++ b/src/policy/policy_model.cpp @@ -64,27 +64,16 @@ PolicyModel::PolicyModel(const Config& config) info_.sequence_length = runtime_.info().sequence_length; info_.feature_size = runtime_.info().feature_size; std::string error; - if (!model_id_of_file(config.path, info_.model_id, error)) - throw std::runtime_error(error); + // Model identity and layout metadata are intentionally optional. The bridge owns the + // observation/action contract from YAML; the policy server only validates tensor sizes. + model_id_of_file(config.path, info_.model_id, error); info_.obs_signature = runtime_.metadata("rmcs_obs_layout").value_or(""); info_.actions_signature = runtime_.metadata("rmcs_actions_layout").value_or(""); info_.version = runtime_.metadata("policy_version").value_or(""); - if (info_.obs_signature.empty() || info_.actions_signature.empty()) - throw std::invalid_argument( - "model is missing rmcs_obs_layout / rmcs_actions_layout; " - "stamp it with tool/stamp_layout_metadata.py before deploying"); - info_.layout_hash = rmcs_rl::layout_hash( - info_.obs_signature, info_.actions_signature, info_.obs_size, info_.action_size); - if (const auto declared = runtime_.metadata("policy_layout_hash"); - declared && !declared->empty()) { - std::size_t consumed = 0; - const auto hash = std::stoull(*declared, &consumed, 16); - if (consumed != declared->size() || hash != info_.layout_hash) - throw std::invalid_argument( - "policy_layout_hash does not match layout metadata: expected " - + hex16(info_.layout_hash)); - } + if (!info_.obs_signature.empty() && !info_.actions_signature.empty()) + info_.layout_hash = rmcs_rl::layout_hash( + info_.obs_signature, info_.actions_signature, info_.obs_size, info_.action_size); load_normalization(config); obs_buffer_.resize(info_.obs_size); diff --git a/src/policy_server.cpp b/src/policy_server.cpp index 3f2e466..d04a5e3 100644 --- a/src/policy_server.cpp +++ b/src/policy_server.cpp @@ -133,7 +133,7 @@ class PolicyServer final : public rclcpp::Node { private: void on_observation(msg::Observation::UniquePtr message) { const auto& info = model_->info(); - if (message->layout_hash != info.layout_hash) { + if (info.layout_hash != 0 && message->layout_hash != info.layout_hash) { if (!layout_mismatch_logged_) { layout_mismatch_logged_ = true; RCLCPP_ERROR( @@ -154,7 +154,9 @@ class PolicyServer final : public rclcpp::Node { } action.header.stamp = get_clock()->now(); action.obs_seq = message->obs_seq; - action.layout_hash = info.layout_hash; + // The bridge is the source of truth for the YAML-defined layout when a model has no + // stamped metadata. Preserve the observation contract on the action message. + action.layout_hash = message->layout_hash; action.model_id = info.model_id; action_publisher_->publish(action); const auto elapsed = diff --git a/src/rl_bridge.cpp b/src/rl_bridge.cpp index e175f76..57bef8f 100644 --- a/src/rl_bridge.cpp +++ b/src/rl_bridge.cpp @@ -261,14 +261,6 @@ class RlBridge final "(policy process and bridge disagree; refusing to output actions)", hex16(snapshot.layout_hash).c_str(), hex16(layout_hash_).c_str()); } - } else if ( - config_.expected_model_id != 0 && snapshot.model_id != config_.expected_model_id) { - if (contract_ok_) { - contract_ok_ = false; - RCLCPP_FATAL( - get_logger(), "model mismatch: action model_id=%s != expected_model_id=%s", - hex16(snapshot.model_id).c_str(), hex16(config_.expected_model_id).c_str()); - } } } diff --git a/src/rl_bridge/config.cpp b/src/rl_bridge/config.cpp index ab9d6d4..25d43df 100644 --- a/src/rl_bridge/config.cpp +++ b/src/rl_bridge/config.cpp @@ -82,8 +82,6 @@ BridgeConfig load_bridge_config(rclcpp::Node& node) { config.max_action_age = number_or(node, "max_action_age", 2.0 / config.policy_rate); if (!(config.max_action_age > 0.0) || !is_finite(config.max_action_age)) throw std::invalid_argument("RlBridge: max_action_age must be finite and > 0"); - config.expected_model_id = - parse_u64(string_or(node, "expected_model_id", "0"), "expected_model_id"); const std::string invalid = string_or(node, "invalid_value", "nan"); if (invalid == "nan") From f98953f7b4daa5da14d82b25cb92f7721cda81cb Mon Sep 17 00:00:00 2001 From: ZGZ713912 Date: Sat, 10 Oct 2026 19:49:53 +0800 Subject: [PATCH 8/9] feat(models): add new model files and remove obsolete ones --- README.md | 50 ++++++++++++++---- models/deformable_sps_V2_N.onnx | Bin 202420 -> 0 bytes models/deformable_v2_transformer.onnx | Bin 0 -> 405589 bytes models/deformable_v3_transformer.onnx | Bin 0 -> 410235 bytes ...heel_leg_v1.onnx => wheel_leg_v1_MLP.onnx} | Bin models/wheel_leg_v3.onnx | Bin 0 -> 204969 bytes models/wheel_leg_v3_test.onnx | Bin 0 -> 204969 bytes 7 files changed, 40 insertions(+), 10 deletions(-) delete mode 100644 models/deformable_sps_V2_N.onnx create mode 100644 models/deformable_v2_transformer.onnx create mode 100644 models/deformable_v3_transformer.onnx rename models/{wheel_leg_v1.onnx => wheel_leg_v1_MLP.onnx} (100%) create mode 100644 models/wheel_leg_v3.onnx create mode 100644 models/wheel_leg_v3_test.onnx diff --git a/README.md b/README.md index 7a66c53..694c161 100644 --- a/README.md +++ b/README.md @@ -98,32 +98,62 @@ policy_server: rl_obs_size: 208 ``` -盖章默认写入序列键(`rmcs_history_length`/`rmcs_obs_frame_size`,取自 YAML);部署端还会 -从必需的 `rmcs_obs_layout` 中读取 `v3-history`,防止只依赖可选 metadata。 -`rmcs_model_type` 可选,缺省由部署端按输入 rank 推断: +### 模型盖章 + +部署模型必须含 `rmcs_obs_layout`、`rmcs_actions_layout`,建议同时带 `policy_layout_hash` +和版本。盖章按**当前 YAML** 生成签名,所以顺序是先核对训练布局、再盖章、再同步 YAML、 +最后复验。 + +**1. 装依赖(一次性)**:需要一个带 `onnx` 与 `PyYAML` 的 Python。没有就运行: ```sh -python3 src/rmcs_rl/tool/stamp_layout_metadata.py \ - --model policy.onnx --from-config <车辆配置.yaml> --node rl_bridge \ - --model-type transformer +bash src/rmcs_rl/tool/install_model_tools.sh ``` -新模型先核对训练的观测顺序、坐标、基准角、缩放和频率,再盖章: +它创建 `/opt/rmcs-tools/venv`;已有环境则 `export RMCS_ONNX_PYTHON=/bin/python` 直接跳过安装。 +`stamp_model.sh` 自己会依次找 `RMCS_ONNX_PYTHON`、该 venv、`python3`;下面直接调用 +`python3` 的脚本若系统解释器没装 `onnx`,改用 `/bin/python`。 + +**2. 核对训练布局**:逐条确认观测顺序、坐标、基准角、缩放和频率与当前 YAML 一致。 +YAML 写错会盖出「自洽但错误」的签名,后续校验照样通过,所以这一步不能省。 + +**3. 盖章**:推荐用一键脚本。它先提示模型布局与 YAML 是否一致(不一致只警告不阻断), +盖完立即复验,最后打印要手工改的 YAML 两行: ```sh bash src/rmcs_rl/tool/stamp_model.sh <模型.onnx> --config <车辆配置.yaml> --version <版本> ``` -按工具输出同步 `policy_server.rl_model_path`、`rl_bridge.expected_model_id`,然后验证: +模型放在 `src/rmcs_rl/models/` 下时只写文件名;`--config` 缺省为 +`src/rmcs_bringup/config/wheel-leg-infantry-rl.yaml`,`--node` 缺省 `rl_bridge`。 +带历史帧或特殊结构时补 `--model-type mlp|transformer|generic`、`--sequence-length N`、 +`--feature-size N`。脚本只盖 metadata,不改计算图/权重,也不改 YAML——YAML 由你手工改最安全。 + +只需写 metadata、不自动复验时用底层脚本。盖章默认写入序列键(`rmcs_history_length`/ +`rmcs_obs_frame_size`,取自 YAML);部署端还会从必需的 `rmcs_obs_layout` 中读取 +`v3-history`,防止只依赖可选 metadata。`rmcs_model_type` 可选,缺省由部署端按输入 rank 推断: + +```sh +python3 src/rmcs_rl/tool/stamp_layout_metadata.py \ + --model policy.onnx --from-config <车辆配置.yaml> --node rl_bridge \ + --model-type transformer +``` + +**4. 同步 YAML 两处**:按工具输出手工改 `policy_server.rl_model_path` 与 +`rl_bridge.expected_model_id`,不要让脚本改配置文件。 + +**5. 复验**: ```sh python3 src/rmcs_rl/tool/check_policy_contract.py <模型.onnx> --config <车辆配置.yaml> --node rl_bridge --expect-model-id ``` +**6. 重启 RMCS**:更新模型或配置后必须重启。模型或布局不匹配会锁存拒绝动作,需要重启恢复。 + 盖章只写元数据;布局匹配不能证明训练侧的坐标或动作含义正确。 -更新模型或配置后重启 RMCS。模型或布局不匹配会锁存拒绝动作,需要重启恢复。 -当前部署使用 `models/deformable_sps_V1.onnx`;其 `rmcs_obs_layout`、 +当前部署使用 `models/deformable_v2_transformer.onnx`(8 帧历史 × 32 维单帧,输入 rank-3 +`obs[1,8,32]`,`rmcs_model_type=transformer`);其 `rmcs_obs_layout`、 `rmcs_actions_layout`、`policy_layout_hash` 和 `policy_version` 已按 `deformable-infantry-omni-rl.yaml` 盖章。盖章只确认运行时布局契约,不能只按张量维数 推断训练侧的坐标或动作含义;更新模型或 YAML 后必须重新盖章并同步 `expected_model_id`。 diff --git a/models/deformable_sps_V2_N.onnx b/models/deformable_sps_V2_N.onnx deleted file mode 100644 index 2d092a882d4cf49d8eeac0c867abe7cb4dfd7070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202420 zcmeFYXIK^6mZ(iml7k?KBB-Eb5D=&_5Ks{#A|?I`o){ZH zA<|IQ!N%Us#?Ep=lD$Juw}PFjDrJf)va#b6RFv#&Qo^GqMkcB#*x8Ja3Qf>fh>nU0 z4~;i$6B8R29`gHvshm&vlqucSRpiEpCx+@tNzL2Z-EGarX!Dd2iOk$|y z)8lQ1g-=Zik4cOQjkdM>lZL-XWi#+Ek=p)#DuFi%>S1nF}E`L$A*6w$!{(GBnb21{%fUG z+WxCBBBq7>c89goq`Un7CMIqsK`}{FLXr}~;}gI>*aS=_ghoe)L?p#bNQ{b&2}%r& zpBSD9e_Tpjg3X_NR97G0uZ;*t`rOuEE{*oFL_<3A35OLI3XlgTN6G@UuS zTYq~M!+#auZ>b7Nm=GHmo}jH0Wd7T=+5PtG_h2R0)Fkr{uSrM@oiI5>QWKH{ACu`D z6&-G3Y8x3lCEPY9HY(nBN>oggB*$T)j<(@3$qBYm38A5qY>by=aJ;RgRwH9$9Bu6F zZ4;sr!>uJ%GC6c&c!KR;uGcmu#`cdgvHe?_#7#G~GWjha69*?pE0d@glZe=O$z_G9 zm`Hy9aswo{;`i5C{N=Elq1DWr#~tmMx>VAp@jubhqh6MX)51ApPn z{!bc)N(wJI^ta-(=`(P+ZFqFjACyV{v-uaqQvd%E8~4A1*xv{7SH^w`K~jtv|2ANg zyGWY;lW_g=A-|CId!nsO>}~A+HAgo8z{IZ{Y5vZU{cjf`d231BkN$m#PX0d!(J$Hl z8%WOf&i^(@k{kJV6#d0Pe?TN*K3dWlbyL}`sPa2MDoPH2HJ-!o##8z|pCR^!YQH!y z#Qs0VdWpZ%IPp&)`%@Yn{-og_{mZ~#trsG}_D?kM-^qI+_WvZDf838h`k`O=lvKoD zROj%k_Z&k0%zKXiF0XpO^Xl+7?}ga^kNN)5$bV$wZ@~TsnD2su%3s0!-F-cOabM4W z!+o*8(l-82Ao^3<9RH-@FCEbz?)xiizgVIF{}uLI_;1@U_BZ?e(}?|YrN8j?d%8pH z|I~nX|1MG5zZ2#7hXMbB)BiY7@*MK(0QZ;D`x{dK`wramhXZ@6DE0WO1AF|v10DX} zfe!yC9oXYfsQja+8TfY&l*sb`Vh67Kx8cnAmuJ5ahyMfz{sySz>95DH7VPoQTd>D3 z7IgR@3;x$w@Y3Hb=%B6e+Y_L@!yi*KeSYiL9sWZ-==3MV{n8oziwFOOw_oh=-^7Fe zEM~u4=|6hV;h*=Q)4zD|H=zER*9`|JxWk<20_@vM z4Ij_E24Zv^-d?PMt*<}R$Kh+CtfmXk-?Rj-?pliFnWf@Vt9ktT=N(dUau8E;75VL~ zfmCtkF?D$OfJ&{`gRd|IOH^i3>=8>rd+E*UQSH)%jN`XxV$lJ}m#RRWA(|eKDk3=h z(t8Tn)q&mH9HPR&2atCEAbj2^vK7_xod8?D{viZsZ|{ejKn_zX($PQ07&N4%aLTTB zZn7t;N%?}RU=TY8l$44=f2L>Ey~iSSD-^}Fbxu4Zx)huHY2n&HPipXJfZLstV9TA$ zP!^!YKbk(0jC~~S)|BF&>6huyd{=bDo#KS9)ndEmlT_w!P5Ir^ps7U{7wPndyCYwa z%l%fm6WIZ0`YU0T_m6`grj4XIU6$a&Y3{9~}{Cd<95&cL@}%J6fO zCEs(8Wq0Y#l(D6d&c%50kjdKUR4LE7S69HyBxPaJMh&*`^I%8etxy*I2FBrf(f)Hf z-E0t{epf!SM9SV^VM24~Z#X zFkuAn`m-x|%z%xg(ro7OzO`1|d&7tCr*=e@cUD57i!mJBXAFJ{*FeMhAlx}(C8#<@ zp~9^nbjP3p6pGDQ{iCN?J~EFkt?7V815@d3Tfp5byy1$)CyX0ucEbca{qAJdD6caY~pBN}1MnAMQA)rtoEET`TDGjL6u2Rbc? zKo9E-9P%-P_Fg^-9@n}<#D(M3Az__+;2Te#5pM;>H*b^u?bZBXcu#OksfDTc7vp7< zDK&lh1GJWuf>`^BWZznYv1^HN*?kF3zOhw&(6T~ED~-le#g%N+tC6l19OfqdI36*& z0@RAVsd~eHdZ2PmP}-M7($m#gX;cqBCCMeLspITPiky+RoI-ydrOyXzS=9B$%n?q! zaO?mMeAQbVWtPwNQaQM5n-gv<_vOcXw$bxTo84cHU?KJAHaO~Yn^eA?g{ZV2!T{a( z!ra0uB+4dm(9KVD^`j9qmc@hakkM{A`s3&g?SpT}`*Vz^8ZHkjBH6(L7M^-RN=+*$ zb517R&`ig%K4s)GVFhe638g!a(vUk|rLZGPLZ1oKh0bBA?$+BExouR^!`U6yQ;TN= z)rH96wX@9-;V~9whgtH*BuC-w6W~#Yq@Y~Btw*c=0+NHb;5zh&s5@$y_Nd;5ijE4Hu`KdL^oi(?y4z7Fu*U6ZG`j zpmRb#_;xqs_l~6ik&d)={!pxX5mr;)+69-`)Cd-Z-NcQ-DtK7Oji(hEiCTM&xnGM5 zT>Tk<7qyeqv2(oH273BlFRB``Z}ss5aNmM z=xX5=nHik8FUdo-oqkO()%jRHbhSV?eo?7nvxnt3@D`OnccYIhbJ#q@y1t~-7#fK5GwXnXZv|g zbn8?loNPf{`J|-!^R*J{-lZLGD}6xL77dheS%+$69Z*g;7mGH3gwd<=aKpG~;%%ca z&`duH<1(6P>?m}f)z}%km{z-YTt1B4b-q`pM;KuCMLk+Pc{6V5If83OJr`VGxA!oQ z3dc_aXIGbOABs8o)1l`3AeNVK(i*%DyKB6GE-Gq#GJ6dL$E~C02RbBWUnXobw}JMp zhe)ST9+&A_Lag6R;FD_XGi*Fr{q!WWqbfLMhc|TZYs1mq71=Rjkuc-9BH!)oz~y$4 z*qHNx!Z!e!sJj2c`uYt}@V^T5OaymV6^l3D;e_B7UmS!MzmAvgQr2(^ncE`zFA^b2-%K$s{P4 ztcGC?hlQjs)xy1VOVG095N-V~&E=)BH~`~3=u#?~R=LBa;y9R7;LkfFfxjHTL2dTU zAhoQKTy{qe$G!zT?R|jy9A1WptD|tS{0xfe)kCQLeyaL*RH5+nwk%c|)lzxaDtIf? z3a?IwV#H)+4vtz!b2E2gt$jVL^VCG^tPgPD!gHv(IF8c;2MTt_Z&IY^G%)QYkJGjr za*Qm(!xdjZ-g~S#{el}>zkV*hc6~vnXBw$#h&PWyfoAwI(58BkEY*+xwVfe&&~vmO!Dbafj;(WG{fzhD!5Qh5nD&EgH5X($Vzq> zOP{Tzh%M96z2i=y*+Yl#bnQ!a{S7#{jRKB&|A1O9FQ<7o_lsY@492|Z&En7i8`cbY zEiTR-g#q)sLvPKaLSXAEs@gjS#t!U8BXe~?T|pl^xpfnMEUky$FPGxN6&J*uiqnv2 zmdMM)_ES!cD*rqdfI6CeanjXQ9INhw*+G4{bh09EEvw`wk%+PB!8|;$Bads9gF7t4 zQ&;Je{cuq@pnDs}Y1axTCS;20jT*e&E0HZ~4pG>pQ5bZgXN}yXl$zk#{e}|i4eDcI}B@DO@sP( zb`$T;!5O^`SWm^39j17r!RmTY^;}lHvAIUDQpjSL1i~7p*WztAFS>2J7$(?kqpKbI z@}S5a)SQ*dFP?^SpQje0-Q5G2+Nh7xUEYZeUqf(?p+GaVcUN14rh(#)JZPVAgO)3O zfahu>$U=1#?fbF;hve9>`MY2aw@>vjzW5Ex!ghkkxCW@T`9|$_T%z#X!!Uh9DXQ1* zMg9E6LVo&T`1buZy!DZDziaRsI*snb)0V#wBWf2@!^Ow&x#c*O&Ctf^wb>MUc&TvV zy*fU5AVlPBwRzyZCQ`e;K^!-41RhN8f$<;4(Y*Y3qDQY& zu*R>us99}Po_eHM z);zGEESA;x6CWyXq2A{ffwA*ou6t(*&cYp@6mo|{^i;X5V-na}ufV$gM))wIp02Mj zK&6S}#R09;sL%7uV!mE6Y0PnFw<*(v_e1qDLB9_jy0Z}OPaVeljy7YPHd5>#s6^e0 z+o9H~d|J~SAg&z#Kzy^-664#};nl_F*ruc(4t=^rNZeTl_WFHzhetAhbG<}YYh7u{ z_%5&`PG1ZgUQA=+57U0z(N*gXtpfRPIjEKSR9u}F2!p-`K+#?YkHV?NkeRzr9Nz9W zl;;np3d3un;JD2la=*jK2VE(AW@oH?vl!3ui9>51*+Sc!-Lcz`)6{pUk9hu&9693< z;R7_2@ywkxLaGM*`fn2pcWAO#_DvYMqZe-aE(_%rMjjaz&uH$!dH6N66Lf#$%x%9p z^X26BaPW2qYFybC53VW&*R&}-HADk6!z1bQ;yGNGGKyx&Z55(@*OPY0KCo`7hh-xk z!u0Pp9FSqnAAIs)p3ONpKW{Gg4QT7(wa0>DMk1mq*sn=jY-_z_hXG zIjb+aF4zHy@1@vpY#FuN8G%uwXH*|qZCQOvK@N*GjX7XTMRktvc3P?^LvsV=1Z8O( z^6(1B^TXYQZW@t1<*toKZM{xSmZKqbNSjCIOKiALcvpNirIoZwKhW9x(zv{01(wA1 zgpxsSy#Ku=M&xA)T6aIt7R;s>Z#Af2mJBa0R>IC7=D_*X-mI8e2U5jnp{2JW-@S1| z2=b8Q=BBP5^Uq(x^v=bwIc*ef?;R*Kge?-r2X(pUyIRjOz_){|8-`fxkF0uCASUAS?)2fnuK zRP){5wkFv99lV%qhkHt0@MC)ieC8U)>y^t{s#2GyyT)_Z@x8>=CtR_kPaJNknoW!I z+w9`lDT@7{Rg0G$FH-*bPIxC(4kk8u;)+FCVDxAUC=cI9 zE@l3r=aXP@%JBvm6EGI6LuSFDfGzkVMvLcNTMhOV>%c!_2-m*Up|N+@vc=Cs(7UJ) z-TCBA(w|J>@?jg6S-Ba)Rgb|LCm;L~IT1AqqA)o83>cqOKxylBf_&%G@U3?{&V8|n zKDS#g4&2;cTrBbA)HNokKd^`3n-z&o;TAkA$i`z}LP!4I*_`F@0~|g&6+TbO7QbX4 zWaFyya3EQpt=6rF-XrQMyfP4HWlVuH`}euq)~7*U>ld-|h!!+d&4;`Id2W7m9X9U= zT&HsZlsr1Jti}pz_`XT>+oxYsb7Tih*t87#dUT@Gw@jg+a3!@l>p-ifZ)NE^FIpZq zl6TCR#K%sq6QXPPYuonGv7X-{q>B^pKiZXa zr7;K&a1XLW4HdnbL&td`@X+Z$+Ypb=ly(BV#}8fe3jHk1`IkzK-$h)W-M^7d2ZpmDMj zhJTmCuVts)he)5GxM|gw|0(vpxGb4*Po_@QBGX5SQ^L0WRn|rMehT_ z;OR{8q03@2Iq>m7evJ$}Th_q&1syr%`#7Pl`x;2TzLz`?Y^CJH0d(C=+e721T}_FE z{S7m^@=CFlj)z)7>BfW9u2GKT`yLMy#*opnr@k%S+spg5VzRw6CZT# zh{tO*+4Ri_*ca6i!^jDajjM$%Suvnpm(GpGE2@2`nc~B=d%V~4k-O1~WT-1L1gQtl z;A!81{5?qtt;37SY`d;dqP&NW>-+Pp@d8&)6|jBz1dKayNepS3UuB-*4!uV?(t2bKK@tyB%yiG|ZT6}e)CEG`~$ERy7 za9dqFJal`RFtcSFD12JY<@?=PQ+qtklC|b3Um0eUE*I|J(uQM(nJ`0jA8m|VNI%Pa z!EucRWEZSNccQDSuXy@OjtB6N*IVK4-XR{H7yKl*&l8|i=5!u8(181&jKutUGkiSK z36EHr^NHG(!ok$(xITKGpss96y|+~eZ5C-#jAxjzGi@T~$TU)JUMU3bXv6#WSc`sn zMv$SDOZ^w$5OSdc3J;g^Q`GmUi<9NiCxq&gZ7#v#h*A)wSCZc)Y3{f^jpy{~z^443 z=9=`!IO7F4F{lW~uGRpzr;pr?Xj*eX*Of@=HU0<(2 z?tMYHy+j+81D}a*9|sBtuIQq4ZV$9}HRcsR-@?WAyQ$=wWNuG704`b#pn#OK?#8Na zV!`wbTz6ZJ3aup1X{xJW`jT_v@T@$z{xu3KTnZq^%9HNzZAW<@QaQDa3rls~N6&gS zqU`RIxO41EG9PORu8H07&d5ghIk((sxaLqX%=!~`7#PW~<|WfnuWVlAIf$!YZ=;UN zV?@8%qVP)g1&ts1lFkj=MfY<$;*$BU)S+0L(}pjn)WV)bg|lZrj@0-d}v9yI(K+13_blK&=z5Lxce?f14`#=Rv<}85?FU)w>JCm9`D&)D-R)fN%OHgve z8-o~h$EL3Le4wIn^Bd9@gZRI6~C zm-ooCH640f=}n7tTA)$k4jmiWD!yJF2{J>^30Ft`6bF|t2FUcQc6@u08oc+5VS|>_ zuoo)WN23`od`+d=(`GciZ6;k?Q%UdYXH)w?ubMY*Qlwt~#=YO;vAkx?m@4i5vpDgI zJ2!gu;mT?kwES!ZSCs5XUabH!J6rHR$H$bsCWNlu{z-Fkr_;dqQgC~lD?E;J=CJ*U zZGT!}!s;|C8I{BFj~~EA{7jh|t-|FY59s9M7%1!S#O6~sQBSSs;QnIx}r-ycX=9-l?8A;GhtF!4>1r>=j$Tsl$>70=^rT z$*q&d!=2ssoM5JhH8YIp_@2pRW*f)iu?8}e>VbE99f6^ZJuAksUqm;F11 zxJP=ptEMHrgc2hMu%EFB&-pBct9N>#no&=2?q^xnS|ZJ3_v-PBX~BF{MKT7= zKMRLFXW-=pTZJ~eZ5g5e{lLF4iXkZc|0KKSAfVM0M6 zj}0t_@8wItYU&no<=1>l{4$Fxibm7d5uNx_%walptXM3yVW{r37EP90*I26ds(F6x zI6bcWBKX+cgtX~CQ26jTB(IOB6*-yg-Qg~6=zA4f(%YfxIUC%3sE%%V<+4vV0sS3H zM2Gj5RWc_&Q&z?&S|FDX_iJ5I`z%uDftR7f>UMDQWhH&{7{`H%$GB+cL|o;k%|qwv z;<<>`V)jZ9bW=`<9d_uW-qF!0Q@$5APHS~52-^b@&%Aj?@&vBEt%*AB_b8)f1Npli zsctYG%_Rxjh^Jquy5F@EKZyzFEBAAG5I>{#Ben7LtxI5j(2N5&&*Q06%jope6ui>b z7guT?r=Nk5bnfI6h`G3zayA~TUTb%TobIVtYxmHh6x%66f0uQ%{NOFI>x@!i+_I@~ zrr-v&Z}6fS)-GTYzl&5GwQIAC)HhoGctkn)Nm~2 zTN|K}(`?L3>4-Cvx`{g34DH=a*u<$9mnm(e;K#XOaa|9VEl2@nsfQr5)`RT}k5OC8 zM^rj{A1|1=N({ZGichc1tZBcwdyV4d-4w3Y5k9Nb2+ewN)enz`ajgFmHtceiqhOn` zEj@r9c_*;pZfo*M?oQsbgSasD1$^l%2Vu3r;v%^*^m(&BP7Cmd$fH?8_l_rpuUq^` z%1f5?bxu`x_R#X^rXB53a$Xr5LbGY?^7Y~_xy&ggnWGZ3RgT3OWr?nJT!9zKwL_Ing}6WAggE%} z4qD{p$?r!GhLT6esrvR=VR~y3ZCF+5ZqrW_T-(IxJDVB(tewp$ErjD7+-%g(*crlB2 z91Z4;X+h9)@OW~1_yqlL7SQ`uBE0`N))L-l6Kwo#(v#W*lP15&b19)enjvOP2xLu#S;Z2bTjcH%Ngf8CDWhyh{;2ztc-w8LK{z4fI_qt%OO{ zAp|}iS#!~Q1ABE4WS(eNsLwA8RH*LzQZb~r1?kNhiJw#JX=S2^;NO1^ zc0Kd}=l1s&5~6R@zQp!C@!3|$bPq#WldZxqolJCbDZ&H(d+3>MXP)$BoGa88lD+ak zkZn+7mq}Z|Dn*@dW;Y7!HhrS@{U_2)cPZSsq}B^5k_-^mwPiQcVk}e}W=+Pqf6ihfzGqZi{VT2@WO8`>RH?{d)qBWnd?}zS`OqLP8f^wg9WT&!$^4LJ{8(73BTX5}jg<5C6eM)> z;0@q{ilcMk((!D1pQ%yPJJ8nSYP~G>S(N}U*IPn6!}-Eb`)%Mt@;o{yn$Ly=b4cSp z@(veqitnCjEi`Ddx$xb4Dg9V7a=(T|Fh6LC$S6Zo{S);;HtI=zl@ zXQh3{ymekIpHNsy>%69s>iIl6XW|1=5xQv7_L5*0dKMgyNMmAl4$L3&M(lM;3P$T~ zfH&4I9?w&rQPbO1w03+pM=ZAH*=eDuVirQ>PrAWbWpm!RRth^9r&bTy^AJL#I*V;r z)xd@|l6ir*d33XJ5tXQD3KKdhS05}W0fn25;CNjg&FxEJPWLW6CCCkRzP=KjvM2GD zYqK#_do_ps{6gtc1E5D-BjqK^^Q`vXsIul0cm&bFF1i_2y^T zTdI#Hm;3SI(G685m-5Nd;ft`eB8v<|1E^TfhZCpzkYguhJRj0RBX`ppTh(&HKSklJ(%8?7lw~m0!ic8OMXP zrZR=yC;JPl?K|IP&``If zwA{W2KI_e(?5D)~!L#s2S7(-!^tIW?oIPHT+KY~}VrbWDPa38u%{zz8q|{Iu+%8!k z`(9p29tpci#_uppOd7{?Z--!osxRL+yeA0eXW(#Dl+ayij~J~wTa2DJk!Ce(pu3&} zDIT%F6FLgmGjAV_xW5zJsZLyZBdlh_K&Bn7$LTM6 zeSL3g4%OmOu36kZ?jwCJ?k-Hdl>lFDQXqeCTU-=kP0E`(xL=Pefv1txw4lTR=hYce zMN&3R+;vVoeeDHd%TsKWtd;32%VMk55n+9AGj5#k$g-m{cy!kcE^ipjpQ=aVzy!&9 zkYpc_()0oNeEfSDpP;}yAMF<{wlY`JVn7$ zinQNKGS9m-g7$A*2Vc~OQlMv;`#zxuO4%)@ZQazxv+1pn^U#e4)!h(Htu64v538D{ zwfku7?W<&-F2I+JUU;PAST^vs<%tnC;>OTTAmh4TNVW>*4EgzZpfF0HNhy?(6N(Kc zavYJK zZwzULY43lE;kr_&^L7TME?h)AUsO=c$v!-I`UYs|J(#QRnR%QW{()RBIivZx_7JGD z$bC}t325V^iKF_-Vy;&k{_6FPCLVe#gpCP-dyBFu@g2fq$=dRO0g|y;FC)6IszB39 zzCcC&U5L3Z*%wiIQ)uWX!>0^G(JjgllD8)ErA(2o4toZbsS0#_o-P{Z24iTP9iP%4 z#3t$%tp9qcxOu-6Jh^@pUQe9>^Nz`|=`2Su7<7SH${efe7gSklErMdvoyJ5igeS@d z+}F8TxZoX!zAf{)>(+*98@FTl^~OqiQ?`(T&aV}A^-|^Rot4nR@tJ!^FJBzqtC;#N z`7GvGB!beANu*`&NAB$pxISIh7Cmw-;B&7gYI=|dNek^^@Uv#X$w$CON0Y< zYoKXn8V0^vNs+IfadCg^n!0E0F?Hp7a;Oc2y6CQ$thu$?Yo9bXZrY9B5wiH8#t_Zk zjN?M5LM}PIhU@(Fxn4aNj6YaVc~Kj>)Mt_~XYy!>xY-xiN-1N)5+iI$)2Cv;CVH)Q z5%zq|MWg8z0R3;mg^o4k*Q*C?>~n}-3_dINTfP}na)ZPrUvg;oqFC5ctc!LTaeQS- zD;Vnqkko+DLgv#Vn7X4I$g*TaZkac3PyQI)KBXys=k;BOaJ@2f9^dP+i4!n!dDB>?Wzn7eD)A z2dzw+yU`Ewr>fC4Nnbf-Pd^;;?i>hRdf?OTP2BhEBE0D8Tk~a;fSb9nU%a_1q$pBcgfzdWS&xpftbW#AnL0NbGmaaVaw6>_Da0;q2_9PHjQ=0IdauBs(KVx8XDo~A-d3g@prJ zP&Xq#jv8n}FJnjY$Qe-{y-QX>X`7DpQl*Agt=lXFL=}rEC%THy40d6Z&SntQOYr_A zX}(dD$9{#boFd(wWsX$QOdl;ic_*{FO-4l3_1>K^@wNwB-<2Vm9&&i)-B+^ocNCU} zm2%VQR1S*TgvD+AASFjxXppSDhfo%sS{%eK0lhqmp;ws28Wk;c-{pZ;bzKteH=OV z*j_j^&sIG7&<|A`YH8+%r65il!1qS3gpoPxA)aJtec)R6kNKBiy@HR}DKt|Ikc@Yp zD(Q&3`=^2PQ4-C!{(z2M`%}-9Pw*~h0IZnxl(fG+!sbswHPh~O1_f_B4xXhAm;6hF z1&hka@s&464k{w)>{Qg4?JSwk_2q8Tv0(T5mGF9M2Gkv&2VO5<(xlz*DWo|Gj06us zjJivP*XyXe!YQ&H+eoR-&OG;kA+m}!&V4B5kuBJArR!ekJFmpO?U!ZT_1i8YxdY;| z2LU|j({ga_{}2>AkuYeW3*~PL$2~*qg_NH19M^3vY%AF+e);Gp#BG;hspbN3pK^tU z>BUieTpGODSt!W8UBwS8U!u0w5Rb*tEwozQ7Y|;_hRHJh`C#&VVcTI{OiVTw_kVl` zAf^3tmY4<8<~@Pv$CLqLAVs{I#|QTuAd|@o zeCLo9uZzA4M*j71@99W!Z~e>aC85$dKdXXPfR9)Z+XR(sPm#%|sVF{Pj!%4-;NWs+ z_G@>aK6a8pYm4o$!>^ty6(#v}kmY-m<>C9Ox6nUyKlrzA&&ukZ@$+D5Y?&OymLE#t zaEl7t?AGTOp|h%Ydwe5b?KokIMU(qyAqk?k9ClqgR0}8gT?B0pCBA$)4xM&R{YH;~3m)Mckm(29N4D(t_xnbiz)K+_yNfs=5|r1YLk# zU)O`%7b7&5_eRB>3&Ppi-eQgXRvM9E$nPv?P?6z9Hry-2VZ$u>!;0y!-ftQ`oZpLY z9`fe9w|9Waqf)WpiYv!|c4mi}4yd)$2d50_Tivz#gAjAg1m4Cz7S!@z3#C66QRenR zfb&OFYeOC^bOnyn(O@c!vs~)Lvjc`^2508 zb8+kHHavXIEIf83Ukv&w@VNRkDqOFDC+xEU<8z5ONWtv6sjxVx1uoTXf?6*NOfLzl zE;cX6jJxVJ9oibO)Xi=jlq!ee?{dIQvR^p1$0e}exrag>CqdDr3*dYtn-fkYVd{)M z;B;9QR!P>*WOS~Orh+;@e=tkv1{S>BT!B7Y^y4)FZRyf-AN=;vo1N>Oxp>tjarap5 zn#VVt!K+|7Pq&EzpT_}sxk-^$tj)mwq2BB^rw#2m;R*3&(=d2R*rEFTw6`pJW!Ho7T$_%z z5;%RA;RlmWkW8N^V(+PvG0AmltQ|L&mB)?4PQ}K!QLzGwk9?yJ7CO)`djY+EJdRuB zozUi*BRb8x1BN!S@Oj-@_MdCYD^xPO7p|1yjW!ebVXDYZQa6O7Fcp(#^ugm|7x>ZjDC|ueC&Y|2;@T6yVzF-Z! zI%*9JtZbm&U(b-6tvMc4+#$5>RwBF&G7##v?S;8sfcSYbf`A3J+^JCS0pHD!lU+h4-ub zL10rXzVtH0?8{v-Pd1Ha^JpQ*XOZwF?Fo3^96@zQ8pT{=1MIffi#wz|5%LekQEN(` zSR^)z+Py_mKAyv0tOv2tJ_FpkK>8l$&g8}jA6oY^g(nSH!i@En+}mT8 zxHMyxpgV?XwJ=GthuE3S8m@{Xe>@i++obYR$s9?CaW^6Qa2bt1R3&!M3B%lr6RBI@ zqrC2H4EG4V4l1vLj_a~BTwFjs2|m^?!XMmzL<6VnJ=K)@G_Jh zu>tBdI`Uqe7O53c3PGfcp`5z)dt03{>m=QC`R#IZ&f{g(H}OV|eYT1|ssn~oS&9mw4kZwdq2kHtjq_Pj@L z5o}mzPu^1Nh28f`vG3>#cmN&P$^SaZDvd#>ieXkH@49&vtPWOEVa_Uz$x-F4ti_W~iuCcXOJz8t}| zewWba;T8AFeLu-DJReL(6?QFUxYF}+jE4u37#n)ye zRi6Q;cAO=RXI6ZpYZK*~3_xuYL)ekMj;rDa*Yqs=K&l%0sJy)!ZgdLa^c#iTZ*DZ| zs;`4B8ngI;wJ#W*GvN6_J@`<{XWCHkiVmeTz|H7#(00<{qkBxD?u$RlR;uB~g|2vY z(KDLhKUthI?FDqYFr8l|tivXSIUcf8b--zED6MpKhG<6<&d+GecWRfD;eO!3ndYz| z;DUI|Yc*Og%0kt`F{mSd30elU;SJL|g3bC5;);;R&~bz{>@C_x%O0MpHhZp#jxn}e zZjvh)4$~CQk2#DM(;{l596bTGTgca0hGWgtQMUF5ZB$r7$^MnpQS5||9ql-OS_o$k z-3+Bw&TLb5SMaR}g{L|NLPWtC8gH@N?TKbb*3yx~j#>HQ=qH;g?VT=Z=joz_R{3Gu%J-=a!;_*Q^am0A?)U0IV*G3-nz#A6^ zNcL5hF#l_fn%@~|*^hi9{by#&|)g%^s$ieIY zJ(k*ECuWb`NnJzVinBLeLUOXln==HgH_#%*)Az-k8OuSlWIWjF&jk7DZlF0@a!%rN z{??fr)W>4?ehTcKvJ1vfjb=}ym#BpXqMP0l>hO9n6pxb3Ygd>-gWYDhJa-jVE{cT4 z$&2uK`wrZ(r!>#j`AL@o6(Or_30ZGF4@HV=#T!=dtKOPgVQ_OFPTW-nshXB-Ey#;a zkCTKgPSa?4d^#Tt%)s#58F1QTBpMv}Bzg_FO#Q71@c&(%x8YbA_A-BQ2t4Ckh^Ryg{lDneZs&Q;JAP&tw9uVh! z`zD$?ZJ_9VMa=oym2PWEWB)CWDe{Q}-ky4xJ{#u2DxY%6{^D#N7Jd(X ze{Q1KetGn`ZHll!P2l6pf0Fwc8Ekq}N|9M>=wb2=h%lDN(7g?iHh3dQuX*XV?p*`* zkX2{zR%sOER=T-axT31e8xWJ6#1-nU?6@ljWik%Z(BhNT3JLSkxHQq@=n@CKGCV}G zCu}!8|EVk4XYYZ%d|fzvyfH7=sUz1)7j8UQ0WUlYsNkCt4wtQ>k(O#5m|{Y{_E>eiJfn-NZ>lQ$eoL4!@hK*LX!f;-oA~gg6=O*X};NbvO#~ zYEkq~S&@@`C*hW?H*or?8g95gp9df6fyy`J`IwI>k4-v9RZ*j=RX14jBJFzk__`J< zt{QN^-aUE#lcCVGAfMhz@??Fl37%|f&mNKb_+2LhvefK&<|jq23U-6ofx&E3?E-2s za;Ud13*6?9#cf@@M8)!9ytz?^UrjgwOO*QX?%B2AyG;-8AE^b3pCS34u?%cqCFws8 z^@br=o`IC<64E>A&2J_ZpbKiWLg}61$TYK2RRi&S;Ob*!h%Va9lCxezY-r#Sei&Nvk%g%0moqJ zjY#CDUD2u%t(EIAd55e!u@O4Q(lD(bC>S zMX%?%B2ihTtc*%U5<*Hunlw~aMJY5i(A0cA&y^7+ql^Y+yp2ReB2oB0Kfl}U_wVc9 z*Y&)va~|jMxE~>7-0@R_6t8M$lcoLed~F8iEPhAr#_b#JoQ;UFQZSjY$%yRF)u!*e zOYmu@6EXZ;jhB~)fQWrFT+K75^=Z-A?tF{U9jU|wE?;G5AeVY+L_usz-C4K+F^Og&kTVg_9<|MP8*%Qfa z*<^H9oQ20Vl57{|*15V<#DRDSs=lDFo>L4FGLT>c%T+cwebZtc+0R190c{0AuyX43-8 zovENqY`x5ve3GUuV}nbknG#N z*p;g1_rP|whm1?32=NU&i+#nT^y&j|HhO~)4enb&qYLUtyq`7wwssW#*O`&j6{shM7#7xUIPVGao{|i#uu15+7pPj zWe4t2jb|z)Ix+iB6#W!_4uXDK(hb(xB->cCaqEjnzV1C~I(fJY60??*&ch3+W!goQ zE!IV!Es^wkc_8)AaG>%X2D~!`Zlvq{Yi8?9dD7aZOf@2^v0F2Nz0)91e-GBc1JQ*I z*@wxG3D>evoJjJ_g%k;q?3E9{5_OOs~Cag&6-6?2!en zkkY?{x{5{91t?E1-&w<+;3jvS>TD3 zEon+WZ7xKcC)qfqe!X+wpLZiD1N8%%dSPW6wi#rJ#eL#RM4d1P;h zQ|&cr;CZfZxi+7=bXfB1qF&*%#u9q!-BLR4FG|crchH$Rql~RPmz6Y5!(-fh|I#Tf zbh-bRs{thF6R(qC5`P!#dmpjw}^E+9hb%QWbllg$3 zihi-CE+*^_tu|CmlqHv|)M0_&GI%IsLfbFyp)I5uG<{T{&ip<5s_hgg&dXq5_w0tY zYE5`C*O?3?8Imp^bt3+I3F%9^K{l@X$=YRa0-?tpY+~?kI`^m~G5se_)N-@gKr|CGoYz7lc;@m{2 zuf0B`t_!6PUd*LR1}$__4aG9Zq67U?Xi6?0G+PC!h}Kh#-}i%k(yc)cZc`@@TMfwv zeI|%^bA3ra=zZNS1{O{3j-7G!G;;SSa$m{Q#4|Qzr{7Fei+xI?3W>4 z_S)o^Y%Y0FyS6dt?ruBn*!v(C;Y!*LiILBpv+0f)9T<|2rGbKnc!^8>VBLTF83%)5 z*nX%D2Ywq-c55!4-jH5zFuRleB&kHszx2TTIagV8H#^$yWWw58f95+Rt)Yu0IE{gg&76BL21Hfm&jng$_n1o2;B3txXpF8|mU~PEXxf(!$yHryhfeNi(R)R82yx)bPzxUvkecp5z$KY7FVe{Nk&4<)#MN{JEG-d}x7gR#GHr*$gV& ztAjgjZ=mF$KjbJ%;=4Fen#^hcCF7;gxLAthPo4^<5nsvc@+V}{lw8~|aF7{3Z$hrU zmnALhvss4wp7P%cf+ueu{+r0@*K&Vw(}t}eF|dFH*KdMZb=4Sp^gYJk+rU~lvT&h$ z6S@8N3tV}$fbljeWj*Gl8)r>gwEIS0rK#Ml_=&<*@Oc@26UO@3=%Ky z#4s`X#MIT0wm;&0ID(b5W2vZJg!D!jm~sph7dVj5k}>Q=Zf>G=DI5J`_SK@oE&+HxjqddFk zZ$NCOP2+>m8lvlWm+wP?gx62SXsMU1sw3b?jwUnh(>Q+m-is%=|7vp!H!Bu4VW+!~ zLcXIQouwI#Woul?rmKD=u*-&4x(U!v|2WUz-h8G(eGTdjw4nPXMKWVi5ozv~XpC!E zLFaP%xy5)aG5lggy?jJzD`Saz`cLs|nk?#XTu7>??txh~3DktkUC&$_j(cAxP|-Wd zAWvw)LePz9vhP|s`*n{c)1`cw zDRQ#?9jd(F#n|o`XBd^g?5)s?q{OoXd_B4`-B6H3XKB%QvUk{BbOrq0TnF2R#35=- zhUUk2pt0CQa`2c8yYg@;Jt5l&K5gzyVMQucSSZu@Xkj1}PctQ#)=Ck{*^$&b$^)7% z2a_|hbBXrlG;qmS#@5h6TK#7V-OIh(|J6&-m`5+*$dO49wP!O9`h>Hex5t9^!ZT_yw7I!u1E{Aa5y3vUw zqcWEXZ#lu$SM7L&^8tmOi-u9tMP%#I8uZB72;p@CH1?+xb8}o4M$08=WaAs~(Q1SE zndgZ5hj1$U`4V0)ns4{(t)*RfQ&z)q`d*Q=4aQ-K=NMDHfjh$!5r00ND=WO!XcrW}DZ-YiNf4*`@ zG9B7w1gF0%*{$E_hR;)L!E<6PJFRsX7oRu;Kc$SxZ!Z9MomtednVUbp_yZNiOHrff z2?R72V7_+{SrvJV9X;y}59mou=+0u_b)1JYRguskBSDibo?_xM9TI^8WUxhyWK^p* zs@I$*(@snTd(Bc5eyB|fp9s;>tFJxdLc}eJ)sz5f2p2KB46)G=cOM{aVF)SzqZg?2 zT8Ca@*GLkqJ++DC=bqz#sfb0Dd>yiA=Ll)vXHVBx3D5~eFWIc!tEuVfy|heVjDLM~ zBhH?z!%lea2>aqSsH?Ig+4@J7>`rmRc^(XOPElrp+h3xqnjEb=lSrxaVYtQl?Ild( z7_@Q1-R{1$w%ialJIB(5q-519yG|;Qp!nN_?0@_XgIE4! z!}YGxdY48rHcgc{n@iLEIW25s&PQA)b`icA%m!mEdAy&t4%$nGnW}bsxRkR4H`zR5 zXX-eCgsv0K)k&f*sfXzf<}|#zIEM~uw$rxOxnym!5GDK!YTCCJ&b=z5A(w2$%&^hNJWzrUWTNcvjTVIZg0z}B)p}TD3$Tb{O%)^JwMe;3b4E?c)bS~2* z3O)kl*=&vt#J*C0x32e(%PmGOOPEN(z)5X%2%;p2rIX{*z33&Ss z)=rbBxoa-bk@yI^>3xE>$10sk@D3}wQ={`3S=v2~i<2H#gy_=5e0hH?BUY z-2*8*$7udcN&HNc@$jyjY-!UcPJVKv1#Y3_WA-B$xuQqpqmPg!y&oCKJc{Yh*2Af^ zDfHN<1*}kB72jS<6#krh!7jIc#@||QNTZ5QgCF;9sH)8ZjTSZdI-~^$6bB%0D4xVL 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

V zJD||{yDYEbB$=vSE{^owK@wJczY6242y2Rk(seV=5GBc3e>n?Z8OH-AETJ^=5pRmWys6Lb*n z#eXl_fCpNyu(-Cd*jBk79^!2B_q5Pz@QZ0kcmrFtaO&X;6QqCivF!KZXnQpnqFfb(Y@!pMx~c@H;x$Cy_K)Vn@1=?z^keaTsK6PW zs}cCvqeRc>ILwPkf#rWHh+3_P(dKvf>-1nW%{PPZBXq$*IUI5w#)Id!e3YA$CDvYf z1jUKtaG!@V6zy*isYd=29aBsbRezwk(`}x}T%F_aQ0KBI>bfjreLH;oavugcXR$#w zvRE@Wl4=N1Tbss7&?dW^ujvX#)3ZzP+dg;PcBBwP?tEe+E@g@{sXxrM^#wk~LP#T6qzik$M z?l37&TwcS9LU+;1;`P|IH;P{`TEOQvA0p!2qcQQmE>y-LS|QvVPH}=TPV>% zpJguu{VYvtuUbG4cbywqMQ2& z_Vvu=x+7|ZJoRu|f)!YPXt3Kj<1AZ|DHz~=2czPRD1O7JTQt={$UuZ2 zf@D2^NX^?09V=4dze#>@tM(c$7`TrY$+dBh!Z}#nF}uYD`}UB^q&V#QPtSgKsXnYcY$o2H8X}UCJHsY> z&8LBDD|yWQ(L|JVgLS(SnEvz?4lKPR^s?U|5ppWr%2|wsUt`7p{ik4mzDl3oot-5P zPM!=?r8RKTtC@Unwz2(y?UVU!rD?2S+<1!q`FObfEuB>s%}0Gqf`Vo5@S9^VJPYW8 zjYpPKuSEms=&#|l;!Qf{B*{S2_z^VN_AJ%C<43Pd9AJMlU@!46s-W%U5%}Gn&i#)$ zLDKYYI()LgrkEwL@$RGfGSdXOF3YIen-Kc>zB~I(I`KwsJRPO|8p=Dh?Zr~PWO-)^ z`dU4M@O6T3>|hohDe(%6jCycLTRqN?*5*DR(=o&29+Ou*jA!RRMVW~OtoPkeTrYhW z?PEujkD9p?8gw>-LcnimU)_sy#^tgRhi}n=C)3EIZ#Mk5)Oi~C`WT;(KaY;B6tbo6 zKd>xQn8n>6NbenA$5ZGVYM$!MU0%3Sr_OE6_*4_V(X)c*%MPGM_n`7x$BTIWW&ke~ ztt2dQKOcYh0_%Gf!tZ}Pz-^5l($ilyaQ%EY+_mU0*xF0ercKl6w8#XMnQeykx|0}h zyU5ai=+jYO!+@rkpmyR$d|h%&WH_mr>=k&W-``~Dn6Irg|5Y$P^*#y?kHUmIhh#jd zG!guSxmrg^I_}35oO^Ym{nNC5_@%OsuG!Q_wOW(7^cE3h|MY|WN68pRCUdLWHdd`V ziZ}9p(GzElNX}dW~Ff3gb;`AMtB@3vp>WKrbbo13BAM z%%b}^4;wDUFN`~a6L-Dleq9&X%}izNy(m{+6Z(VpS6+u{P1^KRl3dxG9vc?DE2U&h6?d$`&*2i$df1CDxpPi+0UL2zw};qQ$R z^zRdAzW;$*xyGNi zm^-q;?uk5kP%v692`A<TTX-ITZ%Zh zDh>BbErLOPAIPyvbNv2B9%~#|bMuTMY&RK+&CT1GpMM?;@!k&&*6PB!>?kWbeTe-X zc808WHWqwIXE6T7aAM)S7TiLFxvbD({kAdy+}>EwoihYi+So5}QB|0MH>g0*&=zQ0 zm=5Mu^H8Tzm7MIYV6XDCi0`b!@J4kFj;qgvE$^nlY83qE8_cm|@k#P+kO5YHT>!s^ zs=#TrYoIo_0F#}{L^VZ>3>kU`n+B$n>f;m#cPFzK8$x)@)7xZryn)cCa1|aeKZQ5< zzW{@#w-`Ep9h>i;L^hw*63;boWb3Y60i(I&7>=o8JriC+(kBlL5WaW+YL#Kr!(yg2 z(h}-k)Z>H9a2R;*GW`227S2MpJaPSa{JJFz-3%tu#pa{gAz`29wI~m5?POW|dI>6L z=z;Q*`gE%I7MMEXhpAUuA84g=hQ9SrQiU`$-h{4>|WF=P-HV(1aJ9&3y9MKT{Isj z$z9aE;p9L~uGFbW$_(xih4I(%d5a7`GVUJpO6h}Xdo_4_nj>A5zm#m+@dkqabdsjU z3D~YxjpbXeVr$K4*t$B8DL)zldk##%1v41=bHyJloT}J|EgR78O$FJiA&HTG3rJrR zfR4Ho-v4IA`zML$6AMaus)z8JbNw)U!Em}~(pPBD%Z44z0P`tLy;SYc~ZCK5Afjsoh~Q7pk$H-{j#6{ ztdz>p^Nl0#d9Mg>O$NhT2gG*EuV8ycpI=g}LWf#69R2+xnPk^W@_K^MCul4tt5BLE zFpAW`nx#c$;liG9k~H@*yQgSQrAPU|q)9ep{+JzT@Kzb0-c{kxuOCFEeTJfI{!8#c zrWCcBk^(u^C&18c5RFlKO311g=rC+G9=CXh)k-z6a>RAECG7`s(SJ((_6~qZw-Hc( z=^k^piJ)V5zapZ5wIDxm56p5iM@Y{kUS9xXv^U}S@F{3zZ;9q@14Yxb2Y`yf9h?*M zowSa;AsV!$j-k+fz)SrwcySPV`MqO4dYPi!Vb&y_L<#*0jiMT}S#Y3mIV?(94#(ep zg{O;rx#xU=8|j_GzkNClr_@#OwoC@u_2w0mxGWm>}QDHx;2 znKFrpR$|!6@RG8S9bL3cG;zQdvZp~Gy}oS3kBbC9OM{o_#F8#lPFu?CXSIvAUcLg! z`(~4_A#LK%|LO6n`LX1_{BZoM+lpnew@CY_4zh1`6b#uh6b8j>^K1R1ku|1)bMPyO z&V0(!3iQ#vV=&iR^NnRXMWF85dh)|U_`8Qg;O1R>40qkbpWZl!_JZqRw}l*P9(_u7 zmAeUUhdd03WyG|!1dhh|z#V=MGjuG`|CIxZ96petvHvh;^f<6y_7oHLDLA;Tp#e+XMr_=>kJGK!YxFW7dp8#WiM?mU=e|RWLo?drThga{! zB<0mJY>n5#F{`Jrj}fU*XPJln(GLlH7|aWr+wl8`J#g4#HhCxb@|>RgfXOU#{8AIg zqT;;KJhd0wF1Q0vYr^~Ly`Z%?0pd?9aEBEFvvbB%|C3_2Y|;i|f9VZo{gCE{ z+NwBV+E^I&`3R)A6^h%dgzuoqbm8uGC%e127@~3~aZPn&*b^gxzwbR_E(bpljh;b5 zAGr>#Wj@SQq|2MWNb=={%iz_LEHs!@gn}R()E|{&`tfrZt-Ti^Mer%+Wx)Mn6>hmP z6!)ICftzmEiSF(?+$Qv-jNUko>HHf&=Oj#|ySx1b?`H(gX>0^>m?j^Gkz(D)S7G(3 zdoaH<1@YT^_#*RE6sB$n$KT$^DP3t8Fg=DmOk0I;?jm6uE})Uv74*^%iMwmMMdMGn zkOPHTAhmD@PHY@c5A65_nmf0`se4~VV@h6wfBtl)sC^TqW-ft)ZOtre;0OpDcLn~; zloV;t2ocF`_QgYPkJ+UnbFdk9k8S&X64Rc_V##zz_*~mTzIo}wn!&Ps>fq;K>o^+E z?-HZ^`c|SCD~A55kFdX5%-j+ppr_?8?%yOQ_)U+&yG8LZvHc1*3yk0ulWjnu5ud$U z19$QU!?dE|)c5oY_FvXG-WOdg>KRB$j4DPwhQfdD(NOwi8(CNKlGHyRMs4Qb zK^ym}FpjSgzx?GRPOezTqWebTlXq`$V%a%-6C{Rr33a0N^2@PiZzm2epU$T)Tn00y zUn4P3YgxIW0lttEy3F2jQIlm9+_W3aYT~EU*@kCusnh|~U8oBKjjK^%=v%1YG6)JT zJ`wi9&p49hAR#;~}giT)hj71#| zz@78<Cn9i~HJDd^75F2|_jcz5?`>M* z2t1t727MnK@Yex**tyFRT_tX_Cpu2}&#e&0O}q>ZCA*w1=?;`ZOU%jsFdfB-b;8 zuu0U*+$Emk5N5{PXd$GCcQZfxYgnvxgiIRMhJRn}!CCd&q2T2?oKUg_yJV6uSVx-H zx5RL(-J_^pYa=PM+YU=_Zy{j`eT3hv!yB`ec}H+4lNj=WNgWS_Wx<)^V~4M^it{S8 zIm`u5-8#v%Ud@7*H}~=R#Cf8u4eQWq*at=v)OeHcdq~o>L;s?w?Duqa`a)+EEuP{; zcatV~sj-FpQ;C2AwJ}t3em`35s1ltF*#SrXDBuvG3+2wOJ!GHYA3pm@o!PlMVwO`U zo1r$F9vE|rnPkeKW8M!`UpSg79`GcVdB;)mwIz2Rxt!^=jb~?Gt;2)EWN75CK79Vk zmAKSM@HqmX5I-^;U#-eQJ5@Q@b;5)upZY~|YqLp6cR1=@vBcO*+YuULL8so9N!1L6 zH4pXq>Xi@JAJZ{B;=(t)=rCKPEqDb6c{jm-gN#6NsU+1|ID(chK8mwDC3$!0LDo^} z#tx0pq+tU_@gEHxWcS6_tn1-uFn?POSz$+D+M;zp3vV&WW`W_(PA7>zGvW5|Y-X{@ zS}gx-BL0dm3{T&(AEPql?`OKt@OZkR>$qctH?;xZojJBzI5-R#)rxo9&p92?{g zz`VfU{Dt%b{vlJx-u$o*Uv_vpwN<{)I}Jm*mS-I8e|8#Xy_(3jr)`6Qjvt`u=2mt# zXLz~4L=`)J#RA>yN8z>VH{^H5T3!%fOz$?G;NPCip?w=d@wT@vUvs}1%41#WbLXRc z{o7J}x9cq_9w4x5DPOs5>t75Yg1jRhW4(3a(8^VP4BVl1oC?Rd&-FvLq}C z^(Qo;mG=~?{p%=wf9H+hnhd7@weA(QXurX{@5Uf98Anwm`~;`sFg|g}LbSFMx{z{@ z;NsXbt87skWWt6;tGp84j;KvA_dyQp*y3SZVT zv-{R;du<6fMP8C(FBe0&8(cP(XP~R7i&yp#W=Nu5L1{{P-6T0lmPj99= z>n7lgiz-6)XOPg-o5P1V?BW-HCUEV?XZW<7`Jgqvl3K{D;F|}}BTjpRxs>)|EEc{6 z7t{T@bASbJo!?-0=}8Y^pMr4Y<$Cs~`<{5(mm@I2Dop&y@F=esD_g#pEDnHXE5Du zoq#h;J5k0e9Zom6h`t_3fEybRihO@a65G=+VR+0AdT6p03K22VZ^jZ<#+$*C0oP%{ zJ%+AI5wJTa6jp6{MILk)z`5_V{=4hR+VPDfk{{|NRIX0sT+(!iKgXZU@c>!5u!hRnGf%7@96ux&5CGHKbNyeiO;uS#{N^kEhIw#9@$Sg{K; z9F+0GD;NIjjTFy(W`xFtQnY@-SRC*n2(E6>pkHJqQRcrw(I<-)=smX@F1tjq?|;*= zVU{G_96FbMUaSuH29$y3fHv3>T!U4|@3PLfI;i0&3#yVFb_#27iRnFYn|B0LP3i|9 z>926eS&Cd3c^w0PZAP5{M;t5U`17Q0klAu~*~7dC@P1$n=9e9Ucchzn7Cd8;co+g) zw}W3+6-GE(;^s3CKylA)JUy#~#jAJYPSGp8J8mhwY(ImNEiL4nsuJ<}FqTgk=m_ck zHbNiMc}TVY4EZ0Pp+%1*^L1!sM)Nz+(q%8$&3eeBdT+vpkQh>;6Cp4kM*LXve9&K$ z3_uAu^&evcttjuCdNjs`=i_#D1k6Nd?oABk+kT~>?k?BR$r z?5$ShQ%@Qe@_OFHzb|Yp}eq z7_RaE$k3KsXtZt{9N%0HrtOkq)sk-3)XX7QPYd&6ZU~IcC%7RvH#FB^St-te${ydc zpiMo@*gg?;oYsQzZwcD#c@hq!sq&r`MWpTbbJSa`17Fw33LXj#^6G@U*zcktK8LFi zG)A4bZka*tW+j4_fhHaCqaP)jve9I$Em@hh7r1B&N}2RCy;Nrsyw9AcgqzajJT;Wb zKZDBFG3cr@fTnhJi88cI&}hR<(AOV~-5Vyb(P=}W+b0<yS_I8o0pzu1ulZ`FiZ!}uZ;qaif1fH)!*(8Rl*ggL$FU$65Sk( zMRWFs;UQDbjw?L|m)B`TX}B92UTX#z@CSY;F&KPwmeA+^lf<{of$*O{VE@KJ%*r&D zU8y|*ZIuZucgAfLGG{@lBr+)x2?1 z>|?(a$@nTv`|QkE_B8s1palHgN($EK2 zWkSStiZe*g$kDv&mkR6*nvO42>_B;6A^6o?CUv!Wc+BlKZhLLUgT8!1RSzKU zk1{R)a}$=X{Rc6I^0eyie7w4Q9k$9IVgA8Q=&hm!d`%@Nv+8A1nl zG3YqQ!Mg8CB7by%z8BO-d0;Jxzx=Jw=OrlHCq=L3s?w!p7vYql93IOEWg6M4Jm$ekwBB0) zMBy?{zZHwiY)pug+&@%*WCbtlbeV680iE`450z3g#GDcXcyMw%ntw1L2IJ?T`RUK1 zj${Q`I6{LC#XNDDHs+|+d)J+4&gU4XL)(}4JdkL}HQ7P_tauq|u?ulC`)soakYqqIw0}DFg zfo^8{lNbL~^_7}hk!Npi;?vFvM%;An+In)=<=3|WF;P6`)oW3`aZU5)P{O!() zf}csz1vU<#UKxb0zQZwnr6kK)$gne9g>U-FVf9VH+vW5};2RcTaJw1?uGGQMPG|JI zKM$4ujmF~aVp5Pd1uIiNV;#){Z9O5c9@zzEimmWaGltA^JqcqzzsBsQDp-_YjF3D>PA@p$x?<7eYdAC&+br;A{nHvh%wU z$mxA0J{I-3VP786SW*H9ydJ>A3pvnw!9tTWkb_ab9gRhho zd%S)o^hhd-9~n&nk&NK-epg1c)JO1SGiOLXxLug-ydm0up0L$IN9pgjXgIEZ4(rTD z@)S!&T4~})bpDBP;5aSv@3aBhc^)Fx>($CGKNLDxW`1P_z3W9K#`#bfyNm?43IF#y z5i)uTneI3ZJQQQg>-z;>C;vAwT`%+~Z5hZTyj$6<_8rjcupbsJ_y_R55`X;1%BGwy zW~Bk)xN}A-#wd(qyEc7`l#7;cP0TR8u;&k=W8er53`i}2+h zUHo7#!~C5R+43jKpuFT8$gfbK89kGjitk4@LU0RO3GD2yTLb91tPS*yiwKK%p2gwE z+t~-H`BW-j#2k0*78g$~z_OQvY0<~YOuRpy&r3I@qqdZaiX|m;Hs?o({~`{<`?yl~6Y0-Y!U(r^;R)%NN5+NB&~w3LJ1e7&ST{kWVLsyXfFh zZf1T1=Z)}!f;X4ZbW|>>z|TZY@VD;Ft|P1Ea-eAOK(?XEjV@TH$K7WyNpz|zo9YObd&7wvr z1G+Udw{+#a$*}a(WUAXD0fA1@OfI1WPRE#{#C|ipd-Jv3h`>pF+TCs92Xi<}R2vEZ z;+t5}6c_$*+YtW3#EM2+8$wuB2;Xd5g5}Q-6JL`km}yr?)K)c+ecrFjo}cpNLu2HK z#HA8&%-aYRht}fC@rJm|sgjp*3%tDA3AWg7qt_NaEA!rwLb_$^Sx~D2w~RQA$6NRF zw4;u&W!5=Z^GlAul=P*=rW&}fz(TycM;%JnO#;zGWxl3X1A~@mK-A#3=)2}9?~ip6 z&i1PCPv8iBJOjj1Uvy~Zi$`$9*pSWC+`|kkY`Mz4V=%?E5V~4=Nlf(HG80D~q%F@7 z?uh83^i){YcnFqS$;N#*Rl5?H+;Lc+a1WisCP2VHQPu8v@ zYyTBsVPOb+r#=)ChCPCox;WIAJirE53ckOiH^?-xFw>o+%^xQT?g5!6lb+A>fh}1N z@cOz4#@e;0PLU?dE?SFq@(a;-Q3cy7!Pu1O2kh(ec2TEl1?ja~#@gej^Mg+E7}R}S zH0Y{4R*oJ7E$2`2;DmwmDy3DG6(eT<9I6W8~e*jpXBAQ|cNrfp6KR56^~G zie@=HV#~ryalB%);Lf`xT3lnngI&wmyRFTj=|n+v`4rDL8bklwehkSu>fk)O5G&Fx zVSSepH9A}iDgVvlieonN?fC`t=i+s|-L4X}a_p%|+ZUntS(C%&ZWt3}M48Vf^q;7} z^E-$0AGhjYxuO?$jGf1gGfW`p*hQY95RO@i!_g>AlKgx2?n33?c<}QAbeuFM6o{4<7okN}MHkSWj8tl;! zo^ziDp7FI}e{%?%V3rE=9>n08j9!sSy$?Uv>jd?WUHM&|Q^Hx=6|ZlX7jHZ*WaIq_1F-D7vH<d*OwZ_iB5tP5EHNveY|b0Xw%${Rs;x^w=8NEDpI>9A-=4}_1QO_1fXRaxyIOpNT{*u2^#+&o-OU~# zTks67y<9`8j|IZ9m*zamx1Mb{A_YH&>hK3c|L<~cgp+{-G4aA+?tD#xT3la&pAXeQ z+e{ISI(<%Xc<+LMmDFNV%Z^9$II{kCmgf(4wF84W`{%a6#GOUJE=RS(oO_PS(n_9@uliC>Wo&`e$zHi8x zyCm<=3538?tYXAKF8v`CMh=+4oQh_Encyk?>URO0>nB38Vm{thodSjKCvm^RAviy! zS+qyYWe}&GtZ*Y&r}SJ22_-~jy`H< zAj@qYD;9+lpEKt`(mWHZ+G}8x;Ern?sY5qrI8e8~4m`HvKV0?Fj8F0NC$B=Dqr}Ju zqA6Z75TsFu9&!`$_N#@sIp7pY+#85ZQ;hgbN#UJ%IhIuS3EdWrb46Nd7a(wv96ew* z4c!+n0QGYnxG1g#7Hw4HqZSI>e1;m^BlLpJuDK^BUrNZ1H{0>y!etowX)kOO95+hu zkFz*EKc+VC8m9g0*F$&Ce4B_df)p&8Q zE>3&-g^jYiM9zL#%*JjA2dPD?FtkJheHPur+Z&T%+^2A~UR(|Pmk!|Fle0qf6GZw&zxC zy9#Z!V%RL?SL(CuAn;EOEPQeR^X@5=wYm*#^!6llzxJBsdH%$^mrvpYk`BMJvM?m& zyRdIR!OlM&WOvnA4{G0h!E>TMSZI9_9M2bE%ux?0ljU&uo(R63ekR&JQ>^ftP=!-@d>@a)}D;{jasiRv&>5W1zcTOcg@ z>7*sfmbyxx!6mnTl2vmGkqnonF$)EU%#Y8wK3$TYahQVNkN2>@6JKK!oeLYuagsB+ zjHIY`2>h`!N(4%R=elZ4x2{B+x_-zJ_S4v6Oh;6wL6_e_TyR(yJd_6UH%%KAxQVFA}hj>&F&YxCfkcat6z_GOiP28;%V@7u{PD!KhK)?Dw5;z zoD5SdhD9xV@#XoeLVuUQPHfu9W@4b_8SY)+;dSVl>=%8wNcR!t=|_ zA+{e^lh#kAV)M7n*uVKB8~wc)-)G05*^n;r2(x))ir`3}y81Y25!iE&C24k(ejY}J zL@_E@WfPyMBG8#U`TF4LySZfO1(DFWQ?7-CbM3$3)!VK4peGN%)|Aoom#g2GYmzxf9ax+rFj zZ^yA|x237SEaA7F909zn$`xjOWDBYSuxiR+{^Er$pD}*`u23+7u1UJs@v~JVskW7# z5*SvG$Uk6NCl+s-DrWotIKxwyhwR)jSF-QuXz1@af-qqsx3S;O-y|jQi4Ep<5A6HP zeibHwgpe&^PAP0;aR$w(zssrL4cIEL4Oik4$pEXP1X6Z^nZG88Y@KQU!wyoDx0Z+R zDu%v-JbW=clS`R-6TO_z*iiz^?*csR6qwecX!@k<8Yl(}?u)_hH;AXdY2r*$-b%Ok)wWlD*K;g3T`$Vf=|h1Y_31z{9s8 zQ^}I{1%AUJ?%Me4`478Fe!Ya7bYzSSTfs z1Inwpjk7dAU=oFs3|3>z;xI_L>?4-Zzcsnx$XDX@Y%yP0UJsHb9qiki@9gP?dU|hU zHr4G46G!b?L~r!uv*?pqyrSeKHmT*43H|r!=}-n29Tg^a26MXM1;R@!T=*h^LV=j}P}C)iyRTcSEpn=a|cT+f@0S+sBZ( zOPBi&I}M#GgKF&>6XrDusva6U{N zmydcHV)WVKOvc}ggzs5rxz~St_@9z}kb1KSriHnoMBijm)!|Dk<9>ocZw65fx*+!5 zI0y?87W3l*yC<(T2ON%PGmqwDv@7%$S?4GzPMuZ3mWL07x8_%=#hV$dC}=XjSgl5; zZamHOOrvlOyu{&ClGyM0iDJvs-LT-BBmJwKNZqbm^YX}R{8#@n>Y3)pI~&H)^tTLx zM}LNymbP$nZj&hMhYbddR2L}+AVvzE)Pa6xD4XI&zjbNzFL5W})Hi4H$U%l*Y@A7z zv?F-K;}AaOmnIr-uMkOk&qKaZ;FB-7h)=r!vAg~SmUu3q=i~%0z;hRROKJ)?{B{#x zCzkSoTPk4P@k8{L%z50c^iSxlEn|L?nzUoh6h3CI2CWH>#plr@X=>+SSR;3lURPgK z7P-F<|6V-FN6}0=#5tXARGv(qe3=h>y9Se~5~KM)!6!81_B`I%bBq1z5xO>HCh>bc z5ggV(g!{kNQ|mRdMBcL*yvFC!{GIA{p(PId$Kc`gQ)?D2h(VBS@4`)GD+$VOgF3}b zaHT#l&?XjdSB!;y`iHQ3(KCGC;m2=mek_W8HX&Yrv%nc zUFiMFWygIJ(Ya29E-Hgyp`iwq8!!?)KQ89urIzBl?Y|*U=*Ea!d=gJ(4CPlsl~8i| zXl|e6$XA74qsG7F;YVx=IURM8Sj{esox%R3 zI$TXvhK6q!>A{apb@F$uN z-v}^vB_q?%zd+TEhPeH_;1Rl7j!E6k5HQ#tJqEgyu>!-S6nc?rW%$x4t;6CU`zDgP z(^`nk(%(#Ru`%tFa^v3Wu634n#%J?&zc5b`oD^)4;NB?O{s88K=KJJt;KcldZ z&KRr%k*N~Ap>BPNS86QDy|Ea(QY6cFx0T`$&FO$cZ%vZEktk>mPmftP|QRVtRF8pzWfVV;)7QBa4C~6u)D*P3jFCIqq9OjZULSSOTj!; zfb|#qh^S8RRtop|hjW*(i|MI&0wVF{w>0RPJdid%*^Bp<*OL!2i+Rh?rJ&KhoSXE@ zf!-$J-nv=YZdA-7+}I|IbAv?UOz#EIy)cKn4fWxknMwHln+kfHY~&jxqv))ZtL)r{ z5LP(55I*dA1n*jmm`34c^2=6m$zB7tW5-z-B$){3U!UTlcvG&LzK>f?_u&0)1^oWC~=mzIdMcWGIrL89LC98nnw zQ8a7{S@q2*5iLb!l!j8#k~FkXz2`Y3q>PYJMm8y{$PB;F?_a1+=X0LtzOM@>1iO+e zrk3_kzZEn7>z3VlYZquLuP0}YHIsc+p*-ekJKwY9q-ed9GkiHOMg5Z2iH#p$MTgN_ z;B%NGu_*0R5!1TAhq>if zkRyGwp|@0Eu;*<8*|P<_d(r^f^11*|z3_q^sroo~k`&)@!k$;YQvv624O*su31-eY zheuN*=z*3-+FFuLei}(r^Z(3A_ly{5IQ_UMf)!DyoN;H4=C(-SKUU5xOI=66o z1k_WFOh4++i%$mE8O&~iUy04Qt;C1VeX2k&tPptI`z!E=@j0v=N+D^y0G#Sf#ZqT! zvi0~!GUlWws``wkK~aTpY}qkn_LSW;e#44;v%#AgL5*Xa{loYQqLMY7efX_FGdnct z_2Y?9J57g=C`iMW`NH{18Nm#x7?1&ecHhhz2fb$1(S}g!UIQ`}Y9w{QK~(XIx1Y8_ z4`y5{C9%)cSxRyt(GH9vM<(^NgE_B2LS2QKPsnBy$qmus8{sIKeHE7`+Mv9$H5`7P zLi+lL!>z=JI9%c(Hry|OF@DKtJ0Jjlolg*_?3sd>!W+S1c_vz^hKbMg$kV#V6YFGeiCwY`m&LzX}X^otdRD|G@@Kceq5-*PaFLxDEnypOT1QKUs|S zVG+68BWi6H?w13X?4`z+kQdWx;O>TN_}`$lcs%A;ZKu~mx0=u^&z7UF9|V#d z*;DW+z6f`WG)8YrWg$Nj&wfsQ0H&L##WtrUP~0sR-Puw{w7$kck@sg(Q>KQR#fP!Gwhsmv zm4kG<3#g9hMV$jFWMIWp6o>wTBR+-1=9x*IgTVu4{9PToUKN4&#Y5=!BU_k-XOk<< zm*KbbU3@oGueN442a}x@_`ZK7cxdI}*O0GhDG`sS%d6pD)EE*RO7XQ+H?A`65Dl%5 zVed4Lfq}gijJvWD8|F2^b@S&i_=z?&$2=94g*Re!x(nFqKNna7v1nG5P?u*DjfYJ$ zNXXNNq^L4OEFTk$dtZ34{%fhwzEhdE8s)rgMN8&M@<+cVz@VV1mZley`5)v#!Mq6vR9)mZGCR` zeHTnP_nkPYEE4r7quPNdc9y*2mB#jBMZS_=j>Qw5Jvnf2Ts8ZT1i^)k zJK=U!6zo+zkB#kBc=P9ObaDQS^XCnt<4k@djS=#GS)pQ$HL9496eaRLe*^-TOyp9I z`XpG6fa$7EHc!8aoL0F;45BBq*3C}1HBv|D`;-&^tEZ`k${!pebC>9y5b+!4-J(IE zxorCSGi0aX3UK^`I|KtkPKExK_x$roDmn(XqR+o9cRvu&OZny2C^_) z(+l(t>)-)#F1)WbX5K@N)Af6@@W7IMEQ%6iyx|Ud?5QT-I5`48pR%E@c2gj@s}5y~ zH-K8rY2tTi4h-@ihUURD@K;w7yjmVde#lsmzm3Bnc7`Ry_dbL1^Nsk2SYKHByA@_N z&x3uRl36dGg}R?Nu!zI%IBsYH+g5szIvpAV!4k=2<5;1uu*(gf>F415vAIkkY!QH; z40=xcApUG=#6C)>k$c%GT=F*sDtp^r=H4LjoZF{pRm3#vI(`)$H87d_N9|-kdvdv6 z?^AG(*eeQj+Dl*mts^RH`s?-^IM6}gE8v-90vkH#2JXJ34R%5Q3686sU|L|p{9KlU zzWX5hcUv|+w{;=Zn`g4IhJp9tGviQ(>s?M!si249vX#PWs6^BPI5$?{R2O=X$&z;Xcg9rOd2b5e;B$f{h5r#}n1^9=lP4;_GexNpO58H` zI@_&&wRT>{bAj3&4*UA2QOWWpu)1v_@qMYwQ+5vEc5z2(T16BsZ5ktv=^8?rOnEzBNnb>OtXGX6%GT?ML4$Nc5J zAf8ppOrl<5kJ?l^udWOoht7p69E#>221CHK9n|f5A39mwhWBfmi0U;zrX8mb2mT8u z+0Bx)?vpBy7P4E7-=)F#(H*f;xD9F_T94&%TVVI+-{kgGKPbwM!bgIGcUstCvha;J zoSHS7EB&X=J12$X&(c~jdZ~*pS>afoFqK+#2o6FyhHAp!N%QqR5IFxL&h>1q>j>M2 z#{z#&+HoSC?&(Yf7&T7dKK~#gauE=zSV4;}l;Vr+h1@RvIxNTu!V~tXEdS|d%*x)6 z-{Oyx{2^oM{BCLbveki>f0pKN@Ft(T$ep^*U&iB}ltJiqF|77E2;NfTL6qr%ni>PZ zW3o9O%C2Ji<7B9H#djzY&zNLo)GWF`}W>6YMiJYwZ3zEjTx+snjg zmU0CBRYLi5#TIm*r%6rKuGK`}{dA{ZZ(k6H z753D|Q-o3Plwjk5W_&Yt1hsPTXF~>0pn11`vx3PrRO|6-kX=0ucfT{^vm;!n|ItfS z;rSNYN|PX3_ZcWHxsSug8RFHc9q6EVkQry)#$N~I`SB@1@0HIiUl$AFfDlg_CQGF|hd$*?Kh>*DimD zvSp6E$;E-E2<#w(i1oa0wBAefNN4G3W+rb3QK~yJ_4#m;;iwM(-L{0; z*K}yh(?MKoMfPdM(8RRDaSDu`VcE^?|e+?&2GsIOA`<7UJP>i}e~TrP?Op^n2_n+E-VB z#t#Bn&Ix%MbvcHoeS8l^&)ksM_JTpE4IigwK~Jj+gryt>nMi6~(JP4&(KS1|eEQXb-@xGhV)Ty=y3mYoQiep90>QgwM zZX3XVR#v0Exzzar$4s6c)_`G>)wOZTD*Tn_d!BE14DNW1<5Qgc`P}U- z`X*G;aGi@F8~*?w%2sprkI@Xb?8DxGT7fxHM)cF1h2Ob6be}GU4s|7byiW!9{LN-jE+`0K( zeE5tfKeE}D&iJWH7Z=_jUkmzi(H z)S*ky)WF)IwNzC*2y-{7anD&s^zV-zyfm#HuDcws#Ymw)6syi(NIir(%H@LZA_D%Y zH}G>mGO>2XJ*WUnI)0-Q=cc)QjjB7>i}WKSm#5>0)FmLlY`;jxS)Tq_Kbfr=e2JA! z|0BBlXfd5MX)Yh_c$gn5B6y?nHI57W!Fx0Jkui~CXd3N=E*lfM#+P?kWgG&|8;nTr zq<2JJYXGxs7Z_)Ho5`z7_rc6-A*d`r1y{O0!2GA#V4iLT84h=e%!XrltssJg?wrny ze1qxiyraxJe=c*=Hs((ER`GP_b@cw34sufV8!Rpkp$p@cpiH_H&7b!%kM;rBv1$)y z1}$Mv`i!~RxDwHgTgQm!?^w{4oxp6nta-pJRX+HBC^gP30rPururJY^&loE&im~#b z6TVlof(5(+Zy>VhxJhZWw4g73wj`Kf#Mc(FMWHeKFFCEL%4 z9S*N%VPWIp$^a#PUTQsW3CrS#0xy8?!3>z0D#06_qG<~$CF()4Fi(9GK4>+gb>Eus zbkQrcA6P~<|53x>%lEjRj3@JM{!*9oFOdzr(#f>nSHZ690*CtYS-jO|!ai$MaVdHf zMg>dIpgU8+tG*O^TNdCTtU~F@v*?jG0nqkM2HJHJ=`FDn{ry7{M{O^#ubw7JFPT@- zzb`M4XDesXvzv!diNDcgn}KTG*C)dzt)o)5s|NdgB{&@YsN7+6?(@Z^r*k zv&D%st3fJb6GBHU8Q^Whtpn@fLG=qZMmZ1W-t}OotGgkw{w!$@cEn!aIj}$DJidK7 zgcl4R1gPflLVw_V9R6$=1fRx^q3QMByefD+&f44}T3KoX5qACL%Gy_AnTRbc z`9?haR=f$SZ=V4*j1s4Y2rftCPQ0MF9!+PCAp`pcvnqpJ?21*OGA-qJzm^dUI!8_m zK40@DJ@^%^EmrsJ#=$WqBkBGGtzP!wk1-GMg2C)Mmn6R0%U9UZ7vQ>4+5nJ9Z8D+8l?0=6ZD7&IRznS5v3sD%^ny5iW~$(C)ZqrZL%`-vA#CY=jlO4xpzDu#Hg)zsGUN0m#2p0aBtM*S zAKBwq9WD8JD+K=O5Izw;J6S@ne32U9djd?pGz`J8;-J_;7JOQG`W zZXAA~3od3fVrKq89$bGDXIm=Jf7^1{^YsO2`p|$L4AJ4!76#Ro80KK|Kppb?*C|r` zcmW@4-44~ZHV|j~fcZA2ikiO@p801pZqXS9w}O;0R!WyoczzjOYqkNu_!Kv#PNmBS zIKh-h`^lVu2za8W$$Slr`9^08e$pfYyG$oCy*&Z2=B6j8I_BWfl8f+jM=VY_{hbU< zeN86sJBP34$Fd(ks@W5j_bBaT!&m$jI=sdgS?TXvxXt(i%$Mziib_>Fp+xWy86vBG ztA;Zy?Wm*KAtZ)N@n6ban4>ro3+GJaZ_=!Z?Vj)Wd&@ZtkTyX50sXj3_%57yuLM72 z%tSWKoIjr@N7J4(fv4>Pd@@6l$LF49LsII*i;DiwD(ZoRCmC3Co8hI;Za8~~Cz1at z@Y%5oH`P8y?|;59sUruP-mk~qCR%*>yB^V`br&&ivNSZsorVuyv(e{?8qZJ~%BzYa z`6o@p(Ba?7NJ|Iu^Y%2Vd2kpNZBeIN#*_(f-)J&8QHg6W7UO=qB%Cz20iLZ7$D)Sa zu=~ndapt5X_&1{&QU_fYd%I}RQOlBX&YFQ>xY!7ro=ITR)E3rW@S;xll|6hODfC6c z29xJ&C_0C%!P(({Pu! zoyJ+lVD8W3@GNU6AF5jp!^29T(`N(fg~#ECvt2CG|0GQJdx#74!};3LH%OIRJ>KpK zh1f`A-mRNXq~iMF&Fl}*=$C?jqufcYR}8!u{SM|#T1Nd$WI4QRB*zx`0?pLJ-Z%9) zLPPi)YM%v6G>1NX`I|kxcN`AZwLtcwd^81(xRQb(S^fHGa5}eM^w!NE2hUQ(eS^Iqv3)9bua1U(pOGNpGmh;ts$lyPThM-y zGMasp0wa$hIF+6koBvgyT8AAVsq?dVQ>i(+-TV*TzUE;ucCf6}kK$}4RlY}QJvuEs z3`MDZ;=;%?xX5`HJZei2x=1VFy`dfEe?1^lEvh7^9WBKQC*^5iT?{s~E1}n#_hih6 z7`S>T5NEHP3kti1`@CONw{oyOm9y310r6JMsqzF<+OS+aOnEgdeLSDvT|1OU_w8U^ zH%z#6Y_{ONKhHetj96Oc1?(9(tPTXX;E|$je8Ba1Os&2_ifs$<>In@TJtdEM41NdW zkGTkM=2ztYd7+;$!GaGQI}h#V?1DD!23%n3hg#Y~?{=snXv=gl?}9lrA11(v{$u## z++&gw9xJlEr3(*YO=;<#ZzL>J8rmy!aeUns)Lz$+x~eiM7Ku#9BKUBuy&3^B&0sP07OVS$gB!IH*X!^IgBnA(cNSQxGX z^Si@o*t0vJJTx2j9f~GK6NS61<+XVHjv3H5=Llx?JSIckr_en+9O2cwVs=(G8p-~P zSh1@Dn`?jJ=T}}(Ryv$rmApr8+%X3I3|%g>XBcjL=!+Q__My_#6ryTdjFw;IxZ`po z(09pzjxQBB)$tIB7F9xnz#F=8%@)pY_G5c?3vczjYT{h70RLT_4VFJupl`hz(_j4! z_NOS&ij|7|&0IzNb6y$jrH5nZdVgq~kplJUh>EXzS#eDq#2qby=8Z<|RbvGHGAkFm zW$naAvPqCrQ^B}~I?fSx%DUh3@f6zw`zM}ZA^lnq?>-J>lX6LlK|B5!nZq8*rhtF8 z88}Uw%#I6QkhY6a0%Ro`Tk6zt?S47<4r1j)OLjEH*IiZ zOAY9}li>?jP80KyIUu)kIlg+-E?U3A3LIui^G#89+_zcCtoxeceYqnzAh-`hg?#Yy zGlTI(#(${sE*=&uwP2^M98Qi7FnnL22Xpgy5GG%cW#B}y&FFS|9UQHmAbTH}R<1x@T(;s+SL zdp3WiRL_hr??USiEq-Y0UDAFpjcK3!2k%Q-FsbwqyRTr*9dh2n5UHWC*e#7*{Pqol zA08!jUiwTR46*=OJCL%NhB>7taKl*{{$ZFkKK$-z|DdTJr~X7WU`1JKjuKEOg2`@uX)aMjnzx+kmsA@$5}-{WXvt z?^dL%mz{+*wZBEKO9eiI@;o;D^(|D@m`I&3U&Y9dgXHz^Qn;3+0~wMg#CN$42CX?o zSETKNfXI7zTtW&~7D;kL=g%avMVp^~x(rQ9wO~o*L4oU*f_~4valbfG^uVwmUi%0$ zo>K(n9_P>}Nnatytz0BqSb(KW9lbPuvH1$QG-v;QJZtcSEc72nGnY=q4#zlZXK%qP znudyQFL?#=PWHs4!w)*=+=LbVRZQu)I_(PZ;ggCSN${3gD69VtwATpdX0*V5OwHK?bQ19_1r_;Su&B-P(9!p89`bU|(s`*L>?>Zv^e zlGaU}ckdM(7Z>r0-W}#Il_fAe#^Z<0I&i1=J4!shp?Ts$|KyO`CW^X@&MF6?;% z+)v@g2m7#9LK95m7xPu~H}kL=;r#iV6nwwwFyuZ6rsQr+h6=n01@%T63AL zZQIJHu8brrZyWM)?Jgo&Il@zfEQe9(2ne>D$%R!Fbzux5yB@J)9gEr1-&bKqSR`#c zEPOX4Mv?2=8QZBinYk|64-w*Uwtr1J*ykPK4~=JHdg@)QEE|tY9dkwX4<+gQvEM~& zv_FG!&lP4cDh_+spGCg8g=qMlWN~5}7$S3ub|!9u4<6RAG4Kd|>pzqmzDk7ECribh z!ky9nNQ1rjSH)J{Y=p2G3S^0l1E1O_Lx%O=fcFCi!k00F$<7PTbb?VMj@8w{+Kf0D zW*CU1APR1b5mF@`C3bNON8^*=cHDg?nRC{ys>uxy{W{N>-!8AmVU>X}xM9n;46gZUsGH;gU{`G=(n<>XtV zrzmOiAo|O55Ro%?=M4+g$y0{;{R z674w$SpFOZ-kjnG>qZ``9kjtsxNkk^_v0G8(=>)%y4ED>=`rA2#a1hb59`Sh7D{RQG9__*l9M!3V4P z6%7R(VyjCR7rX*l^9XD=Gl4XzMATJIfm+9Suo?6h->J2-y4DQhv89gL1zbbR)uY6F z<88#JCf$Utu>)~cjJEKSKS{IVkoD$L(`%`Q`f4ko83H&Lw1GUtvC+(<{eyrWbLB!dBeAJ&3%W z+Dq;_+VJ2di^+ArHgc_{4X3WsLfyQv{BlSgwgmlUQBOW&|DRL%JYx#(S*AeqDzy2u ziji~^X=kR11|%;k6V}+);XJou%&7l_7K47^Af3Btqqpp6U``Jr@H~3d|QK?4=8bOVPNNWGZoWoO=#0m zGp>KN3BRik;XZei=+Fa+pm;Y33oj19WtfBXdp2%un1@c!v!LhEP@XhxGk&7C@!UN* zShRNnCLPPg-+vPE3?EEyZ8CzaZThHe(~N6(Ta$BQM{?Ns5*U?K!z36Aa9@w_@vX#8 z@1?xn;4RAJspFtD8Ik_A!PM~DUQn?41%HeOQvZFk;Fu^M{hxoqi4W@0TlWpzy!jm0 z`EaD2I`ZLxIY=OspMeN33q1RJC7xF!G>;CU)sVg}T8-y-zr zQG+FLK;Q;C3wzRdNO@|-^VCXU?zMyLLGU1|&AvfvQX3v^7z5Fx1ISG8g&w*eka*A zJPF2a^uU?cV`%p0TR3TH7`YWJ4IQBm$l0Tey_H|YmrSk!^=Lrm=|K(!%{#iBpuFy+Myj0PKu>M!Bh*HP3-G!6fIT*D?`6$BF9 zk?fy-3VC>?98yy*pzfEacrw+J)-}0^>&$C#L`(|yj>v?NXrZs`P=x_{YP8^`CtEsB zhMlU`;0-e#k>#^}NLRE4-~2HX{s>x|&8G`c)v%M4+;-*d-b484PrC4Pxdo=K?Z(p! z6S1pKl^Pyf#pB{l=|Q1y@@;({M7zbnsyAQld#~y6#JkFTVCOabB6tXP_bkDsGU2w_vba3nv zxa|!KVN-h(jylzi=kIUfvxXkPDBJCb7Ytz7&Rp22`52}+8B-pmNN1dBW|A=p$fI70 zRPIW1zcLg0IMkRs3(V}ejsm8gvmKkI@C@C(g*T)3b9Q9FFR^gRv5%_BaPEjM?|V8HXjn0<)NL1yaFwJ7c1!SP@ddUj z&=8gMT5*u$K)M`O!$SWDaIX0p#FUs)t9$qGQk9|L9z!VHFpO4~H=pOLJ|Ub@wyL`mzhR_`Bm&)(l1;o<%2_{RzdEoK(gp@JkC1#02;eF&byJp&c7ZGzTHvS zdvyea9t!}=OMmLB*uNuL~$-Qtj zYA{c**a)$`H*wgRYB2q*2rDa6@I%q{`XvAWkr1hrkb4{(%d9Cc?CU zYhueJGhX)O26p^$6&Pg0GbKCzMqErsDCIOTa%~YhQDL6_}Mz_D3#_iCj~b0oM8~X zZvsCs4TU-MOzL&Xoc>uRL9fq^5M{oNCGIsNX}0EJl-uEs8ys@TZeL|`F;brY$QIlc zwtebk)17emArnk4U-VxUP({Bk9 zGP@N!2FTM_hua{r_Y*TH7olpq3d%<<=3hb|VsXcC#CNO6fAYz&c;Rw##5WcS0}A2B zxg^M&uZ^7+6YXmq76?6Z2Kif#FzqFe$ejZd$TkyMB2iIH`YxRi_$HT$bi`D6owgit z?^nE^I}XN7yam`f8H|~bL5{pY{9T72X%-V*SO+SGjYQs77gQ%p^6K(Tu$C0=?&da9 z{4oG#FO#NM{`BCJL$~nG`!)<-C$I}c0PbjwhdAYMG}FptAJfXZL+pmN& zGw;&XqQ_@j!6eKWzfV6-o;9q2!{e>k=>{7d>Cua69^25S#1)?Z{7rm6FNHTN2GjGG z1%Be)i=vj(w&OWJi{M;##oSW=_punKo#XO zuCef~mMm&t8y@zTA&>n&0&jat;>}Kx`iTf{cdW;o0vocadIX+SEw}Gze9yWMeZ(zu zCXnGDyTQyT5k|CF@QsbOsC9Q5+Q$`uA^%)={_#-8u}rIh97f zZG!n)ov=RhC@SH`1VnKG`g2g&C&F{D*fQ zxm6j0+Gt+rsY!dC|A>o3=1gW(2)1tXz@C}L+}l`@ zr?Hcy_}Cj%jmbqH#Sxh_>>pBjJkZ49mPL!7`jk=M>iLKfmBNEAGU=>>MUS6K?n zPEKMezT+{VbO=ui)&<9$6dYEZ!Zt@v$NN=Zn1%a(P-=XE6~8aClLIwrpH>H3-oAi& zXi0GCDQ%40PZMubeg>bm>O;Wx^Q7oqu)WJm1@xVx&U0cra8}Pfvg7?koO63H{ZrWn zx?Z!P*-4THT^a@lR3D4;M*`YaXW^K;$Kh*w5z4mf;jHD}BzBJylS$b}2JIM*O3&1V z^V@H)RVcB2&nEJ{k^0y&);%>sWh2KGd0wf${-Q@TNyG`@Hl3aZGE0Hc=;I zBTC5VM@48da5S#`R!_2LQ_{E9oLLPD;pT_3`O6zfKZI=%r9K)-*R~8nt%S)K{OTNt z7My1eCrr>lKNA1+eHUA*RADd95REB2TovjOc!&z2a5b;^#pQN;vFd8mc|9Yk72~~ zOW@c&lB-_*D;8-Rz{F|!Q03?VYi>C~P{b|>J!6OGtHZ!{_g$DDX%BDprt!ra4CwtO zwIDaF0S0b$fxj`$82t=wsrf7Lfky7;e=2$3*_;%+!@JFmowzvaRRb9<&IQNV6#S;4OaRXXkm#m(x{FjBjm1x$V*%HBfh%Y=Vu z*0+z`8?_aO#2Me4i@=Y3=VAj@aMhc`xt6*U-mn=i%v-GC-rMVtyjGruKfHryK7S!0%_TVa zTr1=W83y-x31}u{G`8GK#t|haNclBA8ve+VYN@7S$D|Ex`-Vv*{Z1E%D`lzC$&;YS zD%tX#YoP7a6;dwv3hs~ZB}Xqx@k2_dvECvFZ+VWusO68y!ytA0=MJ`Xd5{$=$*h5Y z>4c=NQHGwAez4-gF;=nt6xM%t5c+nRuy9$noyvcWwejk9e4+19zTfyCTh8P_nFff@2Pb4thrb^{S1s=MDY2QDjc)josBg4EdI}14LZh~aqHTR z*!y7<{J!EuLj6y&H?a$$<>pY-&l9``Zd+kBSL6x)cF?J%E%-I3h*G}qWU9YvVasAY zmNBPTv}=YU#(Sw^M)y9F-`0kgJzv9N!+dbvZ9}sIboi>xM)o;nPw-i(D@~sKlAIIn zn?I+V$@LZaEYQaTRy=D#x#9Ea*WIpQ@wgJ&pX+hGKdJb$GMUI`%_XP*dxUb8+-7uAKQ1cVEAUQh^I#%0>^^^(YTNCY**HxBM}|SPsLRYuSl*PvUE= z4xa_z?lXfH=&pJ%D!x_A5(O5i6!wynhu1;p5W&Y${sGU-%LltR1E>J>hE7!mA3c8( zhcjZfG$|EM&%BJS8l#!oPgQs!6#(st4m|(y5faoU$)#t@@$IJq(CpK9cGhwRHSu|Z z0^%RXsYq~-NlFw27NvvKLb5ep6FWbS#Lr)2@VH6=iWV6OE@@3(De&Hg7Hq+#O|s(j zQg`tE|DJnUJNq+tI(?_O7Y=Kek=bW7(QZa6RQON9mn#zCkXbbx3a%o}!p}#k571@! z7B0W;1sjmPPwdfdi5`CMVM)|o$PqX%AL3=`yYP5e_x1|TU+YSmGL-m1v+=YGzu?a0 zPQqTeikO~EhES)^OgExdWFK@JVlUnj1y7qMICwR%ZQ(SSDxJe-v?}h`iP1?s8`uwPmIl<>DQ!isk`naZDnZ36!!SSj3A(tH z;6J4gs3&9uGdhm4UFNFH;kq*Re76;tXNmA|WD-%?ss_9K4lvc^bL{ljnWUxU67%kH z=Rvn!=!f+4pcK2DWm(*3Ll)GN(zuHxGcW3gDv9G zpiq-v2>AyuMM9_L*KzwBZ-rTi$6(xN&`M5O-NdIJCAd_`y^mhD4ehUv2eZW$|1-|Z6Nav_<{QY^dIQewC}duv z^T@At@uBUturzKLw1#Sf!k}9AXJG>A-{uRBNy2%mJ^}U?=P)H?CVN=3 z8#9lOgJItr@U=&gIPdZg*lax!DUc*#JIXv$3 z8|oiTLw!qMJRLC`6jqmsqHexrZ#`Z4LQONGo*g7EaJ@xDv2R$4l^RX^HWd%4T0*9% z7?!UehOuSu$d$d}%th<~=cf$EWhdT{7joe^Kju-BU~jK9?%g zSKMd%+cfCWE3fg3429Jvtl5u>a$*kCaL(CM+)#H5&ip%#m%A3BgwlR8`{*C^6Y}Rq zqmAt+3UAZe#YfR@ehi7&HwR+(tMU)}9YQwYKk}?J9|G+MKtM_bk&az}+O-nAW~e$2 z|Ja0s$}-8+rPk2xeHj%B` zrE!UUT&u^Y?^U2NBmE)t>2R84dyMq9h2h&h+3;|jF_re)g-&IvpwoQ?D(4FEy)QDn zOF9K^3p~V=p)Pp$zf625WO$^$Ytbp*MW~VgNK`fCC{`rv(A5P3liG3)YUe)2J8##q z3}-tu-DiSpVFwKNSL5@udeFgKaDrDT;I{fa(tGs}&Nma|sqF^zT}dKa+dmQ(dX7Z9 zN~&>Ee3S` zp_Q=yuo_7|--?U+w9viwB0C^i0M*-fVnW7qG1grZYZYkXw1xDw-`0?Fqx20FG?}}h8O2o;-5TgxHDdr-fSL?-uo`I zZ1q>5x-^I#&fg$jF`9{Q={jL(WC<=g&hg?e9r}L!9MPRUGwCfkJ$fbN4LXM|1KCYA zFtcnI9WgzY*Ri6AGNUwz zC^NEu6_tjPly;;P>`u*&-Z%-3kH{W`UE{E%xeZB7P{!XKd+i)~$ENvEZHxEo)lG_kKReGd)dl&PrMM zH@u1&PgUY-8q$zo_lmtV^`bAI6|)HSbL8hfpm+3_bG?jW5@Zs~r*$1BPhz)%<!;{&)M#b{W$NX zC+&LP%{I2>iV~OafltwhRaS{O)ie&i3i+|I>-w`XHOk!cr4&~>R|Si=rc(!vO7K6l z1VbN{(i_(@;NBQ5Zo2RosC2tg>a>8C8_dSwSLu=^7m}Dnn9050@D4Ryx3V95!|+N? zKb~v<5Sv`8(PV29o}C}f?=Vg$TBukg2^}`!0 z_3_ECy{tkb+CeEN4XfL4(Tv#VlGYMgJkKuh>NU;8WXK@4t5XF6-VCN`s|@Lx<~aIU zn`H( z1w!B6(3WM+XeYs?^2#6J-&A9!zz9~@SSkxO-B#+1*B|~BF}6p5?nb?$Yy^HekA`VbC8RHo~}=9 zxFlP0z3mW9d)z`4)cf%c6+hk~er#X61x+1O$2KY_VeyUq_;!0TdfttIeJkFg zPT@1MC8h*RdO0({Rf|{S|FXu*giU{P9#6Jf!0Q{sxsh}&X`ft3OpEt$^BY6>tpmTv z%Uo6JHVH+A)wN)%Hi+u^mRd^##qCD6(kLc~WNfip|<&fr~chv8}?c z)#$~3QoW61Y|}t~CfuG&haG{Tvp)`#}n|#jxlt=H*5aR$dpE$tS9Gp zsL?l5wE3J#L74hc_=fHn1V0v^ArH40K(gWtq3ha)r_4Lx)9*xdj7-5NJ$bn4tbiyh zSu43*^OqU^cmZ=xyu$w=R4i>fT#Z2kpJX7YqDCf!<=AR;s_t!O%wtgZ$ zAR-j^>lBe;Hu2coV#g2WFTf!UQnX=9Bp=mcLq~5b6#Yuy0J6J1Veh?s(qZ3+>*n_7 znwiffw)bbFJtySW^zo=hvas*z_c+KA~H8?KhaVyHMqkzI5Y2DY{1HKI>`>28+Q4^u(_MrgQH-lN>rtdVeY* zoL#_|#HzuGkJ;Gz>K;~FUlRT6=th!jPIvxF$1Y`M7;QG1R|tFackQzDqSjzMTR4Q@ zelrWZLIpR8*Cz};X-q9Hoy4aK={Ut?I1e9ulhg+uC1C4~3fX~rMheQ>h(ROpJn3&{l$ zkn-vjL{%Eo8)j}h|*X>z&WBDbOKg~$C1%;+H_-B3Yk4E8=sBY1N}VgL{I;WfqnP|5(gXd zzrB%=Ya`s@1;2gGu)$0r=n=$w?|>b-#nAhl;kB0 zzlvHiACsK}2gA{uJ1@G$4_HNjnj~|{tPQ^Qlr+V>hO?{ zJe|06DhX`qV>^QMAg=rw>G>Ui=kOgk%`XA7-67~;oQ_c!V#u`69av(%4!`IM-V8M< z9Hb&9+_@GOe9jKg3O8*#+CMSu3 z=VhU9nT?zK_F}#1U|Moo@O%7pphaf~iYos-6~5;}?&*m-4>}Qrop>iR_=}n}g_8+TSS3@j9?J+0$Ei($O9haP07P#PZYNJkRC zntz`>g)2<-Xd7Yi%OQa9J!2 z-;OJ*)7gNx``MhJy$~3Ans%R5W#1A>+8(8 zf^DnFVoo0JdXYo!|DGv6dOr%Zv*zHfU2!CJSspm0*-#z-q1=B+65p1l$)~iclAlkW z^ZPv_FnT$Wnr=S8+K#92|J0)KT6-8|IX1Fczt%}yR@;H@4h3LGM?z-qeyCkW;H1D2 z*-)uLCBqhi;m5bILvWXM*$PE8^IU7m8F>b}7qPaKiD(+atLAPX`&l{SbYz z$Pl%Qo8iB@2~;QE8@=DTqTN&@yd9*C$45>hrQ1J>a|J&1*qjhdT>h2p5!}69xn=B6 zr#0_?rV9KV6X}yL>7vy;YvHJTZrIm1Vp5sLbuWB0pOa zclaTDl|c9dlLPdbToM+Yje!la_t02NM>O33Gs-{9reB3!REXo zQpNM!^jJOiixHd=tKw;(Z;9Zz_yRLb#G-^CZBXrS0Ecm-h}4R1q5EhJ=YQvv*HT z#;^Vq5>)s+H+3w0mH}$hU0A^4955L0omEI*1^Y%M#|~;rZr#d6In^-&GvP9;D|5%; z##;1xe+4$H(ppV17iK-`EZoGNO@ATq^DOd2i7qi{p1qrWzoN-b?yAS+QyEZOe1H@W zIsi0z2)(HD4ijX8u*l7t%x+%^GVg3q_Tx5i>wj2ueX!VfKw`Vo0`_FCXN#wwgyF?E+4YIJ>|V}qHlXsfh}rLkBW-u_ z<6tTB{Gc82^cQ9?JB2RUmSVPq7!&1@@=&o;A6NArXFW$BGSjJ+^z3diIVaV{CKu(C z)Q#z=y}MXqcT@_cEh)q+oJFdC0XGaEN#w5PLhj@Nc-~VRhkxHrOsO)ym~4z^f0f}p zwdWAp)=BgYR^gF6RqC(ph|47xV7AJBrZp=V5?8Hf*WdYyUY5teucwh@scjwZI~0$4 zjvA7N1Np4Ya2YIVdW!4whhjj?A;{@-!B2JfAjRw-@iQ)ivHKg?s7w+%KkChp>kavsmyaH8$7%Dp``- zz=F0WW1_4MO^IVTKxYtdT~Us)Ar-7T=C0$3cjmB0rWsG3osG)3dRWL;#&S0o2+Rv* z`o-W7bPBA46;=eMe#wMQwo>qEj6FY+IG8v&jl;GHi(pgU9cGgEglx>OmgLM5nEt9G zp&~AsT&>#(>U}Nj*JB-69d($wC+On;MjA?0hcno+AB{N#AY(d^Eftf*h;pR9Ku4-2m2ID zxK?b&)AFsknYka#?i&c5|At8psd3nr-z0pKZlig)2%i785oMYVg*e|2;=W30{@FhU z-1|aM>75Fu_9Q{e_dnnrb{y?rSK-}Z5$vXtEex4h0=h$m&c1Xk1~13DfV(XoSIdq;322QOm>W{tyu z!?WO-`v~fOBo)nREo%)}#ylq$qSbc->5d)5#Y2mJk)HMoWB#%EFb^NFA@iCn=D645Eoejn1ne*H(IRrdmv6L{VgsnP7o zv3+oSsu^wBew(>XnFWu+-m~4*0nN&$z$Gz($KHmpSks9In;W9;!c#Cj@;kIk9Ti=D zra>=SMPglk0{T5%55cQmvUR^N5#{0>mMSnpitgm$3im-&Ucn0={S{oadMAim&mLCa zUO?pCo%n&vJ3u4c9n?Bg-~u<|e~-N;FYI->&f;vyKle(s_r3!;H${NL)ZN!Hq{Bu7y7Lv#2;E z7sKkO@?}{P7;i_(3Hu+cJp4E0=z3#)Mh`Q|6?#bxdl6S0$PQP|UD_dMYXw|5 zvV#TgM_ju{=#%d=gCmaz@b}$%!o8#rX9@0;+wlU&py@rkZeowG{PtmJrUriXKM0wg z*Tk|*3dk4-U4CM?14IX9GRNArH;>8jxc#AG3qxpr2zWjS=9BTJOvOeuWFy_%{ z>ZyJZ-pa|*$dPW;V3I48|96kQ2^74v74LDZSu@Ph&B5?hIjn7IFx<`5gydloAb!eV zFW!Uod$q9Wu?=&2zZPe$w4x;|hB7V7KWxqYgQ9@DA($Y_LjO@`VL6wBADacQLFrNK zcViXWsx?SjA1T1Lq2nMF!Xe*t7rDac;pH@e1LV>~=A@|dEvF^8Mf4Rncb;Vp2hXBY z+9}c7&09hD`#W|`=n@EhCLqhR(Dd;xxcKLu_~H0374@2igu{h}8T4qsHQ@i}&OY-%q9Nax@3T9U?f$7~r*s*XEcANU5 z#gMBIp*{kdhu9O*j6xQFw4F^>CS29vfkVckTo$Wohf5U%?{d;Mk$jga{0Prtt8H~* zVuCJzvSu!9Q&D9jZsw!m)ED6O+KxJk3qUH)kX}4CkrYR)bto$r{?I?#;ilXG2)uDx zGV_WeA5swsrXLz`yTuq7enWo3+K_Ix>8Kx<>NTQ@vo|37E5$dwT1*$jelFF1&52Gt z`kj5;_rUR-;0cj6q+BOi*!%!|Om>sckB&)x z$qBnWx5FTBH43!)OmKYxm7EuM6Qyi*P&L0OQ7V%Y_-flB>!d1e>gUhYaz2au32%n6 zLHd%gsydeY^fNIzE#wLUL`2T+9&>!wgK}m@PsNEuOK89SKN-la5EgC}%JJaqt1xhE*)?(|yUy)0mQbq zY03R_KRZ^Gx`E_$3jO}ci`<&s;Q0L49_UCASU+A0d{%)oKkt1EoBrJ<%~w?6)pA*y zc4Py4x;PJo$~kEF8;A=uY{=^UQCMBeIt!o7&~0-i%0+4N&KJQnB6=>pu~v`eeQS+J~D5ki8MT|6!*_e0&zaj2a+%3ey=uOlJg_4HZH^MN&zf5Re@@! zOk(R^bJ6Kd9oX=?kvTX&!vP+${P&F6sHi!KPuyRLXZq!lS3;NZ=3f&o*ZC8+xptD! zwi=Qk8Oesfc7&ysrMTBCA4#bJIJ8fL*4QIt`hl~eML(K|*PwE;{Dn7IkvAlA;u-Mw zcqlsH9|{c>QhaK16mH1-2PcNDq6QDch`L@2C{3A8_u6UmqDS@2FI32!<;wE$xe_e; zngOrR48WE59oVJu-gsG63Uh+x=qO>YYT#i{-Z-8SvcY=%)X*4A*wGAP(X996Ojy zG%5x?n@U(<6)CPay9v?4St9=ao(PO`{AujX?mq|t&3@;Fcls*4k~$JyU+qKB$wj!i z!kBI=D8lif{Y3ZM7Q>M!f6k4;W$B1V1eP5P>@mV!dIc zCpZP?dnB-?;$}3kOCpwC?)Y0(j04AJL16iZ)%cYlH*=y_o;vX1dsX<~6$5Bg zTYr9LKJc+I23+1c z#IyUO&&fpiTQnMS6^kKjiz{^&+}HZ1`=DjgPqyu)I-kQHN{&kxV&;zteCMxQu%qZY zT-)*=8}rCTlz&v3XH2OPiDzq|SH>vp-#G<*G6taP9Y;~xkBhuxz;2v)Tbelbvt}v{ zE|T&e=C~@?7uaGuiDR}Q2DZ<@S>6qF{myRm*IdQaT0?ot_-v6&bPw??sKE$pF$wRw zL*~jW;%JX*k!^~Y_W#4k>JYg)9p4ZjpHA^%?dRdZ?(JB<0>Nkb0VXxK_y2C7B#S80 zzr>uUJiA9#cdp=GGk@c8$7+dVv>~4m5(@#F4|BZ~4Yd0x%-~!#LCM7iyGkeXyl1go zZbuKsq#EI6<7`QcZV8@Swu}1DnToHDyoB8CR{ZuiYY09yh|85Lp@PtbbDkg%Ve>U{ zxpp`97@P5(rbl?Er7ioUK7)RF`hi`Gw!~dWC8Xk7I*o+S{O2Ykc=b;V_DO5dbagdR za_@lLm5rD>I*4AW*#hrYCG(iXX%ML8&)pAKak(e5w0g&Fta6T|AJ5frw=%If-Cc%u zg?B;N%KmjTKZ@vLz8gj;g~OlDc&eVIM304AaJ%Rzm|=Mb4}1CvMBo@KG#NxQ2igl9 zK2Eo_HnIrFA49JqW{D~=Hgl>EAQV-y8Etyw%2pfx8?!Rd$*B@&dns= z%frcXg?Ui%tc*%-g<#zFbVzLWX2!1tM~}uo928V7IsSJp-js8P__?LzTFHOp(7+h+ zS2xDLCfic$FfBAnyG<;gR8X?}0#&R13&;-8?-C{GX+FZIIq12CPSx>PaP~j2<_Rk$B7;1`lO! zGK19#F!)EjD7?;_uCRH={|uN2Z?2D{@+SY-t+g}wl=;Cta+)6+|LZ9z&Ikr=sX2 zAyYOy;{;RmKgMgyeEE~`6k4jepY|<{WABTS>E-fL67w(!)JG2#c7wMuZmkrJscL1Y zWlURJWvKVJRC4FYBFs590{eAZ(Fbkze5u(xdb?JG(@!Vi*UK#a#mXPd&M)U9Cz;Ye zFJ)lI(z*P|q5|$=D-A|RvqZAvfAXS_cHk3s9v>`z1iSSc$>E7hcygN$RY_@NyW~$Z ze}T2OZnP7cSZt-`&X#=Ww{rM5Ti_{)@4}~r0uy@kWw!2E1!UU@H+g2mrAOC6VS70} z=cI=I_rqYj_C3-1#A-Y@eK5Rih~S0uuZd?Ls3S$!hJem6OK$Sn38(8B62BE@bVW!u zW_q2#Z|ASjgSM0DRefD%l-t4zr9Ck2Mh16tYNm+`u0fW_h|9$h=&Oi#;RgiVbdH8ZQL{vKQja z=qRevF^u@D&8H?8>m}uB#pn<;oIaON!#z_@!~4t==)C1WJ~_M?rP{1`udOWKyg>y* z)(=ISkUCPV_>TE*{t2b^gilj8;yE@Yyx-R$^q|jUm?$_>l7+isM&cTJ%W4&EnGnav z_>6+U3DI2iZy~+9(VMJ!SO>3%FNDQi_hEeZLGCnPYGTQ6HQLe}N!56hxMIyK^4zQy zC%K-5alzd@!FwZgJ{ZZjG@L@KskQua+ZgKeCK`@ejpMcEZuG~)NmMNFh8H(V5woFN z=-o5d=s?@~oTiP#ou-ZON^2SGU8@2G>K};R4__21++~)N#z5EdaXgNDavi-(EK)<7 zzJ8m;9_LIFyud}0Gp#4s(X>9%g;VKxcmGSl<98Rd3g&O4{BucX`3gz3+)QfM z^^JvS48yM5)qolPRN<2)&2k&dyLz9qUoQ@#@-r2xq&9&Hg+lNvvxmh#jd(M?i(9OS z;D`Jd;rWmOFj+_7vly82zLXG1TX~A#GK}PFFO7%ur!7TQc1OWwh8MkXN{aeBPh%Se z|J=j{EvRZAMLFpo z1!!703x0*h(%Y9d(Q&pp?1I5yyr%F^a(B*LEEWQ5)mk=uhunV8B`AY>N?Xc`k5B1E0e^=RR2Sp&TCAn6Y+HJU9Co`S3Y=-nB-dKd^!X348FU+y`@C7~3VYc0 z`UI=V3>KArOW?C>^da?$F@4=Mi_CDz!;#euctT$fZ&zvYI{~uXwlAHZXmAJnM}^?O zt_5|cD#5^uMv!+h9-Q($gt+_$)bMmeh0IPEIp#lM2DJ?)yP4A{g@dr~^FZ!%BAHgL z>xRFdy{Np{@=cL87w!iw4^{rh zM1#H+x_9%>jUYXnj)LLk&#<@5kq(hA5cmXAV2hWDa^eQ5WWaHL-nbj zsTQhb9RdAP1^B4oz?n*gWXta)79g#P3t!BKPr4(a>uR;*KK*}eqO2-8a$ug&**^ud z`=^oAezMduQ;u%3I*&TXFR@t~eIR~7Fg0>Mrt@W@L3KHJ_hJmbGI8W19OG!K!b>vV zt5?#v+#Di0hp_oaCy?w4bDFqL*avv`u;Iq_lI^QiaNoi6>`LhbG-_{xdxx{2Ry2|> z`)?S3n5=<=J=|dbg2Pz$vxwM=YXyJfO1R6(cBdw^~Ico^Gq)hcs@5N*z9hzaB0R`JfLb~cc!LKdL7U@q$ zIjg;JGPDLO$NnNxUmSR|(A7vhS&56@Ex`GU`_sHZdUQfz1b-MVWc^LU8o>4SWwz>lF3A$QIO)RwZlC)rEG|ES zt3Cd}qjD20S{@ByiXYj<`d=8{E6XQWUc&EkquITZ2Vy%G0h?4x@Y4MhWUGhcHG9hE zZZ?y=o#4a!sl`doTECE#E&h&4=8y4X$5^_?Y6zXYW;8Fn@=7vP-`nBEF&A2~`54<_ zAk0TCRp^KzL+ID3eHeG(ufXb>BFutYnTmQMEIs4HMwN=uVo(&E7A2wNhBuMk-HgBT zrwP3|bv`xNithb;ioH4>h4SvD1k^3*rxu}qvET%&vWS(eYnVWl;*9whllPE%Yz2E3 zbsQSb7CD{@@Ig~MW$cYlC%C*D~2lpWrZD@xdP1omw)1Cw*1kTpI7*1n|Z)E);Tsv^h|2V1OE2x3n&glyB& z<79_sD(Icc#NMDItmnBe6lT^j`Q}upYfFMB{X5ZdTLz8}R;H8hS&5yT{9xWXHD0}S z7uK$l!oV*Txa#_7nm6PGEDXuSr}t(FUb;@=mr%uOv;x8V+9r%JszLdp@m%+FAye4? zkH}9vE~$y?0pk@RFyY(?y5`F|)U&=#KA);1IzRgJm3Oa$TcHEIY0?n8DH-s?hWb=m zWK8W|cwwW#7;5BpmgXGz#9CJ{@}w_9((M-uD%!(nZ0Z)I4`$#;qi>RyD~izIUQ6O` zy78vI7#NZ?m%417PV-fyXkpr2baK3aW$6Nk?94;qyKKqrDi?~9Hps%%2Oca-xY_M> zNQA^IS46JfHhkFnZ8%j|EIIq~6l;4O3V*^4p*PDF8kTDDv&C{aK4LIj&De>tF-ef# ze=p2>ABr1}9|ipd{o&!VS*WqO2e#d_z{l1SGWngMXvD{McB&50Ls^=J1zaOjc14qg z5&4+wHl5v4|BPR5=`)YoPpEJu4zR0&To!h2DFf{B=(M+BaZ}91rxp2yjW%S>$VAw3 zGoHo|JPO5TjQo*)MYKLkp<2>GcBfncp9vkjxD885>F**E-YHo8!hFFiu!1Sx?5M5M z&4Wup*=V9L3vMj65m{E+NNzPHpv<-?NuW*}44iCAi@y)#b_+_#(#1Y7Pq~H+jugY2 zN3VtK$X6y(vV_SvRB}(?4|rNyf#vCTSQxe&zI-)@z`RM!*vuL_zBLo01Fy)1Yoov- z*#M=deglQQqiOLHA92)$86>Abi#}f03x!h#lgk?WVOgh?WWeosD811xc~l|rLyYHv z_o|0%(ED)I{MR3%q>f@$q71ExXkxTflM+rU7%uom196w)Tb5j-4yjkN@OAwv;d0`Gq=Y zQ*#a`eNf;TzZZ)<8c$;D`CY;+;sd#}w1jPbJ{*2K*|BFyZEQn>D^n8s zXOtGhq_l9ZaET=Ld#aQXu zL(XPq<@$D|PA%8rpI^IoG~$sc%A&<2rNk?_q`jYTakgNA|{*3&1$ zEkFKivZ^Qg_g*@FY&&u?R%3TG0PO4vy_wA$A^^&%y(avAK_* zV6bI6${vZwygB0_Utrrfz0l_W7AVm9$7e#Cw;Zj{loDINpGYz`$k4zsO8m?I6tG*h z8>)4sV6D*KEdCtCB9?7Io#xj})@ckGGhs1~Do#Y>kO(}jup7kv%uz2a1RCVekess| zr=B>&qTd#SjI$kv_4tDOfX#4ax-tak+yw3G0CN-M(Qm>SzCSV^_b;;)c#uYtt$MQ5 zswSCD^0`MQl$MjL;}S{Sco`nzQNboT_Taxyp%8XFffZjmNj`?XluTMP2PIaPXw;S_ z={@y~S!Z7%-)&DqKz|*H!EAHx-WZRo_T@^*=sDnfHJ1(2NMoBX2nmdp_sQaIJA^*_ z4OYKzDp5!oz*h<0pJ_umgiLwH?iWUrt5Z*7$(XIoeWVQTFkM7C&i<7+d{2a9_H|5T zzLWQzNyGT+3@CMJfZ2}@q4?=lHtVJZ`}+*2d-5YRz7&jIZ9}0!;~E?3T+SEIrG zW9S)s6$h++MGPdIRWFNy)6RF$eS|6Z6#9I>!mmm$2JAuW=hFPvj2t%D$C>#Wmw@EM za?C&D&-U03Md?Rrpt@oi{QXx5_3uJ4)nyVtlAXeQY?q+v#&$^g+l(#gGkN~qLg-g! zhbulrtCMcC?DLrP{M=T-ugEg)<&4T*^&;9g%3cjuhY$D2I zQ0^zPb8rw!uX)Tq_B+QGw~ghob8AUYPq4&T^&0ZJvDAr|!Rae+u}^BNME#dDWM+rZ zsP$p=qsu!<+0S@3>bNu(;Usp5*~6B-4y>|10*aNE;HZ`f_`FkwCgo*|gboqJm`mY^ z^md4m%Rt*pTgm2IKBC7`kBFJ?ZrnCx0Fhoc3VdSv)wbPAh2EL_;m|61j5%+G?)4tn z=^TR%+)FsqHMoj)KOQ(u6V`8%!#fK&yS3vodwf9yli$oI$y*A+%}Ae)-uaQ-yf&GI zkptMK_zQIn6nWS!9ir8IjQuJpgi;!ejbt|acwHMKKA7PBJuvmvpnEC!W+i-IVK8^b+~$Jty~4Ilg_bE^S|Oc zQ3YFl>=k?-RmvLCi_SAXKrZ^n;@CfrP|GnJy~JU`dvIcxA$|-0%(hik!I;cU;O^aIV8DM^zia`d%@w@XPF1jHIN;@skGKXb z@O=6ibQN8~xr3S1adz+u(pLp)w?X&j|8m(;}D_#WCHZ05uIq?45AqOZBdZwPh=aa*lOb(#@FIHwJ=GGAg`Q{0;u*(T{i<-9 zAW31K{4E(6--grwRl|x(fdO9jAM9D`g*QGS&h!lhaqcAOZ(W2I0^e&y>~3)Ttj!ni z+yc&yemLk*7;GMLpS=067&cc;r_TzUz|lX3+$KUsU1KubeP%#ARU0v=Q4e0OmWL@R zc_4Z>02UvPM~Qqtwo>yU9@3NJJrRAx_^m7ME}xHY`Y!>u+YM||MI1B-m7{-+GHDzX z51XfUiT=}2$79{IsKH?um|YqVy5GY1Nl=#ruFhqFQxR8L%ktKZt<1o>mR)Vx346N( zVeXbMEa#EnQmu5w-Y|Dwz?}HK;kxi((gt!`dLi3*r-b_-96-%vms6dHDh$70jE|Hz zf%5YLwoP{-+0#!6l}Cthjn68k?4*z80n#*5eGC0kGL847dQ*jw9TH9XyLchK9g}3W z!DYb@mhtKkPS>c0;|95KY3W@uU`Dh!V^bZm%rl}ImnnX@+eB90-sGt1J(_nkXwf#c zEDD~kIPt*&{42aGYPD5qW`N)ce)1N>9xuTmnw<1gt94BMu$${en$t_IOJQsAF*;#^ zH~IbUEoQ{l!^X*9F@H%rtO!?!DF1zMyJR@;y)%@S^~GYZvlJOUANd$zU)t7K3I7Gk z(Lz6A-ZgR`pWt>MKTSJMa+H3djO8(iQZa*yS~*&F*9bPL?-l0<^n$v4675ly<=Kn& z^RTF24i=-Tu-37a`;Lt!{dc+1-m(zK{-Bb<4zE1-MVmooNr6}*m2qU|4YvB!5G=6`boUxiGvV4VZ>nx!!A7l8jozZA`Q zB8{8vE;-IV9!G}wZ{R~8ognw6_Rx^+!=Yv9C>}I*AD<3;#Uro!((~0Zpg*w-#2q1U z{aG0={)&?47Z;)9-91pyHxs4r$w1MEJAC+BAtQGt8TOprN-yi3VQ^s)Bs`u-EEA;p zS#3YAdAgNn$327X5wfiEQ#5xMGRxNSi5Pi&987w=&9Th#I&>|z<=PeR@YZwTelb`V zGWK8RDxR^>D0nmm*}f+ozamidT#iETO_=Vt9#5FLlBk9pen+zi)<{jDsmcM8`V;Gf zIZg{Jui6Fo%GT1kt99wM6+x1upH(zysU7{`(<||@yh;+Ztzq?}1Jp}K2T8e*T@7DM zdr2+M5Be?HZer3FUWf=}k+Un>!>_3_!+yP`PZIW6nGgF1|+XBn@P#w%^8ZR;*R>(dMZx-@DZsb687MW?1%dL0MV;@vb z!Ik-1@aU{5C*=X6>MxV1#oGRko7VJ~tnAi?V0BvvmrF-Wi=jkPGy&T}uaVV(X5y&} zDkQrqPeShk83ISd=v4nz9Cpf=kQ&%3H*gZ21G@9vZS9nq8Fh_Sa)m#jIXdjy=EWq7%>PO zOjWU8PdpgT8pkhNE7Q+Qb8zj_K)4aYQE&PvVaBwD{a2L2{;S!9lb_GUf@?Z_W>qNt zL=}bpUnofZt%D0MrqVkX)!EQ2Wn5hlig&&(rzKBU;{bPasA^t{=SK)0nayj!HgOi{ z3H{xHQD;c+vauW<1jD)a1@QdbF@Zf9PoIixdC}fMw9wlDWlazSU6&Vd@Ugz))kN0E8fD@$m=yXxb4s$Xm z_$UeR_aw!KY_aZSIkRow3kTl)C1D@MY>rt2WZc)KGE-;r6*@!sn3EYWYs^L}AJ&J; zrj2Yw;{mv}^#IfPGMz2-=mzC)XJL=O3wZ1H;}hqJNrKc$aH@!xltuW{huQORr^-`2 zGB%MfRQ>Dt^3G}IEgMMR+~@(PtUVB1&_kvDJOsblIJV-uG<_>`9p8^t#$_E7!YgC9pm!&O+{Y}e&N9N%d&XUl@_$vF9f*W zyhQB+H=ewzf@M9BqE6?`XwCx(43P{HRh)`o)sx?Xj7vX=@=k~L$^l%#!x;OUP2moA zcC$4Rn|Z2X7qbyOrUSm`Lg!6QUisrbUiZkQ3AY=tz29xn`q)NpHO_?-eV1U=g14}KI0U5J;;d%o?R^XLd%JX(nGiu*3D!uMbSI!2h+>*ZeuFFM~G<< z=6&deIWt-@PFa(yztN#5H@V`S_9x8z`!|?fsp27)@cR5yy@ z$`P z4~vyvkjUbhOlgiM1hN76nJgx%2cYc_Yp&Zpn2)mkE*{uCooRnL zN*rI+!iDrfe3nK8(Xv?$yNoqheC`(@8xz^0tz#H8+H; z`Rj1NgnWGDvWEri8wQ3mW?;?7@zmwa2vof30~fCzBJ1kon1_`NY@1%gmNo zQ}f7o<$YjikcU^VC7{`yNcQ0D93J2A8B{JQgWkEhV3IhTfA@$4=i0%1gQ5d8<$NRA zmZwo;(Qa(i{VJK2_!cVVhT&wtY4n1#D(zD{3RiRVd63?1R9E-JKSrBH1_L6|`_xhP zL@x=4-o1wX)(cMN7)Ac=NEHfDF22KI0F}8n7-pS#P$?FKsiCFNP@fW#hC-1ftFodHiTAk<36(+;DHw3MOPZipC!`|Vsn+dSdYVdwlCGOi2%?93Z#k{v#SS66u z6lA67UZ2fuLQyySX{Jx54WB?*$wvBng(=N_n1_)<58|AX54CGwjbi;dXvBX&&a81@ zQ5DQRr`f@Q%^#WhrD2HP`S|9pI@+x~Mn(I>@qG6&w&9}^?{&_CV^jYFU7;5}X^s_! zk0grIk87X>n!VB@BGZ8p1 z;0Hc#JP3!g4~S&k-hrHEHwn}mFR-AjaP=igY!YUgS)Wc}mfHY4rr1Mt_s*c<2Oh$Q zNdf~M^1&nFG+Spg31e4ZL67^l@qC&By-{C+-cBb$upOhMz?ax6wgkx`qiFouS1>o& z5KasTg^&5p)TLgDC)LPtb=7RxBQc0~ly{@`rYcYx;g|Xjcyq>_kKYwVCjPA>H=0gBpp_o*M;zaGdZO>R z>kf~fhCy!Je$uuw9^}H&)VXaq)TMFPZuniWru2E!yGoB93^mIjp^@zMmQz#n5#d8;J9%* zFtn=&q2M0Ggz7MlZ}z-1_qRATDGeMo&*1E*reKzvNd6obvd@_WvU;{)*X65Xh1c&O zYu+??Hs}VV90E#DB8iW{_hp+Q9Eu}ho$|Cg)fNtnl;-bd zEhF<92lIb|YjSsTB*yRB46od^h>dS9nY}r(%%wt;!1_UOfy(ja0m7cY@g2qs?*td+qZ0XgdXwjqwdNsA!{`WlE)y9JBSv}Cru%k1k9YR+r!GTO%0^L1O3o`M5FG zhaB-O0lSQTh?-#t8UlClyP}l9Kl*@Q_1=M(!!OpG5e@n5IIh|miGxbo$YDKI)TzyY z_L3E7WuZr1Zkur!uEkeOP^TtollZ<413ufWTR0~_#bvt&LaA#E)*9`=;tWkVE!@Lb z?mCZ}Zt1vi-vs)2%qlo&C3x&gj(|d>Kg_!^gud(~Tx-H+oEX0wvZXIU{p?PmyEz#f zeujdcT|eAC7|CLu9YopbZmiPA9L=`GL2h>mOvo8X*DcwEGc=#Ee2`aZRWtzu)$Sq)Hzr$7626_q64-dAJMYO>bv0QFfs0 z>xm)hk8xpUC`t=E_n^13tZU{Wfde`oyEA-<^y73i?PjDKG?1;3=S>2qc$I}R$$D~v zN$!ipHv38z*td+$o*mD0{bu9y=i^Y?=Rc6LHNo!f+lbI(W4brzbBQ-yP;-4Kc-dLd zQLPJL^hYyXAlwg<9SlUm2a!((h0I>*GVHoKq`Y491%G$R+;LlrG+z;uKpzCv@Lrw$ z-1fp5sy`+g%iVXw_|;=TLfRA3&h8T}u+=IzR`X!;eeyUha3<3>ek*=E!HF-vwU@>` z%Hz8CX3(d*EU}zYF^qD30zEh&>=FH|>`sbt4&Fe5SOYoM6x3VqAdtfUOTn{zpxYK1>uo&A5OFfQY zu#!ai)_{97Mk(E4{^VNNn)3>aqz{6W;}W_=VF*=wH<4=}%jC}4zo@<4Szel9Pu=Uz zP+j#6_{o$>}gC?k=Y?9AXE8~@`8$Bb`&^G&Taw}0mUXmF>NlI(Amog6V!70} zN@1>@$InjlfE_CPn54>L482#xyya`4?>l4e&QUPq_eUO`?8bj3%X7);p(xf+<*q_b z>`Uk~=CRd_EDCc*}V;oMKy zv5nR40WGS_XU+nC`^Rc}VveQ5qWZIVW2H^#-uEpqpJ*vg=1A zXzy7q`e4^E>`D1v3ZHt=WzH{{et8J19iM{RgWkioA!7wW6zohk{lPfbBHF|M2%SNm)3Wsy`}%d+8JKfMzyX7$1!oo(i6W+(b)W zPABPxQnb(@9CF_ip3~Dv{6aMN+K=k^eOw6%-IO675i*6Y_@@dt9}fTpO@U+X`U4Mr z-w88g{fXZ6BjP!u6u2K-giQwpillK5c~&}wy(<0UNITqwr>)6*SqpB zZ#EF=DNpd9kQ;PphzF(ah2-U}L3k}a6N3-x(iy{Vu#cC<(knVoi1vaXQ1d<=!M2sX zd!9!OtNftoUJ7yPu)?MYV`g?>3?JJ%l^#|rz{Vx5?7?ymUV3u{#BJ1q{crb{d8`eG z3=L0g?3V$@&NQs+k6|rtv7)a>=kfMAA{aU46f`V3g7p`2@bMzTi{?1-yBAfVWJ)?S zxs{0Xzn)M6$;t4Jp+)F^r-|u5 zDI-7rHnJD?Vi1`|p!vx*b~$sY=&ad33}(ae{;fQcemffNF39t3_9D9a6=HiyGQRn0 zOmze&YMgb88B0FQW8d(FJk+1u>31{s(0K?I(NJ&E_IG8-%F^M5Utglj+B)Aof4tj=*LRm)SMT@&@;o~}Rs zTII)d%ok$(%4bk$z8_u3J|;h153vhprZBq^li^(ZRov9`i)D@}fTv5H`9*^c^i4iZ zj_Bn=Vyc@sLG}=Aef1Z%2`+5@3W({W3FxyVRf zmabK~LJluTWlvm2^Pr+)eDw4+`+clhJoMK{@KTE;=?jPOIRXngJKr0$zdjUcx|q|2 z;X|?D)Oq|SyNk8Xx`GRWUci~fxnLK5kIeeG8&-MA(yH15R8ENzok>(7JNADD-QA^R zjZ8iEUd+LA|3e_{*h_kk6p@^rDWLJakTehf4_lpvktO*TgtG)Mi{Ft5fx_OZ{=Evl zUmA@LDV8vP?oRwY3s6H{6OK+$C6>YFM7`IUt4s{X7dD#keW}33Ej@tJhbmzE-#T11 zXA;xV+)YlcT83w~#DICO;P@$Tg#(d&0T&DsL>ArC-1^9_2uv?SvT0x@0S5uN?K6D`IOmaSWX)iR@C;FQyl>2v`%sUp08 zI1O}Ag0>&Hi?*q!$>i(XVC|)9G;Y^q?ZwW}-%hao_*kC*brv1d9F0=T-=l@YSl)X^ zp5BdmO1whSm}-^^)$S|8>=`=js{af$Jgo@9kC)(Q@l<|6=^+?Ai4)H|dlWOr8i16C z5g(U$9P>xsVQa75#zNgNbkS?a+dHM{k15W4^5Y5g#ky+JDY%Z4LPp@|f)sN9&IjCg zcoLs^;}VuGF~pNyFPPH56Jkf3pUhN8iq5I1$36SLvz)-eaL{`+(&i+zo|(l~^nbvQ zZoRnE$(}y%xyH6-Loj8+`A06qSi9xUc_`#MWMCZDTc1t|bgV-|oQWLCMfIQwH7D zmgDjAP2h1k5|>)|LX1N@l&l>r0Nn}Kh|Z9kKs_>Df7IB_0!IXx`14Zcs74ZZ=Z zcetY6m)+Ps@rK}H(f}|0IQG@?52hNYq3OIN@nDzJxISVDd|Plzbbq`GOs>B|nu?vp zKfk50IF%;&+qevMl-ilkgJ)#v-Uzt4FBa-zoiJL{7Y%ofM+L#3c23~2SARcC#B)E1 z|LxHt!M`72%JX56miU3#*9UQ@79)|_<&org-(>ER_?sR0-)!+i8a{KAg*S1FFeE4s zhZWj`&b)Z&I(r8mRW87_C+_3wuc4^2D-uM0AH>h@WfM;lhYwT-5UfoD6LT#pXIjbp z7oNg>UnW7Vfhs?A*k5ql{bZg`M?n1CLCiSB0kSnuf%PpBT8*7Yhx&YFPxf6SeVxVl ze0e3i`AULXAG{70Zw#?dl!Cuv=MkU&2l(Mc0EEy^JUYpk4=dE6XIgfE;&W|!Kez;r+nzf+{ZhZqIEgz>NR68i)?lJDJt74kqcfmTewC9g04F7fn`v2Rf%t;x~mK?DA$E zy4P?V4388T*5lhnVuzu0$BCn)SAP|(^wpuxcT(B4`XcPmvIB$a^{jmRWYMj=qiJhH zFl_nnGTW0JAbwn5iidN?6F<+3SiC{Vkls1T!gp>3^DDCK9$3N8*fHGk9) z=-#i=yitA$HJ90qD{tM!=@GBsmc9Xg>8>w(*nSe!ZE`_gU=z&wB4k7agT!;F|qOld!P?FHOru3&l23CI|t4DebTTQwKal)t-bHc* z_CU|Om!e0)bLP&^2J*?qSv=qTARBEEEb_TxMeV1#plskXk65uv5s*aCcl{kSrKM@V{b2x5}c2gt&bi4lS@Yba~;gY z&4tPpm~xdfPV~TMCvd(I4pS6n!}8oK%zlQ52YQ)tU#(_wmZAiY__v)UCoC$R*);`2 z+^0k3VIhzAqmV@G_l2y*3-HM@f3zH6i$7(eF}6jYKfhW4Yfg{A?384j`$>!TGm?1Hs>3l}c@u0#kY;T;6vD4u#=7Cv&>Jy>b~Q6>aPN~rzxng zC=G)Wt!ZZO9ByTrhk>u}qqC6`br7D_ZRhPU+`S!756=_Wtfgoox`b<6J-|6ycxQ8n z#g4E}Y~2AsHE$6Kj{tNXuYt>kT!XlK17JtDG(>u-@z*ump|H0Mujdp){#z#ywcmxQ zoBHwm6?I%Oa{_Oxk>-jQbeWBm5md~ngYz4e=-9R&uqW#RC>J-e^t4V~Qc{2tFH><$ ztp>f+aRHwdbwKA(H~iAO8XncQfR6S!h~A|})uKi4uvQJGcpiY58gpJ!s*Ua=kHFPZ zZ64-4nB-S31j{Ms$?|G9a_EdV=E`3c{O$}^4)?-977C%Q#pt3`hxbc9;;_FLp~){! zJk!6J-EtquW8aP`Yo3zR%CnPmS93?|9&m&=pk5{sT4gE`}J$-Uc^aC<-qYq!_}(#wSRp}mi>GU5yv@45iZ$Bl8l zvjnt`dCkTZbYf@ecl7l(<{wX$VCB2(5OJHr;6=bQD<!0cFryVluZdulR^JUEZA`+c}bQj%^A z75EVmO?cLKEwLPR7z&+InD)p>@})4E?K-H2c}eS`d)+(O;&lWX)T3}r(|fFSa6`ID ziyA5-j;^aA)9h_|OZ+I5PQ5?|S!xI@x=7~Wk%caa`fOUjaBjYE5ZA4cXm?RX656RRU&wF<{?H@Z6X!(x8QJo0+$T_4<&ZTf!#S*;;df)(t{e|>q2!( z{@#Mcjf+T@`wt9$ZVmd&&B@_{t*}CCJX|X@V;YN%v1~)Mz;*PZx;`_wq0v*8Q?`pH zd7JZ~feWzVn;KtrEgE5P0;t+ZlQG$|@WkVIBBT7299=bA$P60sDdaf#_EZt$J45Ks z&!%**SR1ylac1Uy6S;BvNnE!+L0q-sIiw_-;CP8>OfcZY_kA{0k~lcOxs{m*pC(VW zreT6jA&lHvEKK3YQQb^?7TvWGL%mhNC@KPGCI3L%yYoS&S{>xSd%*g@1#n(H1`6&p z;>LMTh?7eMkzRWWEd7E&T`>z}kJy7wXRA11|gXTMx9k>h?=;|MDX;bkuBdSE3vp7}w(v==}rw)#70IFT@`e zgK_J`LHy@|`(%aVLu@Tdf!i0wnD$zk2Mke%*!^=%eE(m58Ee_DjDN(*p} zUm|`}Tf!Ghek0q4X0bu}Cn4>O9O+wTBdVBGferc*Q0k(`RppX!XyPrrZb)Fw^=XhC z8iV8WGhp95KQP++SroS14PChc-@GajCB0HaCDadpO|wF^7e(wpzh5Y|Oodpyyos{| za?r0smQT3*7T1`@;-OqizIVPqd7VBY9Nh%D(Ydsnv!3dhA`WMdQNJURk1R$M|W)Z`a#5H1aI z@G;AghmMT`;i5PdGC({OeoDmW-VDms{x_Qe*toOIY#RuaAK9B== z7xasz6LR43!36l{R6}}wRC)he1#UX_1$g@(78`EA51B8&!IDRlL^GyT!ZN|Z_xbrc zTy7V`f_~?VE8Sl^yo?f9W3uB|)7^2R?f;zcza{S2`&bDl8onZz%s#-S_gb{X?HNpX ztw^;K^e{*x9Xmdmf$yhOqU)U}vby)2Er}2uXAd$7*Y#m~N&Qgq>mpkJ_m)V_K7=V1 zEl@E<8Lk(qkQIX$vx34PvUfx(j<-^#uSqkRRwF~FR-Z(Nf?q7>RS0W-eG-g<1s}A{ zTk>7F*Pr;l2->@JXjF6zEItGf8-GWbeci;-d_6dB`oLb6X26ro3YM95ljV5a7q2`v z4Fl2-;h4o&Nm%$q9J~7wB!(P@4Glfyb#@-USz!fLd;3MsTAy*4_5_?z*g>{Wjl=g@ zBOoawM&MQ&;TFj#d{aG$+FT9A#bSBU%iCv2Z1i4Gy{SSx)+7lG`Xq?7Re&8MbfCuR zKHH-IP~73vkNe}|LE3IMj@THDm-fxX$o_h!|F;y<1!m3TZNEe&6BSXzs84jN^fS{~ za|XBf-NhSLCt*iO49>Ij6)WEv&U->nk==Lp08x;H8ciuawDKJco8*O-+tgrcp#=4R zMPY+e8dxhNBO9tH?BM`5v~B0(jpx9}TW4`aQWoxyJPy^o6>?r~#v=6xz(jQyEmrLbPe%g{Q4fliV{wDBQ z#tUjY=h3GxytsV(Y%o^5&d#i;hR_sE;hdR+HrmNdM&NVl1`I1*Cn-4JbN9f`e;v3= zO@mz$ZeldA_dl4 z*5Q8RCE%g32er?7fs#u;lWbJRsiBU1>Fic^Y^5Wv%1>v0UX|j5Ze>C?Iv+}6?l_oL zYS1p>cVE49KU@(UkyhFBspGpf82zeG91wLG9z2_X{jVe0J|dhkgU^ey>*Hb6lbyIS zwE%7B)zv%WDXcFm;f9znEuQyNSA0Tk+ZP zW%zT$Tpl5#ietJiqTZs}4#i`aVfj-<`bJZoUrs#DluGq^Hg6D~m-%E$iJ9ob={`Iu zbDDh^c>#mkwRx0JF0P+9jK=(Mo;1SvakFhWd>8gZ;*du%SlCMMm>{}0-HIVE%(d9y5vuguv!``?@Gb-Zh3BDq=_RHD3n(Z6nIQ( zFjj32Y%rVwnop*~cbQN&HTf#LwW1F{o_vjQ(+%kSQe}Q~aX$W-mQc3ug&Lce`?yT4 zJP02A-Gvvnj-rf&Y{((EEB8 z{^`zUo+|MeAQ=JiKSGJ@mrC5`Y{XOs3@#s9?S^J>nmm4g7lVVEU~SiFdg;3X|CFgt zug<;;$t#m!wOueySW|+R{5@I0i!G#K&@OSr*Ilr|-3*UkvL_3z4nULYJa#4O4ePy~ z%y&<=7QL@Ljf(G&?B7@=<{#Gy`Zc`flArmhfNU1#|!*tKL<~`e30;&qgF80sf)pXVLYze^#~Ikx8bWw zvEX`6B=?i*aPAIky!pwPuh^uA5A$M3LQxGnIPE7?ycXd|*N5y`dMz3E+W{nlD={c~ z7~QvH4ZIbuW#cG0wyPnJ#V@8HV|L#mYu+DtQ~n*i6!udoTfrq|;?I6~yy1;QgE40E zDKdKCQQU2!Ah;8ElOqY6g{*=$)_Wa*`dKHTP;>}hMnA!)%15AEBLtKCx}kem6wa!T zcTjmNLxx%pz=q5-VA`vVl7o(spjX}OL3tZiJut@3Ljuoe(F!E$Mo^M99_EE@gr7(B zvB{)Ov^XkUa0pU(GAS3nZ~YGIb5h}_z~M9hF9NVijbB`U6U|lLu%$C@vW)O*JY~>~ z9gns7n_fA1Jmnxx{~(;h$#qhYeS<8vHspCpYV5~SQ}Ftlietm2%1lS}g4xrJ?BA0- z@nhZR?A`JN(LM7L@}FBiOWZyk{;W(Ed}Hyf`*Sauanza(tZgJST%zFPHa}b$C`*;@ z*D;y;SfVoQ3(Iyt0xNcXg{9Xs;99{m(z2z6RWCIo?|x5*W%HlHl1ypdFntgWxYbM= z)IY(a@m;v9YBsQ^613}VF1~0Ha{ieDS|N8eStm{e_q+aNtIij8!d({{K14y4Tq;wv zk)_8DjKhcJa$?^t`@r6Hq`;LtP4tYzz;BBwonm(zA5Ol(u3mpiX8n2qn*TQ9v0!a> zb0%PAXEp?%NMlQ*t@z(m12oBNCVPvYvdw$Xkh%6i+ z5zlIkr$M!yA}tyr&1F0_p#0=foLcsnn9c0rrAv>2Z?VTk`gF*`kvvy481qKX7ms{oL6_Gj!)5<0CeiK%_MK87sn){# zLDoA|5#9b75B0xnK*2j(GJzBJ$sUo*8E zjt)PKCM(U*Lo$pxu6W6p4@rgKI6s#C#+DszkpqXLSE1#*G^EsS1+9Yumu+M<4wWet zZH%zSL8f0sH%GZ++T2Vs>cnRL{r4gmHF8k-zX7j!%-7FcQY9Mw1y)tJ@VtH4cp1K~ zJ;-J^&xXYZ?~}B-*7RJlBg-gX38scS1ed)umAUSNt^LzLH+wiLtA7Q@A%%ilQXZnF z2cmLm0IZk1!KUa)Qvv>nyEmEREQ1~JeM%f* zB=9jDA^da^3lF+N>SuOfjzOsa(` z2tO1vnRWjLapRy*;I!_Yz~0n^whC7mwmAe|rp4j?3%kfBX>088S}Y3PkxXj79fkh_ z(^!qcd^S)y6Z%8D(YWn2)P&bE1#K5tyvYu`qf1%Zwp&E!i5REvhz9MsYTUbGC`>!q z#YX zY>xr&YQ4c`%}Hh??in1|Ys%}-=HTB~hrvhX8%&Q%KvRhkR8*_S&+DBOb}lA#yQL+6 zFdzi1@i=b!@)rs>e-kG=C5d`2RbVRoLHS)<@q23;4E=Q-CFb5{@XAWm;cQMDUfspw zEqC$E2W6$MtZ`cB8AB45ZpeooXlTtqGHqshPB zKrYR4F5c5f~eqx(AD{h zcSrk^V(+&YIpPF*{8tJ&@0UPxbr)(@N5GS+uS6#B7Ws7e1KxgIK5^@*a`D1P5#B<+Qj_*Z`qsOD?s)AY|It*1;YYs@sHs~{Lru;jZ;R^hc!v~G4dWh-gprE zcqYoGD-mmQS9~KY5aSiw@R3snT1q@Gi}HRAqrHvzz!7pL71k_052L(g=-r7GF!@Y8NJY0`1eowJCPUBtN#uEA zO*&?bB{ldtn9uDthxp^7ZHn(NZYKrLEVlf|4)o`gfw*7A{(We`y5%qtJe z(4QM3xt^;gB%3tx#U9l-Z|e{ZW?ZeGccZZB^+<%`tpZej#yRGLg9*TEeqd zj^*L5UIFU<_yp!=vw8CQespY>f^2a)9I|-F6TgQ-p@rZLT4&1F2Mf9T(aL?z8v# zKS*71J$N=Rqi@g`w;EoAoRJ2Qy?Y@1_xd^-AKFHA4rKDu%d^1$SP!0TUqFwy&BiBf zHQ+e zLYkg#Dv4SK@1m;HgTzayyo^%#CkE)mNgo*>7j+MsVp z965pkFnenhyLqt+mmjVsgG&owl1wy=@tFkY{?o#d?{357!imt87so=!h4SwwLco0N zDeOKH%J-@NVd59+^kCs>)Q*y;Zu1(T!Nrifte6j;1JCgdc7h}D-fbzL#~u}&z^!rL;LSn<8jz?(b~W~i9LmN*Kye~elt{pH!N1~tvyVLr9YT*P z4nT7u3-!nGH^8dtEWlfbPBT1B9)!g}%=f8~Wf+d8!6#tS{XOWY9gU@3``L>NRq$PQ z2Dw{6p=acJbj?f0xCb@N(bpRj#Cmk_d2NU(`ON&D2=nHLJ^1qX70kG&gBSa5Vz0l@ zi|TxhiY=1deBViExqTN#3;oi?eZqQRb08LUOY(n5W5Mu8I&2Yr#Y=^4ID7hV`qSnb z8l6*x)ECC2dZIFIQ%VQ<+f$ibX)t8O1u>T^InZ|8kYs;)N(Sm31+A%t@Vtd%o2Lwn zbGP8SQVAmCD^+C2ofvXv-ANcG_zLzGB(kZZc5JT|WAgkAQOnH1m|&&Neb#8x){<^^ z#d08c&mF;Qet0mo2M(lY#sk#0lVk6G9K`qIvLUg4B}|zYjUmQL0!w8Y)0T=RsumGq z>ulk?IM+)bYU}$!ss4?M_SYLM;7^aWrtDLpy=aq~^y*tD!7Ek9o2m6tf zB#5tCM_{LGBpLd71}{6_fpy(s?9-KpD2^Y^_c)zkc73kqE9?)@<#oeUL1lXre)#EzcTKKxx#crS_`>Vr^+yx&z=9{_MOY)` z&oV=+M~Cq9%R&5$kr@}C>p_V@7Z80kdGw!;EbUAKQ`0<$Z330$$yFVy)a%GcHJjs! zBb!K|lq@&?Fcf{_exbd!1e?`7iZAO-#;3sy)vqmqQAzSBx^flfHl@*7VTki*Ut;TP z$7A`*0KW0&B4+K-3M(r*N%(@3{LFbfP|VtkvTAuy-*l7@wLsiG^$#2ow~|b|{a{y9 zfL+#~iI>9*2M44y%IdASc(c&4D(i4q5NV8|N9=g$wtHBSdKzzh`G;MBhv0JQcvLmL z0h(c{xK3W^vmg6`uRFhsBj+j5<{{beA;AaksvU#18A2AY`68T2jbIDEnWB5m6=7Cm z$WQI>g|cBKeD~$;*!SoV`B?c9nx>{>a>!NEFyD$-E!Kj`AroOfvB0BmWANwnZWb?U zL&q0Sar@5Y{D$%}TGt{+X}tqqQKUjsiaq(aQ%-!}JY7DvK$Y({YJ$G3130-{3*5sF zVdSLOXs-SXv-Nwid8#fS|6rx4BybTdPPN14`HAqVc^;3*I){;;EAiNE!B=>E3p7?Y zLhtPwu%9SF)0T#jBSI!+vQj^}JaH|e^Hy*-nZfH-ROqwNdk%$xqo{_3kQLb~$zQgb z@@YmIki_g4C*$cA$3^>{b6Csd zPINjogs&Ukh`L;byJrKPU#`Q|hfTvv4qbRgMvkvcyG{OX6W9R1zCbv8ihr+0f&9P| zLZ+k$ZZFM12c6%b5YT`HV+F24xF!Bs@rh0TJcTYBm4$Q0m9Qd-BvDk&4F?)3hgCcu3jqQp6AAKY1=*+H$a2WohgF3ldi&>oK3LlfQCc%eqmBS z;e>ts(`fcy(n84c4dE$cf3kO@;^A1c2QzX#4NEUv!C{l^#Ex)JI5*bAkLuGX)sc_M zj-j0G{s;~m_Mx+n1W5R6;>3hj(TvrH=qkxFY<_+ouBx}gkit(`k#+{I^`hr`L2$F?r}DrtRQBla!~>w35iG=rln>l|~28!Zl=EMzZ+YR#o~Ua6Haj z)Xfw-W$2!se_-f35x0I@MZP>AK&mFo(m`Ja^S;IMd}>NLxC)tCwrd|e===sF_vElc z61U-T>3IHZ)gV*}HwWV%6=?pq2=>gLNRuWRLyPAV(U7JBQTWCdoL)NyUM;;OoQtIB z@RxB+)wZlu)O{LeHLLOulS)uA<16W%s=~{xbI7=L!}$HISaf{)8g|JC!1h^&^k=cK z+TMWdVEY3$=EfZ|w(~gC*zX6nO8#K>;)KYna|uoz{1p~D7elQ4R7!H4z)MoN7Ce){ z>b)+W{`w5`57lF3rYl?>dKpHx#Db@V4_5ElL0VgMdFKA}OnYal7^99u?Eo7xCQcu2 zi(~O+(07#C9*TA+9}$IVweU_~@UlLxgU$au;A^V^m5eJvuCWxo$1K3$)%N^HcoJq` z_)RKx-EqcjMOd}<5WYT8#I7uK14&ygdhuE;hIK82^=IVyB*%W(yHAVm0cltk)eBNP zBhmBjYUp_%g`TrJNZKI-Y->IW>#PG&@OY!ghg7^d(4TyDDrUbnDR9kjTc!fXu&XH< zCmD9()AhyZ_fmrUdmcgy=Np&+CE_||BfjXm1dPi2EI3@6iCb1Yx_U;!ovxkuY!7vq zI;ar-HE-shPh3LdgRjJ<#=w^mwuIJiIS5;p8q;Af3gFt;ECBxy9=pDe`8BBU zu)sbhSDDQ(OzkKQ{vd-&mFbw@V1UY@Pl#p9Of2d51@l=#cV+Y}K5NlNW~ViW+ikv2 zrd`Me>0d#(-64mSxvl2hHWO?=tMF$zR&1_cEY49K!XM?1$G9RX@Vc3c(a-YP_OTB! z$nz0fIaL|;=6iwlu2-y0;v_X{U5-*SPC{?bbtdCGfz!e~?D{YTqWAmY+VE5SR&@@1 zy>%Wuvn6SI{cwK9z)P$li_lV+!PWtOP@6hM?QDS5xbV^S=!$Ax6$kU!4 zHl)!R>k`cQ4B@$Uvg;?wx!#J>T{WU{mWxk&e8%Pf9Yf2^bPz9- z;~1C#zSKs@DUZRiOPXNRv<#NiJ&&14&Bu9HW)e}wZd8&NW^YwVsDE}DJNji5oqu=( zBM)%9uc6JA#wVg1TL@m zUVEP<7A{YO)>s2(M3i9rl@jzGc@7>231Is_tsK9&p$| zKP(z1MNZ*p`e-dZTDOQ@nZn@KN(pZ3ab@nOgd#V6S0LQTABn%i0`cTLP9X739e#a# z1j}6;sgq+MRXMlJV$zCPq6qQUk^XkH;F+yD*mGL~BId0X+}Lf*){P)8+;W-`pO}Vk(akdDmWi*1^wHVgo?0E(M2QoPtPI zL)doZJT}lrU}3JqeZPK)SRWOZc=Khy=I{TJRnLntJS&%ea>(D^JJAC!rk z5(g_L4CQa_T{G3V>z9M^qVp#b9=wI+&Q!y7^4l>|Bmv#iJJIC*N>b3g7OtiF!Zw2; z)S0sy4aPa*Zc9g)Q(%gndh@Afrw<0Xs&XcmRKR2AGm>@mQ*ph;a%y?29hQXgjDJl# zuzj}~A7{o3ZDKO;?`UyqmA|NPQw0tbnDb1MG4ONb0W35+XchTGf!+DI zAGJrgLyJrt>J^UUX6I~VMul66SVkqk6TS$$W7F|X$ysQYmuHEhL*!!P6mDLo3{a6F@=(KG8s(N_4N5 zW^T1j?5xB9jFEI?&GpH2F!n1Q?pz8VlZT+n;-K*4##$)uIDq{2j@2tU;?(6H_*2q= zXcxYOn2`3+y~yqsrbj@HQbSNr0-%!5`CRK_}f=W4(*vhUaq-C z?0-LmU-m)-QCYIxUm5PM)#h}M=8%QM09!vT3@k|3naM{80o;T%;gp+XNJ8I0wef zE^wkPj6M>V#2DO-TjJ-^3g$jRJxI7|}9E$!-^tNb`;+}&zwAqW~nB&9jSCZRMzKi)Z zp9K5(b_j4vB&VM$!v*dNoUJipzN&1Eb9UsEvrKGKR<`^>{hsW%!Ui*W|G-$ ztHAnT7~DOutB3{}a{3j&@XGd7oIEl@sH<@YtFx=AJzNA(B5dw&U2aX4GBa9JLX-EI z@txZqxS=S=4NrKBBnB=-i#W}A=T zo~HJo+q_}AELodttlkQ@l6J5-3t2AwZ2;T|X#wZ;mx+o0f1qwyVSUZ`2i4$VPucg% z!8uA6PY!*93wN$UZ)X@5xlZLg>NDWy@kDCedJ*Th_zL1^9OMK>2wuMMgTbf!VTA8^ zTwMACr-gpN#0^hjT3;WeJ~@V|*FJ&Ck6O6=Axvn$Wghv|cAEA$nUF{7zsUU&a%@>- z4$aFE=Oz_tavui2V%^2*Abri2T^Jb&cxV>4rGBp9S%NgK&sKqZ+079D?I9^WmIh;% zrIW>S3sBVftzg6AERt-*vxslWay{`1aMFl(gJ0i{Q;oOK({-!q>egYrxLceBg(Q%z zI+3K{-*<5QcM$(+f5kI1ZP~;Za!}`KN1|Tc#{+!c&E~*ra9MN~KKID6b?1yZmB+yX z?!sY`yKNsA_FRE=1=Q0;${_-+@p{}Adx9#h`EZlZf(NZm$5(aVXssIvBd+GL^vuH; zb2J*e{OX{izZb*CcjH90#>yCGZ&}o$g>G$_?N$rc+$gS>J+F%NI z7ssIY>{`KBrS~*z?@sIw3;QN#T~)sL;*fX8--3^{F&(DtEj}g zH&QqM$KA>chsASD*mcmu{X6*ilx{!H?|MRad28asOLE+HU3W6($T}$R3WVo3^f)JT zX)b!VD17|v#9VmC;rD?0@tKIi zCj2j{nwp#v;qG_$!tlgROuYFdUR)|kxjb9$4Bn zPm_j&uW96TcQlVb$CB@e;=G6EtZ@;)bGO?_ivIJ0RleG=RdO2j%$R|dE_3L_a3l}L z576!&18!O{;H%zYs5+KLj@oPx=ovETJ7*3f*Dc^;uh-HHsao1ML!#98h$(z);`gSJ z=J4Ij8?L09lUqlR;)T>C96d1!F32$4FSnAv^H|{)wPZY+J&*gVv=_6I9Es(MW1wSj zgKmn~V-_PW(!Ul*(YpB~QSm>4t0tXdE6e6^kH@V8Gv49k&6eYD(X+7rt`@s`T9cV1 zekAe7`=Rv3PWJI)E&PZT!#(cWaCTNClB5vc4eSPAZFxTv|2gJwtEbZ%q?ogkHrgdg zfQiBlSl1?6sv4|`ytf<_-*@LKRp zHah)0Ycmu>%T5j~>kI`8Mn1;b!%t!8u`IXc)>+o4exBC5<&v8tcEZgwXP|ihLo)qN zG)Xj$;5v3Cf#jNIq5Qm0g0K`B_U!Ciq10GD3sZTKw2@&JS-61fbae(ZseRO@b{pn} zUgx`3#zb>=IcdACPO_By$jwF{+^hJJJTehyUyn(m)aILPL#he*?6t#D5zAqfOh35kf1rcQ5asH4*{)H#fl0 zYL>8K|0dYleUbNuZiRKWJR3V=BX&-<=FCQmU|zBvMyoRDZ+rq(K4y3(Fab8Zoq#Vj zI?PnDm{i`q2_Iw|*z}q-D42Hu>J}|!&%VTh=W;JLEk~Jq>v)yr)F|Ulk8zyKtlO}t z{X1CMmSOn}Keje5A26#NZ9|8t|JM~zd2%BRtrFozZ8#2BI&x{DY9M^*(!$E{W%S#8 zA9mR;6w2T2fUJqD*~+QGY|wc=#{22eg=6-y2|=gO^X74CI}iz5q6*<5Kex%h6ir%$ zrp!hv9zI^KLNWPKB$MAE{JjAse5|fG8`nUx;s=~1DOFi1Wuwh!tBL!27zGAmi zIxW7@LbjFKvuN2bd@o3sH>r=qjxSf(F5Q24a3nt;IZe2W>z1(2$svL!&CB>c&l%3I z&t_NKzQA-#0m$!?fJNV;nC#sWdgryaA^xEyzUg z8vGYr3d_Zc*s7)ynEl;K;5fMx;t!V7%)@ior@C2C%nr$QHp2qF`R0bn9F5u?m z1eZifJSPV6r|9Dci&#ZT9iNv!4hOswnOs9HI5Qb$zGEv!JQ~G()$`Ek+cPK&?*b}) z79Yre1<#eGEYjBx-kpzym^FW(sKb!$bXI33%b!BrX9aHN(r@5tdkO!G&!;L8pnCp!yl^-hEAAKI@h{1!>$#cy{n-xX+v}OaPzP?Wzk_x)p-?6F8Z$1XaXniW z)fb}4 z?QP9OZrN-+y(kuT@%f^gg(^&Aks5dM8REErAy}dL6r?`53zC<9CwppN;k(mfAl7@I zuG2k5nyV%7YrcS<-tmii$=Z_~!!uYO*@ecwJv3_5U7__u1CWatgnHFj80V};jE+a* zG^<=(cRc_PtC+JjOSaMeC6ero+DKOO(;v?HjKK*Gov>UonRh#>gWDS|w)(fQWIeM6 z?N#|Os$3K{$RB_e>eq2X;T`gK#tY1N&3DwtgusKU>B6TKS-AWk5q_EV9vo{QVej@g z@L@0oGbYs1E#uvA=BZWiMI{3#uY5@E+)AUeI#ba*{Tbb>nToDU(jhHZo@wyA1jnYe zkUTUCu72yoUGGP5MRIRROCImB$TMLYIickjiRefx=6doP-f;vHbnGeIyS#j!E0&>STDK>qqa=p zeX94tYSSwc@xA~ABHnEK(Y<)}#5E{dJe>qPFJ`V{JR|bgWsF^a1%6+M7R=Rar>YT* zzEMu5J6r6*=;;D$yU8OtMTH1ZO$oyF@}_XfCY#nt_p*7L?~#?CK9QA~(#+wz4o;X5 z%~WEXAl_pm^WXW8jyj~w{cR2ah2@>_^3gHO{g})Wx_P#hkq+DR?LGN9_dI#<&R9@9 zViZVwMZgO+SG*Mzg99sTsMYGDSlP0RrT0|`HS*H&yqXT%vdn;;|9uSJ-rWpCFLjt# z{28inZ71EoyILUC)d%^Tc98eIW-xGc150=+i905qqR=}XG|i_o9cMMJ=iCZ*Z$=#r z56Pw>Hp!^ms)Q~x_+49#G&X3Nu%talplnJ$u50>=3R>kDV0|3dRV53OH8!$2V8-On z9J7wAxefQ~M4128Th^kVd+4#UXfmDuEo~Ol#W3ScdL)tmj;1}r#eUKdb|6Wx|Cv5p z^6)Pj1%|+%fM;-EGk-^+(>P_brASguS@*<3L2q9;3wxFdjUD3Ls$_BM_<1^P5PQe( zZ#B8&6@9qAvJgghd_&QD0@yh#j%dsBE}}Pk(5YVrrYyNYYMaz?70(f}wLFZTeoNUq z-iuhPXeuNnqaa9vpF407n7QABZg0{Dr-4jV*moMLV|HS|jekV(?|$-Yn;c#C^EN&c z$w%D;KHuwb5(Oe7F}snY-IGt@J!c(=@0`R&=ii2C6K^`U=LN3ojf2wIh4}ac#UOrG zU>PRLt|mEgx#O$A`T9iU1?Z5%1}M4w3QuIdM5DStxJhje9{nPLi}-xJ^W7S{VS5Gr zY<`b_XX&!S6V0?nJsD1kJ%NG zsJ|7Bj^t6PVPkkyKAQbfT8WeHM8n3PgJ>2f3X{4cP;_t?X6g@M&(2zO?K+M5LG!RD zxQ4E+*J9^;G6f5SQ^3tLmwwmd85gS4ScJF|yJ}Mou>kX9Ty& zb~Jgy`-qRnfVtrvuD~M)Pi-_J9mhpjb(9hOd{cnh-63EXJOxrVN6<<7kDx`r2VWf# zV@vqnsI77--h4Yr*b|+P0dDi)21`X{K|1;VL60pMZigb(7@o7?hjX_0;`b3cEM?6k z=KE+OD~UNo^5=XLiYFslR5>%&{21Oz#X#JHLQwU3gJez~9xeO<@~hkE+FMb$%gqMN zE@sfy&_|FTlSZ||v#DuL2i^$D!DuT5u4>LEeBe8QJsT&WbFttjJ)4%Qvmap{K3WWgRVlJT#e^xJc zd4OJFhHPrX6ZrCcD%9*5L)2Skm_Sp470#*7E^T)05!Xh7kxm*^Ep0giT zoKL{zPFgHQSDS_X$wk}9Yj7s32);kQ2YT9pkP>$k&le0ph2ktYP<|Qb{PqOrkChl< z|CY3WdrUV>Era+4%^1h`+O10_VX0jXt}xhyZ$gfPM%rR#A4%XCC(m4JGim8OG3J)E zhDNxwV5UeXZocn|V^*vb{?J?vQW@bGKTVz)|1@MZ=s5%C;N>H~B--&=H(n@(S8ID9$seLm8fpFmnB9 zrdO?sv#LC-Lnl1MS00T-_JSD(cA5c5C^6gaRS>a6jCVD;fyb}EXxn3n!s;*-=**@8 zcHQ_S$eCT*7(=UUKjM-F0T@%s4~ai(flYP>wB>z+-O=+f>HTFf84q2$t8!Ja~WHooo@;$dl4HDth~a|Q6OXCp2M zcqK?`J&sS8Ok!y>MzM17Zjz~D3tWL8mYxU!(~3~M+CPNV#o2h^R<8L?Pt@pjCaM}@O&#Z>48u z62PIz4I-`7n9KVv+M|xoInyC;x7op_YX82UOX#Js&XJIEK9a zBg^(4%pt>(owWJ45gDG;h=tE}*&%gt7H%FxcU|tsRehn@dRCFGI$%cprKbxWBJ6NN zUIdK%-Gx)eDBzP-nZlgq5Ao#daN*y_Z}8!uE<15hgDtDxDyWS1#kmi}nV)Yb{%iV5 zdhc2DP5?K2ZBR?99o}J)?Qxu2z%+tNrqcV7&crxHb4={fWNGPnsKWN3ba@LppIrjWFO5MjufIZVtBshRQUSIdtFi4@Dty{k zg)7#ag_)nDz&K(ty>;~maKX7m!XX&jk}CoDZoyRMLRJ@R!iMv{*p+(?>-45__+2;`0Vdx_}=(A(KrBL8m)c9LhP zFt~v2KevTGpX`D<{_@3z+yf9C5aR-$l)!zp0i5t6og6c{O)@TNkp^#Rh;P&7c8AD< z58sLUzGV|c?`zCZd z#AIMn7w4h097p0muY_HZFCmLhw|TFNhE0`*G%2PEhWKa2h1^Oq&>jHY_wRmeio{A_sBx9dqg$`$^!h;0BM)B=OX|D7?w%7#*%|M)_cW z*tj_pJ2I5HRc0J46-EPBJVfk2#o+8s(%ieH#loACKX`smG|uc^0Fh44XmVxzL-?b(o=tw9 zUwnU#CZ~4pIsNiU!0cp{;V-qoXX6#ETMg!MU)r@9^LN4kpHG5!@Aq*xR7R2uCMn={ z?mNoAs=}i2!?ZS?f3Eok@$du9S_|GxdbED|AZtdz?Y1`9fH* z!wnlijRaXpPg~r4n1mjaTYat zF$G?13#3Qi?4;M74he=2MKQk&Eu1}eA*@LiW$BMAnCk;cTxQ)xl1jC4G2wadcb0P5 zagT@;zx%3dXtPh!ppVv0y%*VTGmJEtkYSBzA`u-{sKXrEpSJ% zmHsf%F3C>PWvvQpQ0!^}PA|$PlS+e#{NC{b`JZ3ur@JZ4Iqp1K{_Dl8gTAmVC>(6qgW9*?Ts(;d zeyqiCCk6a&mWMBP=hBguJ!o_19-pyn7D`>bjzRWn{2b^aT{F{?iNt#2!Jjjj^AA(z zGfx6eMm~lNtI=F#xF30Km4tH!EQx(K-xWQ`XGK(}f=ACd95y$jJznDMdl?aaUzv|e z0dYc2g$^8}bR8vn(YZthi#j4=nwuK`;qpcd~XQVf1|?Zk2G1Ur3!4D zSqNi}T_wNns$z2RILxd!W6SpiM-P5pO zW*Dv+iP30t&k3LJt%cg;NGiGhEv$+XVHSJhg>c|1D5W{Tt5MhKrwj3d%MGsBJJ=0B zXGB4{S-!Q^g!z-uZEq$_O1}s# z;feHm6{6Q>JCdPvpQ!v*g+WmsygKA#;E>8u!sj?LBzDaUbfs zEn*it&vOmCenY~*Z0_JP36T9U7Ti|Za8{m#6Y~heRU1 zw}R&BrV+6_&*8tBBVpaBk<3tu-#uksU}gK)lcC9$F#C!n#JS#KFMm5?_YE1Y?@&Fg zRGCK9MrEMu_ubf{)e61cCMb9z34?K$SV7|+7*}K}ES{T&B2&-8!fj66zJ|%A&bwRj z=g({mxMD)uCY)p&gl1feM=2c_6vteqW|L3g$Tm+~?g*!j{4ZXqYpBJo`mx!gzIjk{LqM zqh8|60)EbBYzgU^(ePr}Uuad9D7bVw6g|=-h<6=fvRD0ZzyCzA7_LR-tq(wL!)DM< zP9)2XvLW&M6#Qqu2O2N<3kL^9AaUjxFtp8rSrZGeaKr%ocd?89eIUw&8a!)5j-RtB zx52oMQQ)FJ9)76nLAstZYg|}>{9(LOwI^xQah(XHr!Q1I|@H z5D$kXfYY)gcw%lT_-vd8b!%RbTb?$;eRj76QzJ@+4=Cruz&jTpZK(P; z7xOenvoj4!yu&;cJI|`Hy;~`WUOSJGF{-dAU6h^gPQ_4>J5+T2WROp{Liea(cz)0a z|BZ+hsygYF{(SEV%NoC+#lC;S*?mLo+h`d!>5x2^`ALr*GC2XNFB{-`cbV{TyBybb z{52N*$RTH!TClE_kCAPRqTv=BxQIo$95?O@9G}sJ`W3(FF;RCWVR{qhCiBZMR#qL;Mz5nN-uQBA++mo5B^5rf2GRYJ=%#! zq`!d4lYFL?qspC_rz4!W;w7~&QR7OlDq~sCb=dK+1x3cp;o36(qQVX_h!AOm;>hjr zFuD}Ww5_R(_cBl#v_QqB)x^^L2A{>b&K71kU{3EWZpJ7h-V;;E{XDZBKfl%mH9J+( z^>iI45opR;&&XvC@haTM(Sh7uXESyyrk15XE&%DI<)EM7fR6WLK+#s5`Rwf?o$pHN ziXHOo^6wXP#*b^XQ^=pWMyj&BgOXgwuVIwAJeS+CNP$J1I}S1Zs@Sys8Z7-6Dok6w zo@t2Qg4VtXr9&ac+?`}UGWVe==W=8b=`V|eaeI0NuXU$!yA}Ou!;80M(yvPH-m%kk z&`ccTEN;V!)_fH4wCD7)=VKqKhK!zfXrCm*WK`1e``tTqZ0J4Qo#+kQ8b+}R_wi2roEIxT%zZVo^P~S>7LgB(xdrzY1dB z+RRk^4ivS!;4beb+EOqc9v+y=2J!@tdVke(oC&r&W@voK&IcH_ZUQgxoW%jf2%q{~4f5xDl%Q&m;R`c1e0s@M= z%1}Ld8d;h%gr*n7nW+1G(yLc1JQ(~0MYBxVZQs4HatoiGKK&Cxd^2vZRe_$d%UO1$ z34B;vkKbSM*}^bmw)lM#Zl1%R0Td-!$72Nues|rXef~CXt*16?i_zm=&E(k_rE5Uv zQ4^j%FQgMb#Znx#j7V#y!t_~5aBfWjx@-%;PCt3}c*;gv)Uy%hx>n)pmO^~5qy*&+ z{CDc1%eBU;vjP5DcdyuxwS3oLAyiE4s{Gn%n|^e9fMRsqV* zpTnFx(%8h^fxEjVb2}UAgxjj$3*U8V!Xg`lALq-d$Q*Apjo1mLc{=#nMva~K*W&(F zNwTM`1()7eVK>tzk}oIv@%R=!?wbE5{5bImttJCF@lh16dew?;MoY0`QvwP+ok9H^e34Kl&?IJ?1_8`B$uFU}=mNtG;%`zFr*r9Ohs4HCp?a11v?nuBF7gBV(3 z!2VUG@E%%Eb|5BR*gIL8i0O`Iy)&2Kj~g*Kr~eCf{Yk*#v_Hd2%Duy=|6YIHs|ilky9zVL+``nvT%lOcas2N= zHSW1`k$x$w$A__jcrI`fD|~o~??3VVE~dbCh?HU6fg;?Jw-kpGTgi~be0;8(g+>yi z*_gm9m`{Gexhd^f@gxe}O@5)S{d4+C(*PPZHQ4N$%{1X{B3v3#z}=QrV&YDDkn`Sz zdHW|^UWJ9K^Sw=3M3a3)KrRbIEWwrBL7LEI+ z&umvPQlUDQommkBv-mmV42aR)U zNBxFSHp<({GVJwEs#aZq<42~D@++R;)?H7gJ`%y^j{UGe?+D(EuR`u#7rT=iN4LiE zS^fY;CbOaz?^pd62;H|q$NI&PRJIk~t?i{Y&la%}E#;^@J_eT^4nd7+^0+be4J=x@ zMbId-fT>UNB?tUR;Dg^{m@BD)Z*=rIz0YRccw-y<6zW5-Nx6b`|794~TLAym4RP*J zID6l?ixX6c;@)^~t|n_9-Z2OvjWaz^=d1#^M1CuX%cyhPADiQ;0DnPSXfFgE&BD7o ztWY{6l4Mvs0n2Okn46VDwN9P~(eMEfS@74wM`Sc=<5q~~?@Iya&RH8Q6Ef!&vP|L8 z7*JOc(%CM5QBh$tsCH+dOS~kw4vu58TG8N~uY+3Qqfy17o6HvGL9XE#wqn0BcYs82 zWAv}E0qIB7eS|#MF{hX4RqZR$6WxQ}%S54hW;L<;aRH4p%HZyepLio*fyTrR;_!(= z__|7j2CBY;8;4`rwYIAyZ0-cM(Rw%gn$Kq^$qm@Lx(+?HMsag(Rk_86MpS-qIs|M; zVAAo*-1Qf~Fkwt2DEK8o{6t-xYW500pGt(UPJ=jiUM*ODxC)Wm^{{)E3_ovMOU}+W z;5)}J{${31iRGP)VxlY z=zY#7JH*4FHs>zyj ze2N$9THX@8%})VKx&uEnjKb&pui{fFAszu`FxVG}I8`0)hPz^o>qvNzqQq9XWbiZG zkAi?n`J}rgkfb$wfJNCi`YWs($Py_%_ufj_cn58 zc9MxdM}WSb1RLx42wwg0qQV3}vP0wz7RjGN`90Uj(Y2RpX?ZP1-E5*#QU~y|iyLJ9 zhy=w!UF>4QLo^V!z>)t zEWzmys|j>o&*SdK3eZ^RIR24L!BN6qnAZ7~e4Fr)HoM((}n{h z=A*4wJm@wJkaxUG^|qD~GnQ{B>m{ zN(`)7lMh8K6Pgw#<3XhiI>KZNI!P~K?u{X2np-gLh&zn#JXZGp+O<@mQIk;dxhp)G(TW@G(y8sBHapfm4qCjr1yA0JaXD3@ zoYVZff+Q1Dj-+Ja>4s;JvSJgSO0dL`y?&_wTTc+`a|_q<1b-K=)im_f6MS=l!(F@^ zBEq~6H?}gg2>OP0ViN4N*Lw2vn>XSOV{kgJz>Mz4lh;$`!M3$4VcNd{rtPcC%`-4( z9-c*D7CRM{{Y~+Xtr?fM$(%&JF2!%3x1q;CF77#`&3#TAM!Mz(22TXI;wi$u!Z^4! zLxa0yv5EGMnhPV%#992ENy6HxnXtpw*E*tV0{))a11%e)tW%5BxwFZ>c-=IgoOrED zpDJ$vm(Vlt&>{e?$Y;@?ADh7a>vpue+>OfS_lp#lO=QcbIZ_#6Kh4RU!E`i2A!E)Y zq1E^)5Sm?v!69=n?7|y#ICc^O?=OVrJ%M=iIzQLb2U0rakzfNb-X$66OkEf4f>yDSV72iPDU>hCXdqL;?C@3U#86jITbtj zzHTRzpWTdJ<_cb@h@+D(59 z#4<>*lxOw+N3hgYiBY(X?bQd-w|0mwIo*lD?#k@Mwps}DFk@>(#5uvb$K>Pkam=63 zaNF)1#U$G_+13gNEW7814|m?_=Y^ir)z}@rSNGU) z8M)b(iKbFFz{5R?a)Tq;imM7JZ~hq_j(niG-tVCG-&J6SbHQ%ba(Z=YD@2>s!PfnY zpmyK{E=nH7?zdIbO?q8IG#BUj!^=^=$PZ~D2d+CW;h;nwcFsy8H78?>y>>gowOKN_ zt7SD!xVII%$y8Rp@dqA|`Gs>2T}P|!N1))%FWT{O1e=qWgR`|tu%{ssUZ#CPsqV3C zSKDFyGQS#G`ac3nmZ($W2-1FOptbuPH*_zDXDd7+^8*Laf8QedNGlI7^RuN#;hUgf z`ybNrr-qCzHfOJ_KBGvu2Bazmqd;WxMh`j2=CGrMj{noYYgJTsjz8D1u%Z?MbosF1MEY5ze z-T|rCMlumizLS2W04A%+LP@nJn4Po1%TcH3m!MNcREPpz5fdF3|)!FzhAacsZ$6?Y{17=(v zhRz?vnAwO_QgKzB&0g?}r1MUXtTk;yodIREFdM`5ubcpZC43gpeJ0CrltjOdWH|5C zh|BrDdvA{|bCLN#!*-hDv)75V?eA(>H6owBiW|kPP%~!rymLC$_9z;L@fU8EjAu(q zVa{$<94Of+c%HNljuy|y$?L+gsON=X$z@aAq;nds-8aRR6$u#h)dK}{O6b=);>^xt zJa{c0kB&a$*>CxJe6{%)?<2^b*tlkWpM}#$j&mWi?I&IiS%6kOsp!!d1p)f+>4fQ* za7F50-Us{$PO402jsNi-RoSc5$X^AtS6qa}3#a4Gmw!pl=Wxg$=o5-1DsUwhOqjmY z8uj~wz}vl?=3iY7v3dg}^+^om@7~BfAC(bxKNZ$}>j>xl#s{qbWN{}R_&~VA7qnU< z#VHj&WO&dh)JaHdIYW=`;uf1`f%b`2r7g(;RfCr zvt_|1dU$z<;NGLZ#2~Gdw5v?xPI*|DzPF#r&K0S`^87iRT>C-hVKs#_-CvC@FPAgh zjnnboq()ejc$;0Hz;^&%Rp7ft!F25jbuun{9qT!@2fQS&aGOn>G5)j+w$7Bo>QkAx zSi}irf9Ip*oZG@V{_>og^gM2T#|7SbJr)j<4)&+HfILi}h)?8h!}USg(%(61+(pe~ z8ddH|R$o|(;_H>!lB&t*MKlCC?sCG#6L%1Ie<|G0MA^u+Qh~+N2n;jIV5are824J6 zw3M53#k&ik(Xs`br=JE>IX)9G_c***;?FbHdQj7&0p&AQK)>b!rLLDbJCQ*!3QWSg z2k+6iU8OK;#9t&$)kWTO7r>4!J5aj)D%|Un;*O6UX*DZ1l(ZgI;XG;|0J`|Yb%_h0 zRwn_Da`~_zFckCqB-wH&j@otkW9+SAsI++on&0$rqx5w6tQ|%r>zc{)laA0Qe;!O< z907NIEpGFk+ZZn52C^4t;TO4bT#|8(yxov(t)*wo9b45&jYW?@bml=YT`9>vCf&#G zX?b+Y|L@a2p4e_-$0D%^gU@T==gXUkS9duaY3ErS;U!QZHJS~|%@c|Yl|x`<5y|nK zfc9;tVf2I^OxMun#x|J(^0OQ@tlJDScJDE>PUio3TZM-q&e4e;nclcI8Etb3(^M-o^tgm)KWW3=k2lFGZYhLaR0I4m zRq#ong>pU)Lz3oK>O(1vHKxm-d$e(u#kKy4ZyaP&EVI53c4pY z(~c=8ORAz8aQ6ri?sYx?1XEDpzWv8BRaaRqZq0i^g|;a-qg9DW#!G|7^Av!_OVnsC zCATVH$v(4!@vcq?A(Pw zRF->B4sWf)GTjT%YeH7R#kaDz9U)c?D(-)d)kEZDc9O6=Ch0Y!LZaiqpRzA^%;O$?|__G2Ioz z_^xvhAyb}vFUSh%SeR$*!-;3bqY$21w@yp~QlaZ|k$wKi9!x&mZLB_dtyPWWbi>^g`;@$*g7KC-|-+%YIfj zqlV#Ztm-<3j`3H7;x-4cxV4^2Z?R(E_*~$?>NDKF#TM}DmOXa2uVpdk*5Q}XNR)6e zW6te+A%*{2DJ}|Q`r`v3AWNG~slF`O5Y6v8+HbO<5K(5Yxd>b&q;BvD#*AUfXUh+_;yY(v;26IMj3~riSj~>DCwsS^#mLBwG~zWSKXI~<=Az7Yp$zQ z(nL}rLzGNS*Ip-)%G9Kcku=FrC@Eu!hD0=wA)>nW+NsD;Boawc87gCR3yJr1 zdp+;-J;QO_@A3WdeBU4ab?)=LT6^ui*V=3N{X!JsM5Q=c@>L17_?p|tC6DOGv}=&~ zwTgu->ciaAU5TV&Feas0(bLAq$d>c%Xc?ry)i@cj4LxoU>JSDBZ4s>Hk16ch+|lqN zzJ^-N9mlNG(?}1GF*o4l9`q_kyoyyKmG*;JWU-RI4*7z@kM)=*UqjCF@j$zc1u#A@ z8?6$PFgwr!B&XQ01D3aFMhRgmlg@#2=?1JWb!Ydhp3u9>o~*h}o$br`hy{Vian`VG z;rhw(@R-M$x><6F46i7_W$ZG@z0L)t<~^t~D-vVZNrJUkA&%WHfR?!-C|})(x2kNh z=zSPk&+AKL&vzlroR1Gf4>K`~H?(_dZ^&%sWB+`NXjP&eQ;EKWy#mzOVqF<#^x&?@ zz_bh#@=r1wzW_XOT*xHf_=%P-+as!1Q)T<^%tPAVg7!6g@O74>C~^glu^G{a^}e|c z4b%OwZ<{{W-%`iir0x}II776rM3U7{xe7sVhcRJbDNG$G z$(^)_LphyWB6u(4S~l0wXD{CKIQmK~Gwp`xo9RnfseKe)>O3GDf^_ldXC=m?jnn0o zk|1N;ha4(d!cxgp=HhmZ4!JuCmkie@lg%<|&6`NPA-@NfsClvC5Bo&P`&)^poICTh zm0}s!a`8ji7!tL$7dzjX0!}sa*~bmNm%`c8&KN7T4nuFDtlJ8H+2H+Oi30 zFR6D$C)s#cndGO&09QMd=X||ow)kc=o!Nbmq_YV8+)I+RU;czD$DhEPz^4dWd&wi! z#V}BFGIyhtg42zy#L8g;u#is>DicQIXPshG_&V=1b0) z0J1rt$XIiwCAXgO1e&^sa>+gTvR!q-GDC9gs}wr&+<#K?}I$D<^XC z^NX(DuEAnAO0mF;(s=k`>^;}YYw+{-a)@MKvyAIufw``)Ta ztN(cJP*fOk<_biqHM4}R^2<0XxgT%J^8Nm4A&~KE3YYk!4V_yo(Wc`PN`iL$D`rEMGvAfDSoS^=7i3uD(pMK@sD30qPs}CSQt_gMl6CmM;0-GoJit&6uVc#@O z*m#!DW1hVR;lW{OS`!PMiz%q=k>|9OPGR!8Q1CuEO<3r=5o$Iz5mo;dbezlgz?|p@ zn@(B*Bb1_j*%3XAh;Y>MK`Dx6KN-TI_0o6z3#P% z?tn5fGVV4BI9?1(A}7FgyD}23>I6!624Q@|Nus}Y7Or0@%k&lvCcFDeGVP>D^jB1& zLJbYlKCS^uLbc(_S~v1`vk|UWtc5UVBlvOJmb_VzgLVQ7c_SCP7nrY zXaJ1J-icD@_M(k{9^QYqf|@;yfMOMfWljoeKww4U<4JABN>(kTHC<%>a%wilAdJJ8Ql8Rx(!y5FW1n*EX?*p26> zmlbd;ObapV*(PqpmLhbmjj`x0ooZ2c_z}$BJsU{UTax3r5{)*e@bjj~Qg2GITfrKf zWz&94YqteEzP820<_dg0KM*t*FU13wv+0LE4)DElJVp$20n=JO*SE3<>#P7iU2CH6 z{VLFMLnkT8Zl@VfJ^%G8q!Ajop2$v3=BQ>P|$RWY#j29YImQ4=rPBT zX&8%CTD9@sIhJ=W}X3@_>4p>-Q6B#lnTogyXB@|2`W zIoC+?O(PcKXhS|cOyc{B45wQXJMsaBOsM?i}9-F*5nSNbj*01eq>`b6aF^ zWW^#3zN^cbSSAt$Pce9$(8A*otb@?SgCMXW8hu)};`Q}@xZd_E%y-xU3)kL-r;dHF zXR8ZtQksIshcBSzd=olkSFR|jaut}}`T-B`58yu7y@z898&E!1ACK-^13D^}OiZ2c zHy--{U9`SZz0`fM#&8Te^@;%nwZr(qc`B{fF@nkZZ@{BBh?NY{wY_rybP%OconY6!2J^h74)j4*J}57^9-iO6t_x!6-ZvgmUaEO~GZgKs>9 zn#2+8MZPy_eJqQu4=Uk7AP2{$&%+A}OJKB}IICT7k5q1I1{HxRcXC87&hPoaW3IL0 zmh5GG?Y=6yYOBGP^dRBsJ|n2hBr7cbqZapVD?+nZiX=w<0Pa|3gXxEIQTN3?3&}D4 z>9V_>aQBH03)9&L6O;Ko{q!%Q<{8ys8?XZ3#%Ga6IXC4T-Z=HsQM6`(p`AEtGB zh-|tq;#}Y1VjncP(}>N(^&xnP8rdB_4Gi~|!y21(;_%`InV3^ds>2t7NKONnl-LllqP1Y| zlf%9bNu-*!c9;=m2v1rxxtduqIIU?Cthk`fj`F+`Ioax5bnmyK6?vnnmpWhH@X#NE zydGPKUJpjWofUM)8C$Sctq0Ko2@=veMR?xvooEAp2TORlk=FT+6`s(@p(Ffcir;$^ zh*$JS*U@?47}!B}?DxYu<66*KK#UOqBt}kRw`$wYr^3$RNxnC^8_8h>#H9A~g-bK{e-xnTdy&x9f zb@)!ktr$Pz8~ND(7RIgD#fdtpaI~NqQ+b~$J#JueT*qYAM|>`>3*vd>x+j3Ip9lt( z2IJO*K)&aECupXLh>RY89^NU%_BY#Tob_l@^70AsdFuer`@SS~gFG;=Egp(nuECj< z{tz{B5a`;Ng7}9n!o+zVsFUC6XTu3Bx#TJg=kIN;HRpuy)B16nYL;0%<2mOZjXF-+ z7hV*$&+vd<_vh0)IXWomR!S~d=irl9QBdyGgv)mCqy3ai!9sZ(9!==YDcJSqHuC$- z@ydI!<;JrBeRF1RU{4pN?n2A1Xpl}YVa*NmFf&3Oa%6^5i5Jc=jnARra0`$LI*;Fs znqY1F1~^u`gWSIA3XkUX=FDza^10Fukkq=0g|=-%$qa&Dr)3b+qm5L}g^$fV*-eya zDV28X5;aer4X=hhga*x2oIh8Ub5;q#dAl>9yXhiX^Y|<{)vtsX(K48wR0!O_)A*6| zCvPQN&5xaX017tYDBP6+@vm>t(`hUDyhZ`eRB|Q4sYdXyCXUZnoJED6ZRAkz-E{1l zek8l@x=>WTR%qW_5ufO9u(+A+MXuOhfhN9=t3KEeMy4lHovsmF-$yt3eoP@sTzw1k zHu_Va+h!CloDVGaskYjVTj_gKEU+08<})5v(sVKFQaKM4f_qhf#2( zaw4bhGY_`fWC`VxrMNphXV2yZBF2vYL3LZr>2vQW9N>HpJl+@J-qx=mHCK*19TQ6) zUdhC=(X#A)*nPHl0t55C3y|}aLqWoPT6(yP1nigu4>mJ0xV(xi-#H4)_rx*R@K?0| zjp1;c?}gvjd5lE$^`aB!n8TX34Q$?7TQb8t6Ky^fQAPhGlr-SDhM=?LNIw^xXWu|Q zS0}-m2c=M%wu?%pM8nyq4otV}B`jR$LbDzg2s__q!<=AC?0O)HyAJoj)P_Nv^NEe1 z-r7Z_I+FPMp$DKp$BONA5yPojLO2qx#$9MNfw^z_`uo6mQPBcPc-A8ZZ`)PO7tLD? zF8hy()=Yj)w_Lr!O#1g>7thr}P{?tVII&p->i0ppZVMzz?8nzVQY?E{9$0t1hl@wQ z!YSAOtZ&|T^0D}aP%+@0P{U1yJ5uk!Y~%fKkSO#YcwvOJtaEa$CbT`8^_IX9f6F;;v7*q9SV~M(^;8Y!7j2|DAtTZ zwI32(>xsFrYF8rq?Mwr4J!$U!oC|Ou;WLeFPbVhIK3L=6E?VKO!-TCrPjQ{TSLji4iz}GrW2MPZS z2Xf!SaP)eAkg=JMN}qc~<%J=5Q%Vlb1{J|lZ5eFyio?RWD%|YI@i=q$eMn&i;9>X< zI_9SHJ@X1wcexvN9(j|BMSKu$3FmRV$ECv#RYgdT7DBLL1Wm2F1NX+OvVKD&alZaE zy!{{>YIoGayxYm>pncmMj@jY^*Zp)PU$=dwaR!bb)rXyP>*6^Q<;dMmNp3TrM=o|v zp#r>3UE0mq<+IXckpq7ZTK5JD?80f@1Ri52^&);z)N1;0`CB0@^#;RQgKwg_Pc=tI(%sy)1tcg6H`1LS&;ULbH z=f~jF&G~Tk&Kzp-+#WY6mK9kK(17C1*|eZ8nqHF26nURI0kdp-lQC^8P`3LnM8CCT z=WORd2n(?&+z|&upGCmK?pUfahR;j8+lr*k1hjFYEw~LH&&`xhruTJZxZe5Fd_85N zDD{;L%N#xxDrat`NiDkUQI)Ak@VZ=WA#VrA=jt3(pImYABGb>|C6u+bTR0&-b*=T2C+YF$#0S`(@*dx#Z8? zIK%WEHI8ut1N&yE%4K0Yr?g+hy@FmGy;wsh zRv#yu4`{GVD{an-_D2$& z_NaoG4f?Q0Q4+;og~Gt&E{yd)0`j~@Z4$wRijk7^<``Ev^5Tu8MJ4?Xl?J`5Jk zKsnPw61ikH<~PNX>BD^>GO<+XB7TfE^YzZV3u{Qy$R{Wh{906i=ix-5oX~TMHnYlT zfg=-QcdZ z#@@!*@O`%8m>a$rn#2oGnddCF4YWjyj6z(YI*^(1T!F!xJNP`hIXf!whf11NAdv?I))A}$h-G@1E zlHl%{Bh;>mglAR{!6DNI*HtItjfasS$Je2X?dc1vE#-0lf-54QUFrBS{52j+uAl?E zkt!ug;myAKVDeE8o6k|QP3;}DT17zh!IdyTm&cA1y3q~t??ei1MXX#Ufi1&TbiwE9 zqT1D~AV&Q<jf5=1oYt(u;iJ{P2gd8rNLc zg2V3>z__9;Aoq_Dvtk3>kT?Wdx33gF8h(tHY|VoGP1`_mrxJE-FQUu38ffFB0(fD% z8NS`pgWlg3F@dxi1hRwhaZCxGIJgKS0C^&YJ6wr*JC{g~A1y%nD7>BD_&+QD|N z9>5vgQh`y{*I`ZLS@>oGYH_8UV8vR!yb3HkBdSsYz!NPfj4EX>__8Rn4+a@#~r~@vYW6)r4Gd1Ed zz4<^qb=j%PwJlbs?sB^=^6x8f4k{_4aOD^*02pV?u zVz$yB@UneAjh!gRnmXGsQkTCseJr3x;m3v1cT92AB^{249l?)2IjG?khB6-w$ffeT z!s`LHbn;QYPAOj#3y$0qCZ@iDd$*NogZ&RMJro9s7pBpqxjr~;Za;u2uFxxEC3$9; zg+9&sFmpg0c?m5=j|+QqSEa<6_2sX0q3>>VeXAqPnUYAePA|X_5AyM)xdJ=YdJJVR z7=R4(2HhJf?7qP#c&NRAx^0!>MyylBX|_NQhFb~iVnflR=oB6HM<~v!7!JFyAA#Uo zjx=RJjk$Vz0NH810wP%rzJAgNHVTBO+&qBu@+L5`z6-?66KP#y9=R=)1gaK>mD?Lg zb#g6jF&V%$^x2HQ@fV9s+v?C}VI91D7DBd3X|kT@d=J*d@8mP|5p{$XU{ARg%k>vy zGwTbnB=nKUQ(T*?6_jJc(!Jm@p2zvfGl44-z?|L*IJF>Pt9u#5h|5k=7Mm zd%*Ni@l<;rqbf##>yfV)50t<#vs~1v6r%CYFm_!R_+Et{cqHzYFzT!#H!9%*Mz1d9 zaX4pi6BT^%ZmJH8d@hDVUn?=6Geej+f9Lyh#F%;{-1WxFx1rA#}q5*x2q3aVzJtx<13WImRjA znWMo>H9uqGxf&FArdZr8$9-8?3nMP|Vhgn`S&~cxq|`?i1sJ^M*+F`6LFFCzq&^T5 zE$d)PjVgD3-Zh9zevd<~#F<*iFt%&OJs96=#7RySW6Mup#Ndc{zH;ReFv%i#^Qsh7 zmhFO$*j6&YS)5yMEZ{mpxT)VbHYKH$6P2GozakBu=eY0}Y;a6w;} zb05O928{|Qu1&+a0l{OLen}(Vdn>`hKd+}*E44VcZyMZ`{G+hS*@Vx6cVb)7M6~}p z52k)r=NuGHLR*9$(>}2lA6C`VyAILx)pR8;dsa0Z^-$)XbPzgYR}qX?d}{tCYcW^; zQGqkC)8w8_NhMZ8CvdrAuR+Z7QW`Qc8O_a1NzhnD@@(ZaPHRvcw214#hl+umRZ}o3{sQhJ6Y#KQ6H2QN;=Y##6HSXI{MI&Vjx|?JLE$1V4a3R?2eSd=x9Ha|P%1#SHs5%d%AASJ)vV&ApVi;AF;ke1y#dwg)H(mAmmt`(2lPj_f_7UhFp_2&xd|ZtU<7R8ZwkKhd}Lw0Bj0U!44<^G#q_HU z_~`ISl&c%cNf>MLnfh{U>E|qZGb<8eGmN;DuM({Hd`EPWw874-Goni;V&TqPA?KfB z%GDk0hfaA5Fz@q4{`AX*OgSU&;?(b$lV}J|hs{NXeL85$rKRANwOJS@eurrHUdWXz zHv_3%OJ%(dL2l*_*l>I-SlOqLB_3mdKPd;wO8z`3O@1Ae%3Vb-MTJlEuzXn$#%LDf zf?_d&g#Xe26-9x9teA?dKwMUg|LZ@9uaIB8!pA7kf33$dBd_4q{%Zq`eAc?JUgj3y z>*MDhxNfbN(KNr+>jG!5_VO@V;p^wAB5;{K)yZv|or8-r|N4ag#p|oR)&}?n1bX=e zsz}=T`*{sA5a|8S>;8Uz!AAaTeSLiW+*i8!`Fnb~`MIz1Qjzlg`TI+EiwR`hJpz6G z{r*u3$w3nZ#{cu3el7r2dp-(0^2lzow6$Qv7rbmfz&{G4{7Ulm&{s6oQ{p@Qa>T%70drzp9Y2 zf3J|S|D+JH|Ev^$RUu=4Ddgt{8UI@$zc&c)%>Aj9|Ewf`RUhMj>*F%NL4G-){GyWO zmzE^I%P0M3h4`!L82?Kh*LijP_80%o1pGfB$Y0fl$=_?^mzDcFZAkwAp$(H?+UO^c z{$)x2W;%Xa7PF~=AWKy7dtBPFD&ZRKivZ_PlvVsyo<2vAN>TCH{yc9x_=t$fWI>^7P^14ZMuQ( zYkj-|Vc2imIqc7IKacQ#J?iI^pJRTXjsI%Y?{ojxxPSMpUkB>XF~9fqzxvkiBkR|= zfA_6lhr!P=zgOkI`quCL_G{d~`_`|eJWTNCv{~r>k8361=hFXAmnA^(+wb`A=f8Xw s!FDk-!PtLtd;U>LYu){Pyxcr^uPJb?yRTnhfQtCW&66bsy_8k{3-&t;MgRZ+ diff --git a/models/deformable_v2_transformer.onnx b/models/deformable_v2_transformer.onnx new file mode 100644 index 0000000000000000000000000000000000000000..33ad4b5919cdc664b10f432ea750af5c2e13fe53 GIT binary patch literal 405589 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 $B| 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 *rRRql70;9)CK#>vOBxbQ)x+=JISa6Ul- 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 literal 0 HcmV?d00001 diff --git a/models/deformable_v3_transformer.onnx b/models/deformable_v3_transformer.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b2cf8d6b409a7b7ccb692d6a228054843e6f151b GIT binary patch literal 410235 zcmeEP2UrtH8wLb{pd#3@MHB_ZK-7v8Y09aX>kcB4 zM2d;BmpUnKl`G(eNE2g3i3yVU1nAY13%Oxr#zYZ`(lA+6tTaR>j_)IpL3RjnWMXoU zvZpioNCNqyvlDqHZrl)mH?EgwPZu|Czk%#uh75BFa^*PWx)a575G91g#z_+FONG=^ zj6rcrVL}RK16r9ON(f^>t3H-_PVDu%YTIFH`l+Uh}VB!_dyoa(){IM zl&O>Mm-GdK|GfgC`xEN%>j;KoUAu7`@ZGphp`t#~v7rRFqQaAM%ZR7Jve%W7@+uk8 zy%ZT*mYKnqbYpoJ&M5ykIjD2ef zgRkp~_p}nlNfrJ`@#b<3Mj8_(jS7pEhKs%2CDH*2?okP1F)^@0$(j#!C)Q(RtkjFg z=es9F$s`Sk!Pk!{`~-L9Ds-1hHCmos13Eh0%i92_;w7@gcqz9TPxWc%C}~`xjKw7N zYES}{atUzKN^)3O;aDn+R6d_?Z>@nVhcZg2(HuKkcUB`=P@*nmL>3WZXs*QKfaX}O ztAaAW4F#b^hXhI^(%>e@a-WdDs3$sUzEDVE*L+_+Y8`o3Jytg^Kezb08_1uo_}Zz& zSM$q8g{)P`H`JzVNu>mM*q6}-RT1BzoPjkf;(x=Q9i}TCaYZB@`nSc3i0(=CdI|a& zEm{%3km8cp4CqLVo=r=9tAxBPTJHj-r=p=nE8-IoT2`=4n`LI83jUA&pP{Z$Oa|)! z>dv9oh}F#2cRGj)4_)ycR^O1fqVT8~7tYF(oLn-+QOTN*eM!aRAu^^iYE=gX#YJLt z1*>-v36|=ztUxIaG=lVhkBrR7U(pOxMn(!PHoD`~5f|N+AR^w3B1}S-j*mg0#H~P) zDWeh@)yx`2#UPfFpQ!BDS4RH1l#yp%%EbTOjh9N|6*HMAjgs*? zaXwq*QaPR+%Q#7VOrlI;Uou84i%E=Tb&l%5v1DtptaV~^P^_+k2`wT8qq+twB&q|A zib?ynM)4H(h9J*(Kvs^+$yW@*b{$7$F(1*D*}CsNCb4Q&dP!2j7AiSiE}?We`!e4I`@S( zybQ*zBNeKJtO&v9mIHo)=2p2}{=L#Yd0B9J>P)fH1%@#>);&>0W5dKUXJ?gfq0kXJ zA$2lUWUh#x0m(bg9kTFMMkhyi!P}Q0Kj2`cT=nFgW68#`Qu3NlHY!S20D2UW0FcYE z3!l8xEcxVbMz(ttG5G6TodD+4{MY(mC-Tuk!oJQ$w5vOWbyx`4Yh*yg@0r(XcPVhS z+o)DMxd<7-e{q$+vg9Zhv6#n7sqmcOPRqEM)X*3#s=YSUe- zqC>RiEYZ|z>?L-sffHB1K!sddW7aAa@S}p=x1+_%ee*G>L`WhESnIom^dW_aWJ(l% z8sCLmUlq2KDJoP&aj^-U?G_x>O6FK=PTH3chljIH8+oTvW|6wSSx6E2X5`n|RZQOT zI!UAnvGGB}zUi8U6tQcjy*Tk}#^%3<UresC3cB&UQ__@<;eoPmoC72{eJ-7 zi?vyFf$wJkcrSg^#q)cc7j(y|v;38hM+NcT9&TJ;@4o@?US#>7D%kGcRIC7=D79Q& zJqo)!i5C$qmXQu9XQKB!T{s7A$nsSbT6u9QM2iQJ9x9#(Pf8la`09Rxa=A_`!%7_G zNz#WEALC%F3M?tUtUTdpAFO!ahWt$&9W_|2=)!Wf<8VmTcS58{HYiS_>OHXISW4m& zqM~D^71r*r=cnjS$h!sTqh5^qNs+~<+2IyK--wz@!$=ESymFxK`V*8##9J{&dkwqOMtN`hfA>-A>vcP*1cDY^dac;06HV zHq_3pMa85j?@c3ynls9albM-jZt#P;{SP&%R3G?&0;UdZl=u3&VmBZ6Bz+euwtsELTaOR}iaCA_aHA)m^w2BU6U;PB2m$xPX z_&^U_uM}T!?cZ-e9?;4r$AWcR#YAfVmi?nTnRxHpP`bBxL#f_qwE(Idyc);|M0`)X zS)uC~^(R#aHno_l51Qn`tV8;37iY0}`HDn$17Vxx23y3slBf}(Rf^bF%w#m+ERda2%d z1^Rydww=46SlPJ-j6B40o0We6AVrl8@-C$BpHHw*g{LB7fGAQzig+QhLP+%(-`5~& z=wG0P>R@Q0s-6`Y6)w1RZobiZClprhf1Sk0_aCxH?_06qQg3@})?_6KEfpDp=Gf6% zNv%cFU=r7I9CO9_K(j!Tz!HI`f#wTMErYNgv}`DL(4rX$i!SW3+QSUm|80O-T>Jng z*C>cIlJdv=$i>o3)on+)GjiWeF_!CkI-ar$4hYcbc{>I$^L<6SI*~)ob2B2%52H)_ zr;uia6-SFOtP$gFUy``Z3K}(4Q@rXx)8nhI>Qgc|ZPUY;6~zu?RQJvTjOu_8X32tf ze;Zro6+djz4uFW>nEYX-zmw{dg*08Xm(f8JjnpecCmy*I{D0Y4QC)eXd#-5j_jzC&3JLGEgfC{{|c5doZK0<+9qD$`>;{b6XjO z#SBG~&S+=+m`Jv7(PGAV5>-_ry}h-PMOG2wV51+JW8LV79UJ{HA(4*~fo6)>2gyzA z@RzSEc7BOw9IUCKIaYcnd%x|SEG&NBiQX89z!gYiq4{tjeH6|2a~U1#r9%qsN!Y`X z#^NtWJ2V#}Bg!t=RheycRSM~<7`6$J>QO22Q&bIH39%8f7;%zwe?qs^kEeMe&g>)R zx^oF{NhB|!f4t0@EC50uug>^ui8&6Dn5t@VkPa`!o&*Y1vA0qYo@o3R^`WM4skj4) z`i5B?Q5|YRsQbPRB#Vk4kmwJB$X$UXA?g_@B#`J|Ove;aEf!K_q**P0+Zs{dsu4#VrId{;?2)5oN0lv;PZLV9k9Mf;UL7D+9Vva5J>NDp<`+LxgMBQD5fHf>oOy)R5gSR_ScQj@l!*`Dl3i}H8e30PmPPB4wteDhlER8 zs~BT{5*I}sAywV~f6+xLY@}3w#&qC=6?@{NuwjqCA23y~E&?U93yyYtDozA!KUFoY zVb5%AqJnkWSsC;Qw|dO+h|-=639?d>*}1zJ5*|>2$uc~ zWnwxb`OgPS3!R|VOk%EZsao8XoiGOI0SmN4Y8u)hn#(8&q>KRagEB5f0U&p+IJ&T* zienIZiBg2YK0zFz+98(RNK^MzLB;H(VpAvUvZL6=J9NjvVu|i4jZJdo+rG?-;^)ic zH58)87v%5MWSTnZeyNbIjqXpVr%=a82_w`C5^cGA9`qPgfiS~0gc;o{8V!{n=kpW= z&K%)z^dLnAG(L(>8Pdb(_*k+@LBX`H?DnD}HD!)| zTV2q9re}Ot{$R9JLt&kZpXa-)(DWx&2ZD6*LceQV@$B+!8(01zufFkC1%g!rL$K0Y zCpwMe3aX!V1vie5H#UwJGNEk9W}&1dQWMB2o~|=-x_-9S?-LvrKD{~idh1HR_uEUq z_uEU=`)vf&gnwW2w-Hd)n?Q?@N^>t2fv6`-X|7=R zW63kN>RF`Ai=9QPyj9k(CGUUkguZqF#7_Da7jPO+@LbGOS7|jV&cN9*MBq z<)We_TOJfO8Rcg^sCicGphjbSDhTCBX3xO;)hC(@R z${9vqxp3H-PwF&D?JGw_sA{T}&zi7P{z#u$A2qbBY2QsxdA<}!535;sS+OmGBHHMm zE83_fsGMu2o4OcpM$D)_5~++#>34I~221*MQtT(vNl{%MLBLKDuOaO%#Lwwb-fDh` z7ZH&M+J?nSWn#id7|-h{>7PjMJ4zg_`xTx?9$#X^Wx;x+mTIaW{a9Mi1ha2$M)IUs zWkd`VQeIP}KpBG%>P?H{6Ds=P-0YX%<#-pCJV<}`bud~B;385O;1nlP!6qRMj))-t z8z_nD6G_^(4gQcn)6o zn1x~>Do$Xnl_(vc_A%T?H%c0(EN_X44Nr`gI4ci-q!M9;M|)F6z`1$36st-6bpo%7 zb*~?I_0|u(daDAjM%}^!0~?#rM>nHx(Vq{3o<`lG@dk{#MI0t^mn4Z};-V$)10y9r zF2-xrEquOvLX_;E-dS@}DGiUPH>+g=RQ`&u2TQ@#Bx-=j$5+)UOcpgjxx)*udDGy|?tLWDiL5SByw!w_{zG0$t|`&@DZ2APG)aLSEsD<;vgS+o zGP>>wtLWWwN6fnzxC6Ru`~H8)*WfD#tGEF&zVik98QYD1#?K!VDz1KpjtFXf4S&8N zN33Qe6~&@e`9E%4aU3Z^Ns1x`*b+#(HzIgCCtNrqSbxLUgVh9lRueRhj}ZCzIhG)= zK}Jnr)C37Uon@#{jz&!o9~Q}rl}eL%x)CR%CQ!t(3&DA9^a{T173hdyk!ykpYE8gb z`3Am<9Y9Gg!&kinXhTw<;uD~XG#NF5Q6m^Ng3&iH#))$62l-FuApQ}Jz($LF*JeB$FX*XBX$L~|f-LoxyIWN?IqBDnxt8GwKv$wJQ-6uIInBlj4n~ zx&d3GK2(GYUOI#eEMv{jK)9f0^wKg3{G=PdX$L?o*#bA0RWu6c;^_K&gbRuvB)c`K z`4)U~SC1BoZ$Uu^GooM$;|E5*g@39j=p@U#;HBYR;PVvSzWm(03+mH~jzxRjUS3Z_ z-UZK}jCX<5w*Td>;yl}c*-6TyR9?S>Iyf)h1vL@7(g;yCqU?&& zSfeVg6UDxn(+cKYcx&ABu5cLY>us<GZ8oX-n3g9_|Va?|Ti(uYm*i%QT`1~){$1TY^L44B7^L^Xv3OvBC^ zGWlxAByXJ~U2<)dLC6SHc&gYClzp$+8rRhaCpsLWQd%c?80RR;xaq4Hxlfc*Q$v1$aYwW~PL#14M_cI;q5v5Fli zdA)RpKy0^J`P;E6PO7mN(umc)kdE`OUNG7XQivTwJVU;3&)iW^{{n4P2SXcGb-!d( zxZp78e4`6rye-oEWbb;_!?d?%jaHE->tAb*b+>sd$1zu&4>Suj2`oW2dNcp=8@>H~ zXwi&>MHlv112ANFsTy(p`tVfwWo3siiF@dA`Y$ei0F!GJL>lMjk1=VcPMTTJ#~H7l z#L)>8M@Ney5~YL=B~}_D6UX?Y8F)7O&ImvvoNDNRPJHD``ZXJulOO1b^t^G$K?+$3F=*9bLDQodw(VEg>+Cw zBmK%CibrmvMNlA`R5L^q_0u6^Sz55!GTdmk6w++*HOM^lcjNYR<0^t_By<$w(bG-& z%4c6mcAs0D>m2IFm8t@1gkn|`M&sm#89o}!P*Y;E&y_GP|HPP~W=Gaa!cSW4p&h_? zVn$(^jI|fa7c=-pg&7LsVIyYzpbdb2JZAW6FhgBX%wh&f9sb0aq3$WsO2U5yGYZ@P zp`EFGF~eZ1>cZL?ina|SX8aVGaf8HHSw!&G-SXbkV9R??-B^en8w)W}Y<2E3H zkOl_U$6wj>p07y#Yc3>GluKn7?6k}_IxU5CTKo*07O_kwB_4|^0G1FNA&U_wIrrxV za{KW#&%~L1$Xs_Wq1ue(CG?M%srIwcI52M9@TeF_76Rv#7Gbf%FUJsC z9d!gmeW)pFlIs;Utt)m#P3jwFgC43wb&xP<-?sr}QSk#5{Xr1fo0&hNBs-~RKtHbf z-Eg9RF&)E%#S@aY(FLu)?bE1l*9a*;E~xqsK*~}ADe6bb##8<5Ey4+(JD=@$QNCAE zyZ_jJm%pE(QQj(xAmshey}_t<07S$_=8qgwC*`mU2^-q0=s<>gL6A%@&mdy@SDIav z_J{KJj4<(2!^8nAjtUg)tyx2c;6oWDca!GW(Xyk;#&Iprrdz(M|CuWCF4=k}$eLnj zf@lV!PQ0i_qx5L@eA@t-U;GRZc0`I15cwOGKZe9QX$D_N9MQRy4v;8CKQAZdFDG#| z_h$r>pBhNkkp!;hS!&`XBpt)*9CbQIefYCEFzO79>i++24$SoYA!Ml9fhlYzMt{b1 zKt!`#hzG+uGX@>Fe>uFWUS9-GW)~b0`DARuEo4N*-yk9qtK4YOSs54!5#cTzM(dyG1y#Kaf~sD52UX1!Vbz~2sH$$+*93U}MM2fc`6Eb@PJE)UB_MiJ zrh_4BaaZ=x7$j%@Mo3lB#cu?VAC#Xd3IKU&r5h>rQpGsDJnhSf5~T^^2#H8pcF1=q zr*vlYPZm@Ne^Aex$u4%@jQ&Vimqz!b#x^FNyet zbaixpL_LW*P!kp%E0rjAzYbBf>ygGiUvGmN*1!U*&KwP^&UCLS;u|sN$N4}-fjK8Q zoLumtf*pTv71OD|kACyHUx3EVd8h{~SBo92Xj(YQ?r?p-xBJ|Wg&(%RG+YuPPK=fX z{b#z*N%SZ`Hqzyq?sLCF!jb-@>Hv{GX6W*g@&FcUka&DSe{ESO;b3@`zxrv zymfdky;TTW-1Gj*+h%P{^8V+}`)db445e@KT;__l|9zfIMV%1a^zE0sNa!!8{*@1g z4CAYrf%T}n`Rz?(i2X;~d)HWgOYdC#mY#X@Te1x5y8M=2hWwUZ|80KDyeQW7Y3qXX z;66iH+Do4nVE2j{W{_wYbY^uv-*B_aisPq@(9=|K`K9f%e;2) zQ1M&ly?w{uo6Red=c`@vsdwSEN_=J+KgFVZJYzZ9g%0HI5R1?eeFX~vP z7QjUc167AflWe5qk!K`R`G>qBnSW)6C1nAt&Vo`p-3okGElHk-ju-AvX6Lv?frjpS z3j?~`Cb40OF%qdP!F^zCe7}S^ahT+v*oC>@~wm+ppfncZQ@KR_q&8WF+s&=0)&>jz%_|A`%zjJk!yPDNqyQL?Bo zk+SY3f-HVXJTF+%r&DY{iL_I^Sel?Zr-bu91Z9Y+#EVaeR=lWjpKJx6_wVR2`zwCI zAXclDgreDD$*5a&RE<%${6mV+s9V0x#?P98T7_2xyZ6n|?h5X&O7HmusQi@xzJraj z9IFZGL-Qw_Es@ut*=8JTsW?WWG?DDbnh}HjuOeC=$f)ra3h{G#0IB(*LV7Ahof+UO zf##?IVg;F=c4u&rLhmVv^c0(os-qb}{~PNA|mp4%N;fEX5bPima!-yEH+M(U@s`3azbzSJ%tO*Q~D#SyC-8jU$D2a-RN!n z{GlPOjim+O;;{Fgju>ih%%5+_yd5u*CB{p+&6I%U93_oQBv=dcm933k^x#ia)z)jL}ap>V;?t zVH?+Xo{W0Is29RT9fI8xViV&@jzt|j(7rM11+JreWNeJYT^bt|?_NavIO>R@R-qP= zpP<$YzTT?%Q2^Ut6X470h1P@;&7Wi=$g9y`F!~FLM!ld=gU0xg#C>3-gzOm+{$m=K zjsC*_*IzKqECl%4msBl#Rx_v$jGDoiS6j|bn+A6_dJIO7!RRq?xyq0|=^|AH z%v2HlA6Z|eBZfupF&rk5Bo*|t9)lknN%GgPkPYzouT;q9)x@Az3aYM<4Pf&O`W2!7 zrOdP5v}m-0{(O+EEaAD#uiJmVrb0HLs4HYutJjF}QmsBIg8HSi>a2vner+t>`UWS0&6{dyaWl-!aH=dGb=ed2`8-{vr#P=tND29^5x+`TqPpy}yXm+TYiBeXjC1qx>A z(H`U?c_}*D15&LULg-1AQ3J&gbQ@`v$9eV7eizre;@gVRYoC=!vHk6Xf{9=b7c0Oa z{H;+^F6p4txUC8@J!QGFVtD!V$QDuEgyITXdC)qpo}Pw;RGJcN?QA=9K3V8d0(f&Q z2Z*CZd=JeVfA$QYuX$r{nGhWnM%Zf|N~!jCQ5`v2bX2?vlInKghzrp%lUD-{dqp<7 zs60{=IHi2E`MzgJJ#`_^clR~saT6Lj)xA7ft}FAG&~c_t?41`flBatq9bK<|gbI~U zmS6)Sqye6uUS58l9$vowKHh$QKK>pC+)ND$>@u-cb(yetOh)#bsln%UONANJ;?$^4 z_QA|U5R*a#WOh{Im>469mh?&BHsJEfNkLCedP$CYEo)Y{S^^4K_?~(T-}4_>`05>0 zb(cfX|9#;v&VS*LP%nJXqFwmx+ElK2vh0g?$t!j~eO~aAKUJ)jJdyoeOP&RJ<$71_ z4eG31|ElHgLiP0koXIw!TyAZybEsRe3+KJHS_nMZweRU=uTle^-VU}(h;J>H zDXQf7d~Z$0>wuo&x3j1WKgCVwVff`0D05eQ_WQ|O_=M&q54Mt^Ft4F0 zRE>f8_??-hb@@x>WKCv??@>s()K6sTs3etS5)dZ5E6QDI^$1tkGkIBx4GnaRZs%id zl}=K8Uok1FN3OIPRXHQR2NBwB1+!mGFIMbVMIy9Zu7T<;B9l_P9Cggee<^XvM*@9H zd)L#OW20JHD#{XT)iNiBFq`q$9IIk#M(_()m&xW$3zCodY=CLn)mAhK5F_|WrAa(p zBi#so?s0=;k+D)Q-nV1*+U5A~2friM94*YL4ZZ-@wP~uLKH!ryGYs*$WV~(#d=E$YUICd6n#?3OCaX&wj=`3h1 z#QO4m^Ydhz@yOax6GAB6S|t>@sUobTLMWPWA-ZthXe_w^)}-_DU@^^$pUa8$)DoK( z7d!5|D`EI*Vjq1!>|f`^lC)BOSrC$_Mgv*}Ns4!DuErgdQTsv;Gbl}|b3Uw2@2 z%TxG@joOS3Y|-_S{+DdHw`$n);&LS0`9fVEq}J3o4{<$bMTfOdaz{ z?Hei*()`@@XWy55RtB^1t}{7SrdAeKfn`k_S<4hW&7!#2 zgrHQ8U*a@yY?L=FS)mS`o56u){xr#MIxkzkA$n!@%k^8(+N$;N{I==fL$?LO1*^xR zYHj<02|X*pgEzM$%dF=p_U#)mv3qswI@$)8k6npUKS;sXI$Ru;=_PM@+y|fdJQ?)w zRT~^^(Gmq!9t%E3dZ28|2W`1CMgDAcS!lJn1m@P+C|q6b82W;)3tEgaM?=Jeh0jNs zz!51<5Iorm7F4zn`bR}0kKTtx?%z9uZ&mVy@PjX~e8_tDV$laSrA!)VF&5+J41 z5H!f~S7G?{UILe_%E+PdNYvuoP4u=U7reE;hMrhAlwb6W1E~x4pukgK{%Fl1;PFhzGUcn8eyS zse3HZyP7w^4DkW^{q|N6q?w{&!@42K=o#SA)?hM*N2t}8U%~8`ul>9G_eE`I9~RV2 zJqkWd=L_z=x&^-6KOvvnV?5Y@Z=SHsvO~h)Y9oc*)qjE`jb@;gt|sydA5+nU4*gN| z>`}tZBXd!;v+Y4;i-&?;H*4TucfS*^-<*M_m-`*Dzm>liG5xVtNMX97TA zbS$vUHbWbkND%CGSMGYp5@z3-F4#Nn6k44;$v1&*KBp*p@*u%DnhtoJ4m zRXEiT^kP=zG~4zO$)+Xd^iF;a)^0z5Rv)c^#ywpFBykr&lUDUX>=b{{V&4Lxf0bWy z8hUmF2iF~vms@onY*{l)=uok$&?_qthB`iyH=biJ$APin(x+9Z*Ocezj~<=i+?~t7 zSAh$jzVWOu`)Y6WvBn-$_gXsYoi$v3`@lB&!RT4Spoz3;sC3H=E&4r0ez&c;@bX|Jyl$TjTrQ2s zNna#GJx8|yx1R0-Q&;v!_T}3OE88@|j~i}7Hs%><#f0thC67O%5dp_gc#p&Ab4p{h zAle-M#_5i*cpW;@#1n3am?Yf#TNSW7!xmpz^cmSKZb7i^4jQ<&DoAiUiT1?{aQ}1H z!L|BUpxK>J;8ANDh%<4WRhB@b75PsAj#jcL!jh}R#tkoH849? z31&Wagj*tcc=-IO*yOz{?lFCxz$T=f{LX?3cz|FnsN8M^6vuV}O)uX<4Kk;o$JP5I z{^;U0W~lAJ8E;kIe7g37^)mP9X%VG2#&QH0n$ELp~-#L zfgJ-b%YUE#N$54PE{vMf8}^o8mT#&tPX6%8SYUc1Oc2(KLe0-K6fPJZ0s3{|!~Lhm z$Q?ga2i5wvN8$bFqWi)%!fm@v@s=8gz`1KJp?7#yVeM!OaLpw{*fi-A+F6DVBCB5k zZmligYr#fzx~&v^N?!+d9si0BUX}v)){U_%r~)?c{!LyvFgjZue;_KepZpZ7DYwJigx*WHHn6 z#Bz@C@!i#edVlVc|NiNmymGB=@-G&ZQDVbO@&kj~gFowaMzY}#(Cn`jv1vvK3i4|O zx^FEBclmb$akL-q+T*t1mn{-d>*;NIYFSr#md9L>Q*I9Gwe%4vzp=gCxqlnP?LJAk zYyJ)Np;0&Fn@|g<-?POz`$vOUJ2%V6JlzN!;dbCkf0Eaz_y&x*e->?LZ4R@_m%v+1njuGLBKr^a2r;!Y2m9<39Q%3_1l+Y3 z?Cx3xH43=}p4eOmP7|krHqVbBZrDp?F>n(qwV{>p&tV?}MonFe{OXUx+eIG2JxAhD z=!;!KpR=`~?N%WQ8W;pxo_U{>Sfi7$=jd<{boZuwRom{k_ptGxTeXVdUWbNoLc&V4 z_k2m*cl}DR*W3;5ca1@pcCG;9H+eJny&w4>cO8LNc(n#M&uj%b z@uhLOsCMYm`cX)9sXn~zZiY8l?vx*DUKUba8ViH1M&PRz{b9>4*X7ayd%(L!S@6{7 z^I*YtzTB_c15|R#Q4ssGF50#)8=S4z5+BHDiOL9SfCiN;h3Cbegh$ha;J1eqSW>nr zx)EO*mS5_kYlGJ)5Y&qq(%p8(+cHq?oC3W)|CLpS>^$gx}X6;yolMcBh`fY7&5g3!6! z17Y%-E1<{YX2L-WRtvu@Ohvn*_Q}!Krl{(@uBb*8S}1XQ4=zkwgBDcl1wxh%6V9Jq z7gP-C0F(UEks$pFvbOs}=vUPov>8@fm@2>^X7gFOeUt@CU>+mWeTxBao+aFK?E;w5 z%|rOA!DZp|Ho@3w&3N?erVK~nPbdx9fRoEdfQ$RP2zYOk(Wa}VaPRCb;Og+|!nEyc z!63Kopb_-J(|`F@{%SA>+!%8hc}&`j!shJIQuj^(|CwV!5z zSD*ht_UrG1-ZrCAjb5d|*W;FWZNw}PJf@1g>Wxk4<(X&b;bKp;x936dqDxKWeYPHW zx^FEy*6s}OT{i*DYqwY4>S#5%zX=s^d0vtb)VwcjT~RC_=QuCNcJ5Sp=yWUOGo}I_ zm$(Hq=GcLoRVISjn=<7loU!0UrN?NKX(>Et&NX@Y1#W_|V}A$TU#H7UY(0j;qCAj= zSq5OtYJ)N-qyj3YgnZ|$$>`F14t!Q`1Ss9KEO@cgBWI9}1NbF47OfWq;v06Yz=~ee z(bD;@FrkC5aB<=xVNUJC!pyf_4lnzHRp;W!JX^zygLa`^Ee?SLInDq?gyCuPYk_xT zEa8dEK7j7?3vBR!i~gXtfzcyxpm%Q!MN|bLs@v2N zID{P(rq7;=A_Q+h@+(`s^I=b+>-O#FjmdOS*K`ADv0^L`1Puqx7aa%Tw^yNA$HXY1 z^L!AvfGhmaSB(09u89-kO<|RnP!O`N4t7d^Amr7r4#!rg3O|_4N0#Gf$ty*gZ_`1&mZN8Y{29MSY6S_W^^Uu9ObH8w4o2s5@f8=E0(_Dv>!E zhxF=8^}e(W4BskXminBB3l^`(3n#^4kFG9EGhChWIN6JtHt{Sr$-ItlIF?}+wmgrX z_%CAo{Zc7>t}D|wBZ%tox(Yl_TjS6-)hWM}!Ej_#8TFycT(Bp^6Sq2%4)2(4#309w z+E?oiCA02Ab$DBjv6t1M$~CZqZErYGsn_0Ok3SNbg>%XL_S_UzxZB7Ut|C+|U z1FA9(H)Yh?oy(!a`tj6u$F|Ib^uEliYNMHz6YDa^t;fPP^)aj#bB;P7D#Lu;7R)>h zp(vkgOK{}rdel^#EWFvwh3f4=F}#WOm;rxWgQhDGY+wEuKAdewef94`9T*V6l$}wM zu?ZeQ(UP(F;K|!Kv*{w{hFcZpd@2o_U7U&EZ%JlOp7#daQ$ftHH5xJ3C)8saxD8{j zEG^B9-!z&^d@&jP@@5I_d29hwp}9YEd(Kkax&w_%zRX}Mx-G{h&zL#r%?O*4}#<8 zSAF8y?#qO;xNL$IMvd4a@hP4ZR<%gmr|k@vv2<)UxYbYOv%boGH%1vp6T^ zChtYCZm->V+8PNCZ_=HzbquHWKA(nDjtfC$=7app@TY>)cqz!Y} zqBTXI+W?oJ+J!E)@@KY(H)cTDPE7XTYk1{?iqtgU7S!+O_|)xPQyA+fE=<(+)Z;xiwrTg8eF>h1g`1@U% zYg435tG0g3p!v0_w-F7f&y%7k#~z>Hut(Y8(jV9Gly_a2XEj2ZkNZY2&)$82O)u=m zO$3v1duvzb?Y0}p|A{N(n&Zuc&wLKOat`BPExf49$6uop)7mo2veIzfebt#uIae|L zAdMOEsVv3R>daI`0%}edM=IvkIO=ZyF3jXEQB*gJKe4m(64h*=eRMQ~xU)3Av{M-S|+UJ?@%$&=x?Ahha-mjUcXK8O{ zT;@#N^Er=s`y7V1e>4+W=O)~Y zrZH>QHDj)NmqXD5cHpyhr(-jVba1&XgNFu>#mzIknFfK~nEUi(YL!WC#U5Jj)XW}^!fnWVXC%J1sTFpKv1J;(*}|+K^HIHuBa^dwJk@yEF>G$$ zf|)z3EiBQZI($00JoT_eC#ueLAFAKLNldlX)A58Sb*M@UccKQnoS9M&2UC$NUSSU9 z$z&c*W!?!|fDRR`sJeGz;NCJ0@YV`@CONzZvvQXhjJB9Yp({)vA>#_yVY~@61XUbCM?T22J97ixok}q&gsm4^}YpKZdRBsA4lQ2uSR%bfA zYfkwtc!`GJ+=l%-`7w_=1yWyx&Q#D1bNH!cImU5OB4gU1Gjup0haGp7Wi~gQfG=QA zDy{q;z>gdYte-u?y&N)_vbD)`PPAbzT5y@Idyd0SYi=R$->jJ#(X*&$CGWsd1I1KS ztES9~dE;;o+b7U8Ac#pW9mqJ%3`M-KSvcOT0pmcggDXBQp{hwPqA6DU@DPWkOw;Bf zX0_D}IQ3px%Hmiost2#)5TQNQEv`PZJ6uSeEM1=ggX_Zn))Vl{N{28LV8RUD-kvJo z5Thl>J5tsAWl;~J$$W0_#zgw|qTZiwLxnf($sG8jI~uxtGn4q?Ca#t^8HQ3z;OnHr zFyL%Bwy!;kdb8n}e0Z-9xUV;M@c@e+38O`}!>jiy=;J_7eX84C~I%7GIOoB->W#o_Yf zo5MK==D^90W2v5xQt{|9d?sXPDO`513-i8WFdUNDgtEEchuXA_LoMiCjoG=nCG%^o z8E9?gin!NAfWz*sWmeqU45vR5Gxr=jF{cN%V=nE>pe!m3WQLejrKWEV!NVsdSn@KN)v_}x%jYU~Z1S(0SStT>R)c%3_hN1y7>OuyWmxpBspIWS}~Q|oOg^JR`XRdL8* z3M6g8=SD8Z`!+SDP9CymPK9p8Wg69{jQkh8|Etzs3Jt_BR6R104TM9R~V-ieanB^zhQC&nA zpx=~@!lCDu!0~ax%*s=@aBxF!YU6@S*f-(@*zs{PBR*-uTzi0pt+L&iuU{wO0pW+? zHeM=o@s=4SS>284Y7xS`4|Jo(PVGg-bX|g1XMe)t@)=C_H3#PE@!?FLv!7A3L6u-y zwPj3+kTuk&&jM;q>pe{SId;q+#~whdC%4d|Hv-%aTQXgTB~w+m#W7=crc+>YNf0wF zL%zLbKWajc-uR(Y6{e-6J-&3iJ5@F)n%Vh!AuQ=Ioaua6Ks|5%5x!ee0Uo+)LuFgp zz%u4jsR?aEm}u$)dhw+e_1oyll-=Qal*h=<%&9{is0-D6u$5>8emiF@1D}sOd2Hk|Atp+ow#5LG) z?xrIT0tG|HH|85S%I4FJ&Jh{aT+g3?v2+D znuq6BsYPW*KZ4u#kDzRwp5Uu4TVaLQ<*2~gbC`>_CouPjUaKRhORZTpj5+*l0@HZb zJ^235vXrR7XsS$X0^=|voVk5oOdZ(cN-geIjk+vZ0Bw_-!jfI5QR7UyG09dZaYgse zRP0d?rmu@76R;?mii}?e4;<-9EhQ^|nawQl!E`(|X}cR^GRH~if5V)zSsB7~|09#y z+O-t3u3>-Nq(Mboxn&0P{=+0@%awYRxX(IhG9#5CF2ZaxW#G_G&p}Wm6@yaER?Kl> zTz1c++&S;yJQqu$%Z z*9w^NVFQdm^aU^F&tSNwRjK#);^CAY_RQN_BdMduYB4v=n^3LW+feh%^=C%PT2h}v zhBHfZsxwo0t#GFj9he;z=TMI-FThEIZ@>;$MlxesxKabaDjW>rn8z|L^kX@Gv7uZp^Q>~cDR#m9PUOkZO4Atb6A#IYZ>%`7X zysR`ecJh3xPU#vx}hpbLHKpAPPkGd03I#6L)~~aoZ6EdPJOWTr?C4r zYHXSL@{T9U!sDfh6Y+izJhbi8EZ8S1De2#nKD7j-(j_gUc}kJ62;}-91koaI4BZ zIJu08YaBpbakj-Ry;f3NE)J)n4;-fcytIOO(_#`e-9k>Kin=hzzMi67=c{I>g0k~A zfoyH7XualZJWI3kJyPk^-NR_{zGOP<_jG!0*G&4}*A%+p)l@p7bShn{VJh9a@*w*3 z{UP+za;dbFV;U_vGlWi>J(T`nl}5jJ$fR!%Porlir_sESWZJZ45*<)^2)$u*Dm^qf zl@2~Kgg*FN3VptP2JI9#fR<&Z(~DoH(x+z)rC**IMlT$kO3S+pr3X8t(G?ws(y~J- zv{{WIG#rpZcYl&buN{|0)Adv77Hbpfil>LsvE+MwI;7BxswUH2P7a~X$hBrPPNUPC zrO*xH2h$7IC)4Y;WYE{jXVT+vDqWYH>oAA>zWHFf$L9i%Y!sAQa`dYC*l%V%IIl`JJh?a!Ht5BJ_G=t)r_Wb# z!z~alFMSlc9UB29k1xUSRztDZi3RXno7wQB?*(YLb0of6B?nq0?8V!Clkl>{?NCH{BLR@O%BzSRqEbbV-0(QH4O+G(rIHYexfOV2r=y}sVcvY1tsK$B| zf9~r`cE0=9lLb+8GyyjZv7iK{AK~Gl^>OSQ6RK&y@$%tI z*TI>yI$%8dB78S+4gP4~4?ADKhaw z_f@GCBP8&l^<=nu_FP=C{}pU|+!Is?KY-_6v4g{%x&Vi5e6Uk~9$pOj179;;1lx?c zCU0AD2!6eD7OsnKqR|T)K*!P+aKzcu*z3-(;9aa2N*Oi@N=@DiXDoUP(>CWo=j122 z{IOFoP?iney-Sy$8b1dIa;IVW{<`qNm6o_q^0Zjo!rJJF~}PJev=%-dTg2Ef|3ZbB2L?+f1mBTNdKdZ$=}F**W-B!#T(! z>pDF7a5G-iWF;JLmI`lq9hXl%xCPehy#?;6?g(4)zJLvfHsQg-7r5D=4bXc=Hym31 z1zxUv4%0sd;+kWw!x{mxLGvLmYGuZ8|C2&~#7KC0Sp{R(`kf`N3D)_M1hzHsF zuP-YfX6BVFaO&ZWIBn-Re7dd!7!te`hb8CWjw3gMVb1e#3-8}>yQ2)ozz2%Q@`S%e z@5kxa_Ti=>4$$e)Rd}S1ExcdC7p7X-$j|&KfLU(C;p1MDu}8%Tu=V02DBzqOT>SI} zu5h+5epzh?nA|dk$SHzQSYPlx0eon*#GuX7EF!`=Dhs4|jIE1P_1-Fe{OS`hI0mky4xu|VN~hnOrqGd8D*da?a5^b1g_hqQLZ2tiI|s|8(NBGnX{Rwm=!Q=- z=!b*S=}LD}==cel^w4e@bnwv(di%!=`d(@(?RqGUzG<03+pf-_o9s`cm-?jBRRn2t zgNDQC@bokqZ%L+~i&E*kW~ua6i&XlxUn*UB_z=3u&Sbi5)=>J>{#5#Q$27V^NCsVb zT_$~ESt{-AJCvR^ID;r@ZaD$vIgq8-NdIRtS4nKA!!d&U8@IsUGOFx)tDdY=>O>l?T%m>viM?J?C#-_u0V+FweL^!tde2u$bpN#!m9KiyQC#d(R zNw{Oz9{6PNQq<;Un!IUN3pfEUhfU6pgxPJ!V%NE&pzF!maQoWxP?)_6bjaQV7yZ@{ zc33nzXWSJtCTP-o)O&*vz8SR}4%#~xKlGXowyn7bkBr!l*K95eFQnZDHTvBIeXFLz z<}DV(QH=)RAo~PpWx`?V^X9>ThBJgE>y!s`Eq6jrsrvBbuv)mqU@MGj&V&yWC9vU} z2H0DA9IRe>5Q{4wh8!PnY_j?sK70Bi+}iFJSctns(fmb?eNgXefXEpdjZ|~B6JVlj@J8h zKz{D`plP*5@P5=7IQq2-)AapCd87U2OtnW4k4^1?&pbV;D5@}kU$QnEOFDAC@?pt0=De72?PnuakJUWpyXC0wAywbU8@Pvq_4wa z&RITeL6w3*eV4=A@ul!>kIiUluV(mWxw+8%&l19{N4?;cr}c0%ZUU}3!yGQI1MxV) z18{l%AE;E@MQ~qcAT)hogSU^Lj_U<&zzx!qaNF%A4B(fa+xQP{KbX$8Ax6D7F_!Hz z=%Y1cH1}C5-Q78bPHIYw@miVmzE-KU*@iUQ;?!WeiFq1*c)lX#b*(h| zUfoo>Y`cMUl{zVOpX}lE?caydWj?3TEoI5{!?0v}>XDa1y854~^r0N`Sz?@5K9E9xNF7Eu*pf=G8k$O*A5W&w zxu()7!_#TE&@?*!@KE}=IGtWd;Py=TAUbvbP&%L^>GKTCpdA+tp{tps(J9plL`Nji zV_*tB>B=yA^0`dfY+@>X-g*!nU&Ro9)f2=T|0mlm&K@x0v5>wxSMZkV51Kcv0AAc% zB%D2-1{-!v${BbiRXG2bNnr2`U({^Z0eS4Ki^3C)-U=W4#^hAZJdr(W+Fd_~6+Xyw z>~Qqk?Q+oz#huIYlwo-V>Q2`hwa%~zqz5fy<|#6-cl*#7cSX?Fyxt_7kRx6;AD zrF`&77$v{&wO;V#!ZP9S^2hQ`W#CjQ~r{)#V-bo*X7bK76xOaOn zpx%{*78@jBQnymVMX^}0sPj|#_St*E{m(&YjC3JrA@dgsKW`2&P5UT3{*h(!Opw`-E!=2e-TrmO5wz4TEaGHslp@z3Y!82^GTn^4xLbX>8C8MVV>91eU_ z3i|&c5)2xh1w%K_1eZ6Bf*$Ly;H-u7am{LzVU*2p*#F32{CeP2817gdagr}Uxz8dz zR#Xcv2na)#ALrsdXFr3!zf6SFPY(iRS4i-&*E6Bjg~9R%f6Rp^0@EVZb$J;mvnd_ zd@V!?R?M)`dr`9KYb=-?fFtZq;mLy#a=S>u?ky7G;SH(S5kG^QN-TkPQ!oy>yAkhw z=?%BKyn(-*M7Y_#4S4f7Bu`7&3!8U(fV!y-UBs$9^e+yOulvpSG_iuaLGK z*ZsT;SD3vD-fWZzhrB!h+=m^8&m_CB%T$DF_5Xr8)Qx~K+W~knr5h-JY79<&bqPQI zb0bW33x<{3Ps0x0&TvoD`7n{b2u5Xf!d08Rz~&E{;1*ToaA}=W_}u^4dJ}M}qPKn6 zlsPGyixMT3X2n_0KFxy$rFoW0nlvC&<{?5dlw{64g=9SI*@lQjnI$0+O(>*+>f7J@ z_Itng`v1RkUFW(v`#APlXPxyt&;8u%-d(>yN?(MP<^Lw;KX>D2FKPS|znxyV8k=3L z=1!LO6~X(Vxv+M09@+cG5f7}MLDJ6#Vt7j*2^w)F-h-FOtID_NH~kS_i^##j94&l0 zVGi!xsEFgF9uVAFjYp(Xq3mxKE?+ec|L^FtSo41;|1UPrA{Ck6$kut$P-p&7;CsCi zmK(K$Aqp|eo~?(G_0w>SNGvDy^dk4gf5KIE8BbEX1Fybwq%R-^-zF!a``$S?J~tCQ z#j0>r+Hq2J?LOEoxQScVHW5$phmec|@g!vC54|M%khzmoquPcQLJrJVR{HLUr;T$D&Jx8rB0IPe2My76V#*zym& zwdcDEJMoRbIq(PLo%rTl#OUsH;GdUp4^S5O)eFv(adueyz3*H zdo7{Up42eKvuBR_!ZCi>9An=vHkSSTxWsPM^~!g8j}~I zuf%g_DtUW$zT=H(j-eMXi1IY#)M(8CEuO-!=Q=;8y~sPi=5wB#q?sUanF4wA<_!6A z?2e#m_8{+|$`qb$=xm+gZ94?h{~jg-eJO$yP15B2l+z?N;|6F%Ii_M zO~)VKe6`N|{PZRCoqmXa9*#$aYb7Xnpv2y8UXF$<42cQ#qWw9UCW6g{TskNje5?W)cWTsqAY3n7z)PgG)gUOQ2CxByqn{RQ6x zN@!6jktcnIVz;L#(H)M1OlfIqYAep#+55rklD|B&7(bjcI7M)_aVfe?mts$(szLa= z>Ck>K1DZPKVAP^+G-y|Yb*hdKVeSd5OGdMC2|Dmh-xMZ3ypPM3mC1h1LO8e~1`E4m z$c^A|Ug>qY+*`C1J#xEf`i-}E!m9_%g+G#gC#2c7`voYoFAj|ot0C&lE|?u(1haI; zu&W%)aozft^qxgEFmFtGw#iN4vtt9ge%K19_DQqfcp~hxmE9mqJ5lzt5oA7YfaG&2 zh*!m!lj9xGEJTKVZ>@{x4tSy1IBj$l`+(D~jK_o=M@YZcC+K_T56g$~xd$@I|XM4|NJ8Re@=&jf-9g|S5Au_ zh@w`N9h|VJplTXx=$005-o}w$YBM31ygj*;p1gSqb_950-AFNB46Y)pF6--@bBINS z{aR=dGa7{_DnMD14Xs??gzacVG-u5rKR>vjClrHs#7?Md)}!;zr;&>_mN-gf6F85_ zA@jcnfN{<}2vc2;oqs*Z{G8i_9XkcXuM2Qa=sk$lTZHGSA29VP(7;W&-wP%1%-w@1 z%EVEPfd6Ku{D^KhMK~&rf&Y@BiV*FCJsb|GLPIe_p|XU#aHEA1UQha(Nqm&1WZmKDFc9j^}v) zu?~Dcb&mZwVauN<nS32Z4@~uZ4_*>>W@gGK*@#}Bc@@*=d z_*)gYRNUNwU-jxT|LJi%{;zjte9OzW{E>rpd`qsBklyLS|8&urzhkcz|6`ghzuL-< zAK2x{H|0tRUtb4){2M2}>jX#s)ED;rb3AMQ0q)q_d`JE{AA7#Nk`w$-k(4} znjvpR=9^lq_=j_9Rh!RNWGG{5PANXwiChBHhK|4QiU*&CX z*w^`3;G`wZ?8xcC7kAC*B%f}$GeHR5f2f09>P^zvbVqQrTN;-~C3mr~h_X`?s)&IsPc5 z8q+03q&3jOzO#y`}!z-c-E9oEt{`1h!g@V_5K{-NkU6#Ivx{-O9k zl=z4Ld3mXSzbpMi<$tJ=DlDnU{Xg;lwm{a65SIRTMD8Ds`-c<$;go+U^AE@TLxq1h z@gGk8hqC`r{vRs-!%6>e+CLoq56AvP&Uop+Zj=Av^na)^TT=9YPI$TQr2o9b|8pcX zl>Td+|ND)t)Rq4~M?_<>q==*#_Yp~4I(6lOx!Eb*83SU=`Ty?u9RBD2KaXkn%Swv> zS10|yUUkVLT?bjcgB9%1^fIb-DuPvrjmE2a&8&BcD&v>X$h?)4V}2Qb1s6FHV&>!x zYi|6+!_H2)We3AbeQ970GxBitP#$ADS%cA-O z?=z=t%KA(lC$JY*G|2us$)5Z0 znrSS4!(2abf|=P_&tAOlPtOcEGW{D5v+X~Iso~)l%*4Kj?4l}pX68Kc{CQ`WFps%5 zUf-tq@OQi!OD$ewt@meUPh0}yxz&s@YAaz4Eyv_*)JL;T8$2QF_5~)V<0B*6-76Rn zlrz;U6Pc|i-PrTT?=$n8npwlvPwZ3?0eipLo8d*rvOdpj+3j{ySp~Z`ruvLCt7q|w znH+Y2J!zfHelmAQmqT5sb}E25q|pMWEh8D7v*zsV@fF~I^DJv~^(zzMcoSu&HZX1K z3?A~F#UA&oM(?>z?9H1h%-+-ojE*1|7C)K8ZZDE&H@z!omJ9!3z6Ce2%g^t|_d0hO z^1X_^^5X*AIerL5oX?Ql0T)K^(GKQ?t`}=_<^UFG_|S#UM_6Cq1MCgIdPYV1Df_#d zCJJ3lz$^hfNq>l_w1+_a(PK>6pg5EMaVhJdypkCRy2Ol?X@kJBCyYsuDViqFXJ2Ms zV-yRz7{+xvt(BU~n6GGIBAAto$c;zrcuvvsy{(WHubIY5?CoGY6`NQEbbHr;Ki*I+DQ`U`@wDs(@yYg`)>v#^%ku)vJ<-Q3Q!XiTBDS17x=_b#*OSPCQ3vXgmGZ_n~( z2Ql%XyO;s~44T;*!g`zEVWNb0v+gZAj7ruz_U`d!wyEniJ9K0(E4%9r%m_Njj*}{9 z4>Y>5bx(>}r!@g^ar;bmuagHOZ5+wwpG{*jlxvu&C$BTUVvCu8zIf)AeJ(a9PGJ?_ zZefBK7qj=1OBtCLbMSWd0IaAT$8I^ag4Lb4mpwaU6g#HtK6|uZhaC|_v4KOy0^NDS z%sp0#QD3RfZuS#lmucSNL>&y%`qL2&s#miScC%P@%LF#(SP)yzU(EifTf&g1yV>Yq zT}ClBl9?Q53Q51!FanDdOAz=pkN<-jBu zhr@zPm266sBsQn$Htl*e^If%d<>^^rixKx_=(Ker+~$OyoAxW}Cpx!H3K`pAhCGvzuL{TF7c11#n2n zV<)UnVXm}L=6LUX=BQ0R+phhH{Sq0&Z0oqnHp=r@kt)imh*Q~(e*R3l`Tz_?xv=Ja z@vO_6HCEKAkms;m#VA?7-=#moZx}M=_5w9x`vX3D|2cE8xSeBPgG9 zkMY=@&6eNtW#WxenF-e(uy5u48IH-(i-0$|Agkh|8D;~fGu63 zJLx~qSN|8_R{bZ?-F6V=c6R)ig5tm8&C=z%4i2INUL1 zRW3m2spGB4o6- zMc#OoalP&rDBHvZp^-SWx4TW6&Idx*H!m1Ft_~{7Co#)gM=>=vDbVkB7^e*Qpv>7C zth@0PFKv1V^TYWN^&nN3H!P$9Aii&y32 zv9-71-s^aBLa$r!^{4=hF1_N7U1%!^GI0UM;|k0d>xD~0xA0t_DqZE9NZaWwcy(Bk z4KnqE-|E5KuK&wqX7(!dx))1hrw7p!9*Ni;bJzis^os=h#csnD(bqU@lQ`R+0oo)PBV7IK4 zN}u(H5>f}Z!VU_)8%4pHt&btYZ2)hD3`6_n5PTBt3jJwI;mdVL9NKc6d{uIzV(V67 ztAh>+EA>Tl(R2)~*aTj$pTLcP#bET_5Su0+!6P0=sNpOXjMNoov|fqA@An5`__hH| zmif&ai$B1j^A%*A{YlOis6&hTpkV!%JvixIEyn{0;Om)Z@XO5*9O?qV&7=#KZdZVi zTRxC-_bmn_nBeJt1u}SCfF~@}1uIR@;{837;N^=4G-yDbIu zzCI6Qvn?S-Et{5?byJOyOgO5pg1LM*;_`-*qw|`eF!~2-#BP8){Varhcu!0Y`a*@u zI(i`5iHLCWaI1S7=zide;L5kz@TL75>X7Yp-n|0&mA4Ai?c_JFu&6^K># z(&L&H@cR24D2O;qOimlXfh0E^Yf_JTb93Nb=^8YMl!4+?VK`hejxrX{z`m{#MrYWe z*`5ZTkkKPtR2q!Ge(J-Fv9y243Eo&+ube0|~IPrn{aNVSZc$TIKEnq3w-ufp)=j9c!4*IbLk^Is}4a zqfvEoHC)KN%RB0x3p#PC&t^C*a{{2Zz0{ z&=r!pcu7x^xg2vBtIeL|@uh<4`*{uct+5kU#2tlPKyV0pWsFqfA9wuiQR&==iRY;SpjZZ62P@1Ghy8gbDWU-6t+K0g5Sfn@N42; zSlE?Ka&PH@MmNWmYRAE7PHf?OHxYX{{ox|(EL5sX2KUy9(7X5;xw=0GU9%s<+2x<` zj?ri;(~&_{a~iSq&STiDzYW^5Z=fp(;lrdb{Q4&gW4eFgvbB#Or*W2!>AOu}wB;9x znfL}ABl=L+@)N1__CT3YxACFUO1S8;kDO6egWV}hAv%e3B?t>7UPh`UC9;(MSQQWP z>8a?^8j8&l_u$^s9I7>L0>o^dPQ#ZO&@dxv1QXfh7j?ZWEv0V01?i5`A+gBaZ@AQQ(oLdA|mqBn}UZqH+6fQ|Az{J^iAy@Mqe)iC#Wu~zZ z=;?)2aXcF3jAK@Ro`MQNj`&mODOoKviEXL7LT(vF;O4!;>{jn7jB$txZrwc=AGNrF z-X;Mkf1ZsJB`Gvc#T#$`mH~(85?J`~8LTOj#QZs>6h)h8+|+W=dUhXIY;uKlFP$)d z^ivQ{c!1vA-|OoJfoGT<{r=_;&Hp?PPY71fOYw=A-&#$6+LluDD|_+nsE^Q6{T1oY zJs8+#2fx$a!>B27;CNaEjDw0GEaf}7xN{|H&lO?}yv8%bYy=$9h`~L@QFwPo3|+6B z4B_%mAnSWEXx7^0$;3SrgoGB6q`zMwXVYltbv+4@D%PmVAQ`-?4-u?8Jo_cY_I3sc zj+&l;3adw8oc$6;UrT_Ffhf54M1r`#k%Eogq2Sti7Xt@&!kB`4pf^8-ZY%Gm_%Rwy zw`|4KQC1-Rx|f&oxDp#SG0=FG%bnKVfF-vNA&$vHkLU7CPOUX;+vrP1*)B&HgB5r# zR0FhcIlr4kbrGnAA>)e28}YDbJQ4c%@rGut z8&tk)F79_c390$BFhISGoS_pLG3gv^9>~Lr(wWQ)KV_`E$K#!xwE~w0Cqu@8NUHQn zoC*BkLbnv&A>PQt#fzQtb{IAgmGAQGjZ>Z={(L6$>NB6ZoO}gd>zClT#v5>Lw+n38 z+e?Mj1|YHZ282Z)$4yc__^NC=>)SWNyRp?B5AgJ%Qr{JqT1c~6r-I;xQ2{*LERMG3 zNAUNat5BdaLiT+W#-r;@pwB=Tr|)2(U(1np&wT*N>Y>oyGL=28<&7ujsG@>{DsleO z4ncEIU(9A=)b|d7YrPFVCzsK0DFhx&s1XP~eNPIzIw4N&CRNlsj~T^v zq(N^#eQd7{FY6;{IE{vnn}hJ@B`(J{ts1YG@68mT>7K^e&)x@v znhIK+6+rkjKJYI+0lM=BzNvZ!?Vmow#N&a2T7y(-T-ySDS&OjL_#z7ZtU*&f z5jL`B7w=TpZkSST3oqYs8suHvcDCiKseyV4gpO3x!~zQ(`SJk=TyKMk1Rr}m+HuA3 z5LX9ZM5lcR;n*h$H2Ty-9`UM>|KTPI8RU|hDOspx&<|6$e1p8gQOx#VJ7KGMB5t*Q z4f5vV%sH)4K#|%6oGd>Y&f`-HfIH@egCQs;sg7PZCo2@3O^63%WOz;2$>Dv(CD#GloFQjAM z&B3B|dF0BCLUc>1C93g@2~SZGWA0uj$-8}^B2gIADpg45{vlp_?slxrf1c+x`6%Zs zlMH$bmZ99dHhSFZB@GLEiNx#}tUa4Rr<(fE8F~X)?$Zx>N_u!q{{`sRg2k>l8zZr%CPt?G80=q-GIci4uoIO4jW9*VQo<;>>gE$;So)6;l&mR zJD!ghH+rCwRtf$V+W?j=?l^AZVkp0%PkQ`f@Llg-*dm_@eaEnYv>8J^u z6PMUp_})AjSKaswt!}Y+-b)S+f0x6;5gE=kuLsq%+Hn(q156y!AY#p{V2iUeoM|7! zdV6dl347+^G`~nV;Z=_j2JbL&tRrYo{DgV+-|6*jr8r2%A!u+tY?z`*$iWD7n3{)+ z7rjH9k~%P6w3FUUnF>FeLom2LpKg4>q$!#hiXlVfYr3C(J zh`+fmeh#Ri3vyzzNW2IxOt1z{)h+Ts#0`FU5Gnx7?PLv z3mE<8Ul7COGxH47XkHBiZSS>_}Mw`0`%k$LwiXV=2aHZV!fS1>-S5 zxCQoADl)tLouM=RGmJ0Dz@k%Q8HvjbPBu}**<79fbczsDu;48g&oafHLP_j(dW_9V z7j*oO3d zbn#F8J0=6VzQp9snO{#7`ZHjxbqy#cNK*gH^yvbB_L0i>E*cq$?%eFR?Gaigij9fL58JCX*)`gg+ zI2zyF2_akHRSr&12TRY-=w9@QNb#~^O2P@4>)B3jrDf4e+Ch+G@&Np;0Xx;6V^E+4 zroYaBT@z!8?AINrxxO5)98k&4PVIxuH$Cyn-V|D}&H-`-yqvMg)jW}SQjb^XQK?emp)46O+W5!jUR^PiO);(|V7Vy}1pVfx_GpyufmlsOBB!7q@HUuNvNq8 zNIcO(vm^Ily>Sq=x*dQUHYegZvrMd?_6i>V5oa%ddXFQ6!sr%z5k6{eMaRlg*z~X) zMtt>g_=G^PDWwaRpUQ>}uNW$~DFkLUw-b}`()j1K6sxJ%B{&qD2A3Mu=;Ot2fNhwF zI}+Pb%X|QPs_wzCM>DQj?vMI`=Sf^~A&w5)j*Ig5fW4FuBf5ocMpJQcMN3AX4blT%Bn0h;i$`|~h0R^uy zar7I!@8^gQ>oQ?5a5{VacN^**@WCkE_qgow80Osinb4U#3e_gZ!;vvoVDz^KhgDyq zxm^KO%Wj4Vna990I}m%?lTmJGFpLxVj%yYS1wvcx^2V)vfOkyVpiJr&CX2R_zOUA>=2bML z+F!@c@Ok*aSqLqrRG`fMP54f(9^G?i(LG};K{)>&j$gJBRgFVnQtm1mtJVQU@_Q)p zxlIBKVzJfQ9;W>D;BDluMU_3vaQVP%Tx;6~a$j0V>aZV5-W5RV2^-j7sE;v!n<42( zIIduIz%d~N2IN?XalDJ3hr@8B*B!17p98U**5I$^0;{sO6UnA>{OI?LUUn8|*_Z_| zWztNJH?4wHhkmf!mWdAPmAIJ82h3a!@&exfB?snaf~Z&%D3(q_Ex{{rvVMW5?7qN~ zOiH|KmY`*#3ffJwgNBHAu+(1z{q{Ry;p__d8|9oQw`3Mk)|O^gC zFd9VHwBZ|F9lSa256Z8TMb&^|8fmD`#TQ*@@VW-qrTxKP4e9-rJ}6k}Mw3gGFlc)e zLr&Y6_^I@+Y*K{1N%8OW~N02s2RgEN@J}WY&-dkQHJ@FvWTzdZ`qE z#YT!chg{+HYjK=**b;Z$2!*k2QcQz+hR&v{Vmf@?4_lwEL*I_)Jn642+3h37ke~-x zSUDf7o*AI>12JYyeI1>!`Yl?l?7?xC=kZ=qFAV1Tqtu5Xe0BT}`T5uttgiUbSV#`A_x`X2JQraRr?;3((3 zXeofCPt$PxA_*EcZ~;>eO`^t0x!4e$NpD3z$JqL1pkw+1tD@)P+kn5kAo=Ym8&pA7 zS-RoC#cMEHdr(lgzl5BvKS0G6KSaYn+#XnWKQJ+fBXb&EAhGrZbj?}^k^WCHNw5Yi zEnEc;dcKjxtFF*LJGlDxYAea&PXp6)7MPv1mq=xOh6ICPe6QCC4{r4lozqL;`<-}j zKKBP^zG>%K7x?o!X8Pc&@N;>YrYxT6GC-4WPtpC!9Gt3n4sdTVzPEXST0eJUo}wnY zEqX)WIO)LKbF;~gtAikOEfGyUl}JU|RiN?SprKJkex2+@<-#Fix0};MUdn`=isii7Vw*8< z_H-DzRY_7eCJCf%dce{0Eyx}gVXv5NhDGH=z%RWCF9juZ*JFP;+kO)3XFP`J+FV${ zHS#ZK>XNKG7X)H1KKLg=k^4SKvKNncp&&CEe>mLcW^Ob}Ej&eEeP|=TWDj1BASjX@ zf<>Ry=z~dV=`kqLR1>~ZoNJNUDw0vp?Mb*2~O<1~YX zL}x}cdO8_`??Y=iIP?%D(hOl+=2cv{&!0?*SPVa_PQs%HPvC*aA9NPG4}T&eIG0a3 z)>&~F^Sm19^FC>I)tJSch-xP)ah!){;ZHi%#}qdIu!E}pguJ#;8Ir6yfzjlwLf*Ma zvY%%A;xg;;AiM7(ME;Osm4}2eCDjv^`%9qNaUV7{-9Qh|W{~&V4ntvLtX=;_R6bIM z8;Vck#=a&jT)CC3{Dt^L^beetT>}Qg=kcXJ*8}5nRP$46s4>=u_etFerKUJw+`1A(`HjF>Xy8un+>dsK!L%X;G=B94r0hySSR)em7+pf2 zX9r-`&N`GK0`#x-rnqznw8YckZm=63ZFm5U%K~851Q#edUPo103-RnuKhpbILJ)=t zD0gbQj>h^9s?k1@x6xM%CZsh|2YoLzQsHU>1$lPG0d74B5@wH0_k^+HMWo~1C15Ig z&|!BDUbtw2`oo1>ZT*<{-E28nP6_3GiOi+??y~G}vr@R2r;I?3!dvrKSU;tg7Je1Q zMP@0e!|}53j{N35-hBn%csk+412&Mm<|~bD_rUAX(GWH|21tz?-6nF6eoAS9*yWEj1uYVZ1PQ|i5H%ivSdEAHODGyAt#d|W87X*i)s|j9oC)?` z&GbO~eNfE41yA0t!M=z_NF3FUP4y?yKP3^Pu1X^==7XQcaN08%n(Q7m~ViLDqCIL;3H}J9sUg3P(2Y7E% z8;O0_4r}LR^61}I5FPNx?7S*m856+!D|{cTdUNnib|Q@l=tq0{1FIK4z=v^-g6r4~ z6*qfu#sg7iUwtr)HSxgMQx%+}@mic=*oDbtu3)NDG}zS`V~rSB<4)^_?gE{>Kb`Aw zsv2iA$p1pDH>KlRg$MZcl?2n-dkbgQCcx^MEod_*obJ=OMi;-+!`Lx;R8;9MOz!_c z$PZCQP5TO}#HMg|hd04w;d_)%no1=?4nm1qCfyU{PUZ-|M}-#dJJc8fc@M6l%xY7b z@gklq5}}}bN`yT=$qr59L{R&U9WGYP$KYvm$$aJo{#JK{sln%9^sFbCFce4|jKAWC z%F(RC_l@XHj^hfe4q6WnVAI7GJibJNe9IDH*BgI;QNQbOQ06>LHBv$$g-G0FnNP#^ zeT2a?zW6fx0t~x+CrVzX#DA$I;<_q z-I#DVh<=#ELvpJR6K{$NE^r)Ho~b;}d-;LR+Vu$(6;Hqti6PWqVFU_sE_m;&5iGLc zdhJ#bU~RPqZ!MpI(@u=Qw2R)DZPg-BeE*qeTXGHR#P8D)CK4pqj7HrjndrKE2ZV9D z3-z~^FrZ;C2#kD9Yj0l%)AQ3ocKmYG^MA@4fA}uuPVxnjP+>gZ1bBI_7O`;O1v{P{ z!e_HP&_tE%<({L|X0QM{G82hQzzB}JAk7}_3(d?~#yl19|B!pxB=U zVh^wKZk?^hKN?10UpNRM*D|o9JQ?52zYREG2V;iHFq_kXNO|{QVP_%7&s4yk1>Dsg z8tiB;B;x7qLhxL>iX79L4$bPPAZq8W2?9S4SU$9gwryWYA~rmO=`X_Z)XX|C`Lh99on2{er#)(Ed_>8_DbQx?!1Wg% z!s3D!@YSA#mhs!6VN^2J;P|AtzFUy7R2gTzxCturDg{#>EQ8UzJMgr;9!BdWpthqa z`s|elmow97?v*Hd$nzz{O#1@sxiMe$yB8c)6i{hX8ZJGIc$wP*X49QP7gt?GpL;Uw zKEvnq_&N$p$C*-%WNk=2Vu)(SoZm&CJ>CAUjO&SK^5RGr+-D^j?KQbj)Hj8^o;icv z{B9Pme{>CAoJ!#R?Gs{mi%rE$RtBB4e!#i+Q+ZQQUAJJdZ-+>11dJg`CdqSR8MF$G%3=scO}@vS$^PmOezO`&porR-Cu< zxhSh?=!4R!@=$#-2h}eQkjNiO?0sG{T$izdd7AN%&FK&_GdUYFuT~7^%nyc6O@fJR zCZFLI)?7c$}Jy2-4|>;>qQ@)Bf>tw_QquI?R3Co}Il;I*O*3hzXq(Do!+ zY>~h?YiYr5V}F=jf0=%ZJ&(&;uS0cj6xua?Cg+xy5T^r!5Tm&U54vY!$MOZ3cvYAo zca8D>%6yn>Tu#o}Bx75X4$YG+1HF^2g4Z<@LC!prn8>nlYVRt#WB4O(n(`Wbdk5gB z`U^Ps*;df}KpN6VJ3_(?Z7?=##&d3tSaz@(JLYmZ--l~(f2$~Tipx`z{7xuQ1mg7Z z5Z)@i4n`YGAwljpX01*KRVhcPyb}dA;hh*#|6MRto{A!t>FA{zK=EZU^tLt8#YH|4 zJuw3YOgD4ZYHhH+LllhmkA{%$eloet0m-D@_|njel7?fv?YuP@?5#^fOtj$Aus%JU zVhSEhlAzD@GH&B|iA}nq)B)!M6Ve0I2l}9NWeo2F&k=@Jcw_3MrwIFYz$lpjqEIe{ z2GLS@L0Ae0&iPV>*g6ad7iVMVI--^6M4T_N6pNRPrL8p|VE9%eS(tWAXZG9zoZ@p2 zr#@k+nb#&P$@f6n$?~XixevP%C!&;C9>m`|L>}D=fSrHVfqjb)4CTl(UQ_O%nEfqy z**b!^{3{{4U!E;|dYx$*qYf(zywQc0a>eJF;NSkp#$bISOiXHj+o{ z5LRc6hd=UitoZ2X;PS2q-%B)*Z%c#mil+^gyx&hPHTOgAU_B{FIR`hA#i^pfXWTY< z5yp*P39DXa!s(${oHKPdcI_|48aWB(s@_!^y=No*t#`mr>VGk0#S(m#{syP+%EE^x zByPnkleJSn(jlm*pa#z4SNf5-|DL7liCw5UfN z;;anN=gT05hY5l4uIu>u!%g0-tG<{oZGtU%U*N8J58daT4ocm=@N-N6HmrAp+4aNt zDw9Fiv;Fun>n4$WE6f<0(Gl zw4|Mu0f@y@@o6ttpTrN)EB;Z`aM}n2win^jb@S2w!8X+B^8>a-iCKNMl=J)HY?=Q~ zMZ4l66ss;2oaku80tW-qF?TeE1f9hD96zbiDhF|yBD{=UOK|szWiT%dApXxgFEgN~HkP{2x`uwr z<=7Zi0-OeeVw4|bF8YBl&N@Q4lsC#*Yyk0Px$ykhQ99|14@}PbEBLBJA+z!VgdMKn zt&JCFl)}<*&4fn$9C4n0ZrTU)R`}Bgal*_}n}^u`%p4?C#OSHN$H0r~v6jmsJ$KFI(;QSj()ptVDPd7oKp9GaFl7L?iKk;UV8{qNl-{G`MKWxe1gA&)j zY0H|6R$X6kd%hXwg!hrN8lPZu%V#iByD2#IcsV-i1%PPK7s9(T5qf4kfobcXK)Fag zicLKVFEjH<(2Y@aY6OpJS$>9l9|5wS`!-5J-8*t>@=zQT3o0`}6Sx*!jJktoNOd%0|a>4sVTUzuon!ipTQBK+3ff^qU@)4mQb@(1?d`L#;d3fN7ppK9-9m6w){>y4aro}^YtSmlhn|z14oBFEKHo3H4jy<6BivT-;erZc79W5s zhMLKa)q5cOiwj0*aW=^l-wH}v1lY=n+v(1=nDx${+WVTp%no&o9yyO~+m6B0>X&%6 zCJ`^^wb3K*Qs|GUTy(0A0+;l79J*zRCtv)OU+-E3U8d&X@mv(Si-KWTARiP%&XKas zoAJES7&gan47=_`I@r%?p~la1F!iFBwnXDBSogahAGR9cRC&&JVa7YyJK->XTFKQ} z)BH(awkfFnIDw6aTxix?S2DyaMhO#9rav+r4&0DoltZGyvcrt_P0qr{6A9d!s|QiC zb$BCT9V&kGh5qe#z-3_>=`eE>$Zg&QS0<-|!e}|hIlvsudwubT?HBSz%1=-_y8uR3 zDq#wzm2O@Kc>-@?W>1DRBWoN*hDy%UJkUXPzD|aztL^91S?(p z6uxM`g5oYmq7AJhLaCH!@#eT@xAFyPK(-!Uh^D4 zdHOY&{9S+pLOI~CQ3e{qosfW&adT}7UY#t$=v1BJ)`)b_SwiVh=_VRfHh}C%2zDp? zld1xD6s$G`TklzLsk{s7M$3YmL;@TuDoAjv`%5D5J;$=1L;3{P#(Gmwx6#f(c|iY zM)_a>CP1ZCHCPLIU=ugiDrPzOlZnJo*Y|Mb*<4(4Lm6&1N5ZytZ{(B1a2O-eu1q5Kx4QERDOI0i&t^< z`CvO4I=B?as}B?Pm-^@%=Y^Zk&O*BV8X69Kr(-gbP;E^&)}HW!;TZ1H1bTLvrmSIU)GT)ywgK|I}aSzm%O2VGb zGBg_4fEFA5Y1Hanu+cmQ>o>Wh&0Rw@yJSF1%EK`sUktIy0Xrp}(Z#R_K2#ioH4`qt z&X94aEr=lUu5IK{5$9|7yb;fN2a%^!&!beZ3l>{;gNz5|dNH?Y%raNv@tpJByU|Fi z%j)6r`f`xd-O7tdGlv+TL}DO*9Fo_^!2XD7Y@^Z(?c*jcRG@bU8q)=8?|L2=e zeDFN?b6@8==XVNMbNB?uh(=EecoaUtt-Kuhc2~V6=SoId8x?QDx_NbQep(x9UkY+hBzWQQR6ds6N`@M-uh@EH1B`QJKu4C+ zujX%Yu%HZ`CtOL~_!RY5ybMbiZSZULJ4{=)7R`j&ppYYu)!HrC6CVMe6y>-qt0D-U z9Zk<>1w&nX7Zx!8H@?69kU!ZE(HTXopTE|_L#ey4w3iQG?@OXd3wj{tz$a47Gz67x zPKCuCLR?!`F!C)}N*3-(gaWIVM7MGf4%V&29cu@myf*x{_+sC`<@4#A1+|;k~Lh>z*g|NcMwZE z595%GB->Od1y7c`At#JLYLo@_aheIh^~RO8N^Fs?i#UCBIoswy1o>GJ4=XIh^>sp3 zan4OEB11!J<#_+?)o&Hn2RhvjA2 z32uVy0`(wT8yy9%3=f#6&xmY%&5OBy?@>>!mE*pk1Ip|8$bVb%&`TvoogN|uWPevyPOVr!lPYZSIA@!yt(wi|fOgGxWLZDQsFABEwFAC`!JT10NOAKIQlTo&-m|EUOg(bKZ>1WbD*g*p zA5j=9GeU#X>#W<2e3;?$o0Gq%9wPJ%(V^%wJd&`3>VbS5o?Zw#f2`r`wL*-J6=7e_ zoFa#gjggp{LQsF&9WTy^r|GkcVbAY)+7#=HdbjGqA(D~N4)gGmjM9g-}sL8e+ppqn-6wXza$xHMR4bzBzwgN6|z&$9?JNH+4?)8q37N% z5c2bYl!g54-exXV4X2Q8fBkTIq9}WE;4R#;7^2$0x8p+{S+M-?9u=2c3{5Xu(Chej zI(JAKgVe{!ceicyqJ9>9_v}IKo~sbQ^#)#A^b{K7Ef}sy5k4q<$C17e4I|@Oq^?Vw z-1bt((xsQ_tY-+#2Jc|$k(Ho&;XSM!H-Swd`4HL5<}4WAj#{VlsOgMo6i~SiZ&gQG z^30iha{V-|vP}WSNFO-Ro(#E+F5BjmgwcMFFn@g!)8_XdU4Kgu{@TgHpIvWBSz9g` z9<3`ZuGE6|9WkKw@G*Wp@B@u5cF>Q-o?s>alJwi&fF&aVFuwO0dMAz0tH%dGDfKaV z(kcNT9%Q1j>SgqJcnLZbS?IjQ4&Muh;isB#?_vTcB3_7LMfkfoO>cw@FDB z#xq{RBQGvKs^o`Nz8zF_8C!436J?rMPvKjsH=+sIu; zcycsn;r@39z;ED78|%lJE)@n?rPjh(ejo~JzU+ga9}nQxEfU-+4Sjs>^%)=i-UgvB z8lj`z93<-=<1vPoGjm`Bw^t;=zJoG2F~){mo6k_cK$4p>>o%#n+zH#(Fj`gFaqzKW z6OA(kc;S~RHa+Iy#Vn)l&0LOo85=caTCp_iA*jF0gsN2+ zA<-fp#LHj6Lq$i<=$nPq>BLp=uy~F+UB!^`nQ4)=HAgG{6BuDL0A=$8*gp*4!i$LY za79EBycUhK0_H6v%-)<89@fX~K*exPXg-`sQGkzvj+po7EF>B$GeFisGNAyZ*|eT6 z)b+x^dSloonhdwKE@9m^2Yi2j0*{${ld0yrWGLVyZnK-qO<@pteU%}E`%{^|RI?;z zks@48aS!aa^MX8oK2+78CXwU}q-mDx&r&;v%CQx6fl)hJYWrfX|61Iu)&b6Q8Gl`j zB=_CSyWp~82GlKI4`xxaaA4pok|Q6OT?7xN{7?l~1!kYkH%QFCX5i=1aHu-VhGVN9 zLTc7?sud{!rwgv5$+@#cZ%T-}WY7xAL-iTmyn?zXWa04*TW~JFJieZH1E)O9QC7_x z>)hVsCzW5g$S;h{jaQ*tbMqiz<5Nuk-3k0QZk#8P{Or%hf~e?QgL?p&)7!9v zs6Bqd=>J-9>-!wG=j$>IA8MqsUfW@5h8Vl(rWq_VR>23qrf^J1iYsmQ1{T&>;n3o6 z+AAsoimR)@uCpD_7_LRZm-Eo(mO1|Pdr4fq=5h-+F*}3@4p2UW$&0Pp3O0V@=ruNj zdhTZ4my>>IXtWgkhPCnMn*eNasw3HZcwnvVN6y(B1*9l$24o7&;s%Z;!PB3nc;g<$ z30-w;QmKVctk=NVvkhA6&O?muT&|1GDE^z{!IF)T;-1=n2Iv1AfKS<-FtF<@{Kw=u z&pioYJerTF*$ppZ94p4&pR$7cc;`5cw0lD`xF^twIkU$4vT&XC5z)X`wrjr`f=FU3D&2IbCsN1h@P99ryg8qZ6!R&+u&XM6`GB69k zZCfP#BDVCB_A8Wa?jY+v%F)4vG35S=LhNQ$;`}Qj+$mZl9$OtGV_7gD-x@btN$Y6Eq?n@iM#*2Bn=l#;Nc@my$Y?MWm}AX!*)To z@5}{oYym=Xiy?4>|nb@J+ER@IOq&qdGrWTca8wO>i*^b+W<8 zQ;!tfZ9`q_YG{^t1OuYc*mG7Jc}i!Y`U`)EiYvvaZvk-N&T8_xx)pA`*@h~**^qem zJ)Zno5AGGr_h)Gtep)%7^jap8CGxeb`WaL7b^8~}+7XFy(kVpga}*w`DuSOoY9TR0 z0(wffpoUm3hFy+;g%$2Zra2V7mAufaD;nbuRA9+3f84(y3xrbj(4R=KvzKtmAA=vb z@3%SJe0LBJ)l&@A7ekA6ck#X{Gvn?&4Z~~1kVreh)lf%p+fV_PVV(FSs+C3M%2*QF z>clNA4-;ZfKv%y9l$Us*``sB>KjI5M1!XvjBBmR4laFF>ku*E0TbTXeVKHhyyGCxOjux&O;NzaYlZ-zGB1v>@7pS{L12y>p zn%kSm9^-S+pvuEWjdi%k{X1UZpJcixnn7G938%pZ6IK1l&fZ+Wm3G+I`3iSed0<$g zG-TbFhMJHLC^&zZriQj)@_mHM2c1E3#v1T)b|oICikQ}S5wdvqCwSr!Kw~9CVDSrS z+{ny-7yr#*+$8H7uXtME{@Joo5)X7gw2=ggkNztzSNHQCL& z-GcDpJuiEG{W3`16AMpNR?@aPRbbp02G0JJHFfqHmFlJtY(ru4?JNyCuIIHu$L>agU_4@=q$#e!pqg|^wqPy zH0!MtxaVCa(jgcyVF+`*bVfj=muGfgc+Q{W#)Wg)*4z_@( zlq3D>=!$k);L@JK5td6$F49aXg1x@&39(mo39@}$L*e)9QzW<60_HrrN|Fuk z;7v&tsNWvTI&}6uax^j+Z&NDB-Tunt_}wu|)PeTjxDQFIMojE;Nq+XIDGyb>etw# z?bb~oTeuy)k9FhB@fggn%mYv6E>m-V3VN^R;csCXuq(?U?^oo5c9lPDloZ3(rj2+l zbq`p~l|bca9gH8c1t$|}G@d1ZuGN`%VQDA^#%_Sqw^l>2&|PdY7Q#ci66m7v5W1dT zXT1IlaBs#huu@IMWn+ynW*dT6Hu11;77l{*vJ|Ax-lORLX->Ju7o42iMizcJMD0Ka zd8^AoQu{MXUa0~f`Uzy;<(>%@57~!PKVD z7e-ul!0!5OtT__JFq)F#Or{t67GWIH!R>$Uj%mP+rgZujUbgMg%!>RuqOQt&0YNhhffLV zD{Ws5y)Le(p;HbnznJ?bZw|d+B7>s(i`iaB0RIZjMXitL@on08VV22xw9;!vwNu-0 z-a=kBXSEhYPxO)9H8Z&W_kYsK$$q%{Mi5^(d7|MNA2>331$?yX$>JJ5$o*apOIAma zTd&m6%JdH!rwVW_vzfjyZ%1a%>IX*7!OabqsmE9o9@G;>h3^Ak)^`?ekDP%0!o_gU z>M`gvr@{Bf>b=bFLKI#KR<4@vfjsvXw! z27#Z>5&U<1NZ;wiUYy@t0K3eT$qb2n*jD)&_HFX!jDGsXI#?SG$1KG;^PjzgwdHms z$NV#Wo-;xhNi^VXH77jrjzf<#CI z^c_K85Ys=$5`E>oLv z85gPrlCxWx5-D-VLOH#kp#HA`4{SS(gU(5~-G)M%mJqj$la8sssz^BhDzudC$Gd)F zkoD~)x(YX9G+Bnq)x6vQ6GO_n%Lk#m%h7n(H56XDluP3hF^_K(&id^Dm?23juj|0? zBX*Fh^N6)-x)cZgUWCSOO_VZZd;tsJV$1b%5}lof!(OxD(HdcPTki-ozP$rqrsLqn z;R3My$Bz;j8ffWpf_gKah~V9+=(6u6O8Fj#D;X-#o#6@pV#7%BQhVSvbfHag(YWKH z1pBo~37k3h3Eggo5j-^n4!;vGCt z!AiFpDnF+Of3B{;i?f}OyK@n)tP#cf$Yk6Vu!@RneS;566zS;C5t3AL3i2G=7zUR< zM9m+i?@}u9a8Cj~;O-TDYpo5Nq3S9{)qK()KpK;%~(WaRrQ0u0UH2d02VXl=S93A;-)c;YuD4cpB!@_l?q2u(2F@ zex+a|ACtYmp##B^7Ie+bm7HPgAY9lS00rBe2xoN(1hFPKfqGXla`#*KBq@N#;S7Vm zJ^{*hGWi)TZOnaU$*}%^aV9)^(J5ROKm3!yGd6s9ZQdW8?A=Me3T0u^!YIgE(#smt zPeQlpQqC2jKFr@Q2%fgH**<&S$mvNx4PVUmc`n{9DMa zuj|MuO=)U8)x!AgZd3Zyfi&fDQBW!x{;reS378Ymwag0Js;P2xtR8pu8`Z5n=p=&H;W@EAEIm7ky6t}GrsoJ9 zV=0)f-G`fVxOn|pB7{E7BSm7>sLOr}Zy&0_*t=%@$G?)Z*ZwXv`^4fa`8H~*zX)D_ zEoJU*0o2-EoZGa|52oz82&DVKtgc{k5+B1k{sU+`X@TaWQr!6dT#Qlb!4zgzR*~3% z2Ulo<1Ah?)7uQ3v!*N`dtb!eLrbxqkH}GNDV9zCmse@h|{_xpS(8MkQ7ln7UN6QBf z!7=i2*LO%7GX<*;->_)TdgdPfnXY3MQmt9_g>!wKI6(%H$Yt0F59 zEi0$j&t~Gu%5HL7E}io#y&9JlxnZ!)80-~U4IhoO!8u8u{B6#_qCjWjsb>bQ>8G*N z%u2uYZ!)^iz5uan4it)QXvVC4DmYY>1c!Rl@p-rc&fS>E_`4T_z-e*l?ki?mr`^bj zozZAzw3PhXzMHe6@+|yl6Jq~28IM-ieq-_sQEt$G)s)@$lP+vvdNp<@!PNz#+@Z^< zaDM*=^pbbORnsLz+4C>VGdRhSNV|`|6>GqUcQw>$?}ID22Dj-mJ0{+Tz*#w)o%3@x zH!$iCD2E7fgUdRxb(S@09yf)U!XRMXoXNG^?GMZ699pMYIFBo^;}$mDTf@wD&v4*U zZ{f&rG_Hy+2knw73|_-9N8Qt@!M7Nq@UMsL6IH`A4ZgTa_cKZ`bMo^AkC1irCP_ae zz?MI|1=fc@?0|iWPa;&mvthj`8M7D>s3hLIi4#N0RQZOCdyl z3Us?JLhkW!$QSxcS8pK*9!)m-i96@Qh@J$y^w9)~cb=dobyl$6ObyRB6~K%wzevNk-SoWWARa!riHX6QNe3UET*kwk`#a~$}1-H4c~H22or`xu)40u{$5 zp+6)Lt}gzGJ3r1RMrRC(;anEn(J;a<{9|MVQW-Q#lj`&G<+lZuYQrX(TPI)rNaY2SIpQAC1^t zh8MzIK6+COe=-B z`f6T8j{#L1lzo9b`B9JrC|56s)yD<60yl@C zEYThvne&@B%#Qh49nT%DMi-VVJP-PXCr<8yUnP;`U6>~^&~%5g?^5h9-$NkHCJFY- zCn4W5plxq)Lat`!c&HVnU^@jFW|BbydAh63|FrZnO%>}oTouNelwxr9c% z^vMxsE9QZ-auAq_97I8_f4Czd9INYk(Di#VDi@8=U1!BmP^20*d+moMJRH^1Li3YA@mvws#k%5y zTTN(U@e!_up8%t{WD;%o8=jmBbz(mYEdg}csY+-;=e$0Ne+7ZTv6tb2mJhvW6vzV3uiyXt9hi5bj0BF+8%+6i7{ z*kPnn2lRb&gQ#U&VW?<6$!dH6X428P^!XfaW$Au^ee2-PCMO*CbOSyOrUN?l6xCSZ zO!*lO>Gq6T6b?&(Lwzw2e6O7FoMnnpSMR}Dd5);@q86SfzQV;@Ht4@L5#VlI-bPNH zc#2boN5IDJ9=g70g_dMhcy*qS%RMCoUw(-|LEo&xyciC-w#5*i`FzEtUgf}qLLn?+ z0GiG3v6ME)!=J~Gut8NEHagVf1@mB5)(#`oSfPdvvFq{l^-hrW>ZiBb4ikR4GO~Ux zfg4fx(Zg^RqK1>=`e8(}f4%E$0$$<6*pX5%~~p$Z!a>-=XfQXBeQP zj{{=o$@tSJxIx>2{I=jl|I=r&RXH1%z3d?SzV*P-4@{+^ClB{ax;tqZdJGfh9^fSu zM_3*soYGhVW4%wXM;b(mZEgw^>y@o_)X@X+y_(Xt@PsMSLpo85?(caVOjqR z#uGa8sNtM4*dpNshO=To^_L~hUCzNfVK#7n^HFl;7BAafn&GwW{7Zu#)zJLiVdTYu zJZ6qcfk-+D0=(();!`Tled~@jA1UK$48_D5njF_K5w3a25g6hNMhAYzo4QgI)<FvaX$q$7DnLOWwzz48q+FAJd+v*+~>JpzWA3oh41LgUyut#JjPG(u+i`C9(?YjoFG%I09yAL+6j6jWv`E=cZ zbjnrd2f6wJ5)(><9lU76St|^%LY6&&{avF9dD&e(l2E=3G5zHv<#kKD}(L;I(sQqrD zPtO%YZA~t&ReBAIcWuCUhdB)^UJTSl0xy3oAmO16L`8oYUjO0@x|Q5T3FX1GmJ3Y0WLV%qs&DTAI*e zR}W05si5INB~h*UM|TH&frlnf(Q3XCaedm3{BslN;9?I_tCm7ftGmFF7B$@Z+8DFk z++btVGw?4-qYI_?qf_!y+Rx)a2F$*rx|b0q%q*l@qvd*j}>KiL`I`*ATaMr+%TY;Q}iz~?jbw`%((ZwLTieYx<>(I6wXEgrvfFx?MV>3B;G>Gw7m;m_p(5Ts6Kx4Rc)tDu8H-2T<+D~v(z$}LQeUUWpwj}dc_;OY$ zc_6n~m`Zj=5Z{n7NUuE4o){`u!fMzQrs#x&N)2C3l{f$C41do z5u3}R?1^s!P;~1!9aPzXML!CWkMTsV;uhoeZ|AXDkI}n=!oc!G8I-r^LHwB>R@+O#-KysBkQbIs{mCufX0 zcaR8QW;|B`SJ7_qbC#y5Eo@F_n0wP3(X?L)?(c{orh!Xf@wO8El%OY&zx@R{&FRHC z-p5#PVr`BJA(Q75iP9k_^j;?iUM?75Rpu<=JA zSQ_Qxr=J4Y=O}>P%ro7{aMTv7Jce;K1CSg4i*#Em)~-5GX^Hsc5`@cl`Q z&HZ82;1vk?8)4RXE75R$hd0;Qqw_{}*f&2P#*5eC{Yi0dqvKuN^i>JUzX@XY`~}cD z{fT39a4F1~-OF-nc@64^f>_?ld2n);8;XvuV{(En7~C2HFC^pO)3q8{uQ(HemJfoD zbRd0ye+jfP?61;^MzZAU7hHRKH%97*F&@PdB6p#c9?X&e!%b2!YQo}NqTQ@^8!PZV zWQsP!4AZ^lH%yOCQN^a~AbzqOqnr&eTD1{^b~D`D4d>wTq7v+ikA=TVf1rYEPcjbO z#h?E9@MoqzULJo#=68(1_ebt1q}YIsFW$nMA8qh&voKn2o`F1^S2$(A5nIBVz$9of zXq5&*+YRR1Dv$y*-8}K~q!dzt?rZ z3P!h7>o-8h^$#E<`Ubr!b0szm=e} zC2`Z5OC0zQ+{LCs6FVk>P3{1@&Wb=xHAXF1tSB zp6=n_u;rS6hu6=SEz7anF8?4r$Nt!Esm59d3=>WJa`W9793gFO!NG$(m zgCV9dOg3u}qIG`j_s$u?C+maomPHKe+E#<;LV|SpN=E2_0M-r2=Q}KoE6VPNlq^h^Hx)PRX`tWQ#n>nE$54LzF+9Y05U2I7lO*?MnAjqTM`bqR`#r1h+59>9#lRG0 zocf_*8mVo26#Up$PUmU0V9bXGvOjJB%eppkKHm(3V>0d_ z2fgdC>V7kLbbrCBqxvkrBF6Wp6A8y;nQv?0Qy8k2`HxeQ22J zH=y)oXdfJz!;i(={HT*rAiiKaaFxEiA!d3F=-A&>WB)G0ZNqAMd90d)8h~*Vmydq4o!*mkO z{xb%dcS_uliB1?3FsIL^<55`tFYE2nb(moy2%FtJFhnv4>Rj(Y0ha^E7kHA7KA9lU z--+?_9C7`OyF}&LeArmqOr1Azuzz+D3}{!v^qNkhUcVQ|m5e$0uP3p)D-EB2_JcH$ z%{V0D2B$tmqUqi95Lo>XyOdqAa#<>Msg{MU=G)-jg1h?9ykBwNU+d>|9~0p&zQ~IT z+om~{E*o*mDGpD3@CF^{a40aD;Ot-R0z{mL>-EEjY`BEDo$;Cm#73}6v-8lU1WU8!GE_GF zp}v9q+*=W$SRpb+Y$Mt*%OV;^r*@MQ$0hNl&S%0y-T{x)ALQlOvy`uSf|@rU)+I`C z-*20O3)gGN=FM*)F|B~*_n-*cc3I)Xe^oTSAsMv|!?C<#CBCtY1X=Scq`!>tOqUNl zh>(MM)(QA9N|dX&U5IUVI}I*644{Q(9bP)tNsg7whOP*t{)(m|e2O4vkw>xwi(77T(7zE>V~z=?c;~i}S_d6cF{F7|{NZT-Inp-n|rG zEBm6oi3|Arl4jRO3xnm^FBq@-722e%plx#|K3brJf#rqJ*du_lp_w$L{wCV(N~5^U z8K1<;GyPsnfoS(%T-)nNtVHdJhlL(0f3U*tj|u4dtr~X6R4|$1d>Hyx0D1ey^`&N} zVBYyK8fPE|Efx2$;h-0G2zkNoWD6J&`3t}FdANgvS4h|JMbI`2z(r|wpuDyQ9)DrH zvM(L+b?PlLoxBxt)_W48`y;S-Cc|%9(ogR!_Q8)2;>nEY8R&gQ6i#0VW$~}G1M<@w zf3If4)V&udF-yS8(y;l}zv$ zeo790D<+|>dJNn4BmNWMWjkggyy(frq3ap++Yx@6pZo=q@&-^VDF?@7rQp?}m3U># z95h~f98aY0grw`tGj=y0g#KH{GWZ(_R~bKv&IulHXYK)-FW%z~_ELr=TnX0}Ng(TN zFygd2>Y9eq<@UMY@B9!%Byu2UaTp#A?!xJL2v<(W;;+l$P{jBo>X}*WqH;RH+qa3! zp1-X7;{}W^8->?=C*a_J-5^Oa=%n)uxaG>rZdT#}b9;AOuFb}J;a#;Q0Aw-y-WC`s1j~o|$Lf0tFL$8FD7(ZHv5hXsfSnm@wxJ8hM(xYI_@Z0Y* z+Ubm`Zd4p(*lT)!iNy&Mcy{Ur#5aAzgDZIn-fpiOGMJgB&MCzpr2( z9!+zg*LD;!xLQl$?44KW`0i z_yhmp%WcacDMpaP+9gZJe{ZOTb}~EHwLk7S@Pf2JMp@3BN2K`-s(9 z)c9#m6{Y@Sn(Ce7Upz!00fS} z=lS~z--;!m*zaV7;}Lj@l}TZ(HB0wj1zx=&hUTxz;77hDE}IO1`G*|f-v=JN|5*$J zQ_67Wbw_Ns*ol3`4q)pk#?DvogdO}U;Qsdy<3)?4syAin_eO+BjSn38vPCGMQN;PJ z$9Qs|MU#at??_x^6xtk1C8yHUB;qX&;9jW;>gc~Cn-p4V2STwVO6Jb2UX)Qj98Gd7MU!omsPA-L@r6q*5 zXg#OjWd_Eb7vN3_x8vmFt$4FF3$^;+gPn8|O;pH1mdatY)_n^s4hvPDX2R!qCgZ2Y zbO>C(h_eLwaV-2jC>Z`v(Ruh&`Mz=7Udbw@B_tIUMa#Lb6Adk`Z)p#bQW~N`8fNw; zD^e&kd!G9`Mn;(-BSI=GWJF5J@A>@$Ugx~d<9Y7qx;~%xyOeD4Er2(i1)vmfjCl`= zVOTes>|opuyR=JD_oD%^Pqrs_6))l*1Aln?>>i{zOkmWPI7n~_z}Wo^$3Qg`WVR@A zdrl9*uk5+-`(qDTt7J;Dy6oWkLO6#pdz<9;0v2vLi`k42)K&v6WIZS5;O z-j|GP%|*F33jh>Z%c^+qSI z*~bCt<1r|ezYM2T0&#^C(_LLF4NoL?L$moN_)#-N_I&F_&)`Hjx@dxRl=Bi72i}4| z?@Qq9xn^`X{thqSj6;`fH=KTmG@ z=eu75@xL$V$u%Y@Q8ACpe(8@Bx_`7U*QUeVl0rzby99S1 zspG9v8Tcu)9z7#;m~LDZ-sG{wI3EG7?;sENWLYSTyUb!QbSp&peL_^OP#RC#oWp;C z4%+F8;%tE=JM`-C>4+4%wR*?t`) zZGGU)0ypaORFFG9LltYc>?DqxBH(>l9K1L9M(dP3;HR?zl;-y`JnRop+us8s$%RBl zattrkFxP|UAV@g=#FVRR@t1Es-aGRKKooORqr&L^u{W?TFbP7cnJhWOyR*(xL1Xu3 z!rGFTH@Z8G>Yet3w8AD>xg|NpViWG=+ ze!*Fk=thi0x584AkDt#dfN{tSdMIlNrcB)du6I022-wqPg&JaI{vXWAdqBKK7_RF0 zRfZMW2MvwP9L&apI5@^Lxko1JuyX=y<$iz=HwSk4ChVP6kn^y)6KI( zs9eq@`MA;+hE_8FOGBP0Ho1Z`^2(3s=}JTMi`RJzti`!5R^@OjcmXv(V2S01V(e>q z#Y`^0mawiogVnQNK(F$F-05BSS^G}BM2)Au@MbE9X0CNasV_0OWV!%H?Zp}i;zs$K=4eat_)dvrNYxkQt=*<&c*YsZ<>mjj9y zvf#c&1c?B9Q2sd%<9mxK-7LXXHeLg%$7R{BektIlZU%ZkSL614H%xtg1+!Hy;}Xvk zz<;(6iu~U}qxW56aT!gv2YYT{F?Ep+V+rlOFl04PuAu!s@MFUS|(0=q6 z1=5+WOxqhKXVFXMTJ+~lGnwH6W{4n<9h`!oU?5PyK7H1 zYI|g(>XR0hzwm_ivE?`LWz1G$nl+c(t=O0M@MIojUO$d*OONA^)lXngq6BC1_g5zG z&;^FNg|J;`7!9UH*!QJ+$neQ$=+<_bnBRFqi?W{KuwoQ;k4Rv%o)0hP59Ij&CJpF;z8~%bQoaX2R-Y7w|BAj&o`+|7WX-JB^jWq@MgHUDGiPN?7-%= z8mh?8;`+}gP!N=Y{VjHQv$Ys6ytXCRw~tV+M;s<79z}chT>R7Bh(qOHaeJ)}>#}Mr zDySO368ReOKyjIZ> ztZ;~fhu?FczhMIy&rE?`y|q+v(>bz~;ncIF;_;_>0mPJ>V@d54EYdm(UR&bmx4KE9 zxtlq|walZE@4bQRnE)996i~eaWDg3lZ@%kdk|d9?BHbT{yE8xoE6`2JiEa@V!VN)j zu)L1hIj?fVP%VFKn#=G){<&der~>SoJrBC4HiE)!4>*~10|V;nu`G5zzM0d9R~!RS zN6{ZN?d{+nPc!De@PrE?`6%5MM#Wci>1LIiusHS(nYg+GxvzcUkoF*9pB=-#Pl|Z+ z?kcz^Ajw_)Fp_jPwBce!N+uRGaBSwE70^UlW@;yKMrD8_pjohxQ={r_b`b>C~?><)sGt-sJafbppWM!=nm zJnZ}@Phdf^IQy&CRVe*kiBr#<$;c&@JO$Zq(xLPO2V_FP@%=9x5;ueSl@GA7bq;%F z2?zeoNu&?drQn8VJuC2`BU#-TfIXk0sd(l%nm!vOH(#~oi#f3GX-txW*K8?)Hl zjc3p^ybiQG3sI);Gcs;@=$4Ixu*g<;yx;=ts`kUzQ!429yba3QJ}?}Tcocrr3Z2|g zsBf~t9cKL8Z7nMyk>?7INu*=V^>q0CpEu{f!>RE1*HKtLoJ!RbFN2_gZ|;rlJ*3Ex zIoC3Lfa10$SfM1u?yV7GHz(i5`q}OPBLnbQPntYWw&bjk_a&#l7qS%W_HmLsQ%UB1 zT`c(Y2P0M(p{7YHDX;CPy9?HVz)UM*@md}h?r4H%qKk5XZ3Jo@Dkb@>?$_geI^q<#^Gpfb60dLbD3DB#4_Z;&Jsj#p!%$%Sq&XxWki^G4!v z?)5=9&-6{BY!ATKV*+fOp#pNF{~2hjy@FpS)1ZF144*u&XT=9>1VNL(uvN&PQ(f~F zLyxJ^=hOP=dFm?$G44UpRT9vjG0d>s&caGK0ttuwnftss>{8hb%MKogT`}hP?fOY* zR0^dhj+UWb><-wFQqA-$DbD+z3V}A#=;%0yh)8i6AJhwMaOLA9y^fMfbG@J7}dIwQgmy2GXB-t@>ADLZn1?G!4 zqM<0mq%WVQ^r;gJd-yP!%lD9Zi;uhaD&yw3=>=-7H!urfDLUQq;26bzfD};zMXF49 z)tYgnxVWM7=m@;^JB~>wgz%$%8-(pUin@yw*?(1!Ls?-DM@`id3T7hB%GnLYV?HF< zLKIe3hLIGba{47N9vA>SAd#$ny+cHK&MQba5X1znbSBFjie2X? zSl9W-U_&U==NebTq81+1zPJfZt}AgTe=LN{7M^(HK`u$L+(x&(*oZe$hatt%m*{2( z(qP-WDEcGLqqsg5=uv0w@j4$Ni5t@T1HT_X< z_Zc)^_XeG~k3rKZ0N1=KgEyaoF#Vo8aPOqChKM6p?5e_}Y=&)jx`>*ItDtJ&b`l6_tkpUh*f0K28`4H}8?ILgQ^I+wW z9jSc(m~$Yo8lCbTaDew62(glJ&eSeaF4;i~L}FoVeGO~!bT`A9Z^TPIZZIQI4Ahu@ zkHe;MkdWDgc6rzEN6-M1n@(iz)5B06<-{qM>V}w@O)w)R5%SYUAc5ii=7n3}ot1p- zKbyCMALFH{dcuo+yP02=i#;ZML8e;J@CLsr?1j$ zoyKUxb|MN?ZXi@O7U0wl{JT}*YqxN z^hZe5|A0IaArM{mh{?$?ESJ(&R{rcoP`kJrMn{!#o6=Q=Wi-j6uE|*OF_{chml9d# z8d@6ih;=i#7q-i4;Q5`YSou1L{L`$WjeWBqL&J@kE11A}n-`dIndu(6Ot7@<--B&+ z52^BJFFc8E=|kWKo@IO(bJ=ab8{lKtUMwCEX8!;d z?lejxc7HuVbSwkb?C~HY3#*YeDh)!FpQ$`o9M$B)pz-+#-5=BfPjg@5i3)Qx*q8!W zQl{zCD;4++z z={@% zGqZb~X#a^BOyAceF#zpMDj@bY(~qtvDC`pktE`Rt`}aMXWSW1F5uJ}OFjx);kWjDpf=> zuao3nnJB9?hLZ0ZP{SZ&XIp1ELrumcowk3y3s)7={?q-s0eX`btC zoOPU^E4Qi!Pwlz}o*g`JU;7>|&G}6{dL-EHW3ueumVOX(pM!-aeK@bh6yhd5VXUGT zZ^)Zspnwr@cUNfNxiNv+U!3V(9T)V{tb=cBy0Cw%BU~Y6@UZ3&Qr=w{*SZahuU^G_ z8arsGZZ2KHCk7*mGBoZYAGht7D}<>|z=l9!?zY%^cvWA_dbgBFQJ$7?5hl0P*R5dA zFM43p&QLlPJq?4~-{9ZJIoO$9hHC%4MJ>s_AXlP}dch25R6qyLb*#kZ6dP>6-%I!G z;lR~7X&4Y5jFS8j^lnZZPRL|%bo>9&seR#)ox{VP(0&RT&y{h%_cS_d`;ytc?(}?6 zD5Nv9B(38wKy>K|sO#~=xDgk;6_SEJ_ijU~VlcU3yNO|$CD3OUk@%q72Ryv*z^yu4 z+-WchX~&PCm32SZt35#B`%7^8r-mlU@pRfUAi|Ai6^J7Dd{*?44YFD|rwg3ZdOL8tRM z97?r?n7LDUW^Xi3ZWn>dGQ_BTWw859Je>U{%NA+$fri^9q~y{OSl#Ok<(B8*0_Z+Zdhe!|N=^7Zzm#>_z7cX| zm*IXK#y3(K5SH11`Ay6W;hQh@J(z%7dcE-S%Vv=7o5|(%mj=UHes)DqE9_pw8Pj&csb{G9&(gEdx0kn&jpvxs5uKxV% zSl%9lrhn&gb;QcZw^u^!$@mYj<4qaJd+>lu?l=6+n@j6fyn*spQQE#|3|QAp@8vzd z6NnnoWwfk{;eALy(H``_KzSSFsA`};)lc(;We&lZ^z8%g888EJ^Fh*=9|!J5zcI_8 z2t*zR;Df(B)c&I%ahB`C(n>v|eoqO$6fYo30f$LMRXoH_bYt=NH;_Jrc=*{<@LMAT zjLjO06_Tlxi8H;x%g0^T6+@j4Z-+O@vq^XSOT2$J2riG ziC%=EJ9BW}XF0g%&N#G19>DzfyO2I&IMfG3S=-Y(sLDQdQm*I$?Q@y#pw~+{;I4vS zN+LnfH6Lw1D1l|?Fv%FUg=030(N&f4_R5?>|@^ynHHxHApWd-^e{ z=QEZn8sGsf3g#t)EW@zVU|jte?3egcmx6cT61oO1ES|wNv3i2hZnC5_uMhekXhTLk zU~TemnA2~GA{T|(+0XA|^U(*=eeS{n-2!;X%s1o|8!^z~D9e0PCycw- zpenb8^Q+p2Ok8Ux2H_=~?yzIH&@7Yw+!lzl?5s1NuZN9k9$VD0|=K%x`=5hYAB zp(u`--7u{4HsBzkg zTI;W4E=b}V<#f{NUxUBL7NEnM1Y+P4P8Eh29$bMa+c(Y?w$CfWcN-9-#9wM>4jm#J z+zU9oD$k+Z{uKn}tN;j%L%yTC=>m^DL?+Wx7`O;7MSsEJyGYm1>%iC38Kc>=mronh4?ee%^X7`_oJwb3dy@lv$?jYJqjB{e< zDBQVM2AiCOxI({|qhmlATJn8`ima2=mEi%ZkYD88>-}g>m|2rsG%9PvV)^I~R_-kY z*t2~OoLLtDnPNA|dFNj+=erVUTxEQuf&TdFt~l3vb`VA%bfr_Faj;uJ6^pbs=BWv~ zvQCMWq3MGGGSc~uTFk%4S$Fa$$1dK5e7z9?Yhz--=g3p|+Oz~T&Q}xuMur)(pa||< zAHaPJI*D|Y4T-oZ0VQ!J_;VnUaS?5W&Gj>3{m@M6W$S=f`k1Vxxf0_RAEApD+{F+3 z-h$!XlHBMv9&TapJ}_aG!=u-;aKX#Fcr7Of!uO`bEhaY>@@WtXhl(-uvH^hfH0u%b zPHMa=0xeRK>67wT_@Me6mc1RrjyWN4|AYYqpX3FlCTEBv0VHX!d_Wt4kO>C*vam% z&~U9aj@{Ud-yE5IWQ7F#Fw;XVy?+Z(&llcj8Dswq4lWoL<^U}oF zJ=H_FB$Sfa0|T(zPywB^3s71i3)N3eg5m8bWZ54;sqQp%aTVbHSab=`f3c(9J>#g9 zSA;qu=kf5d+3@_`95C~@!Wqpz3|`I;LQBr#=kQl_C^V4RtBBHDfuA9_G8jyYHshbh zNSt0_53e+@&@?7L(Awe*F>a2`GdmY7qeAfJT7H1fd89j9k7Fcoh1hTSn|FR#kp1SJ zLGJJ(7j)X3j(2w+Moaz|xI?{-$bWi`$_yt%ew8D+&$46Powoy11cYd4vosfPcaXBg zISkL{BJ8%xf!nTo0OOec=Nv`$VC-~G{M9Ys`tvun?(89PHhH-J?k?ct6QuczwD1PE zic`8!1u{bopi=e|=zlxFxwN1b&BHZ7X{3V|UM~f)bTza;9|#BOQ3$=e2J#~Uag~%R zGpl=oyl?Nq)vzIsyNorKw%lWKY+W#sriV*}UV+4_tr&3OGP&1@SZm+TsXJDR8=HLT z*IAU*nhp}1WHD~q2Y;w>j?IdYEC&6Zjd)cuA9O`O;athZpd}Xss}EF>E7s3(ahem9 zT05ira4wFRCxDxbG+R#QGdXhN6Y$U90II7)Kz_C|bXxV3n(JFo`}RACyzT{CtQAqy zE0gkHT!Ko5foL?>08`REAfng{j@tVn!vaIe*Hu(7!wEW0sM7OerMNPFAI8;IQJK(_ zXmqd`r{;Y?(a8cF&(Fa1rNwBl{0_zp>chr3Z&)*_K=SVHqrRKRvBHCK3a_0>qgH3( z#_<&Rn{EnR{wHuJ#+PUqeqmVK#mKf`7^k^jAUVGfy9(9u5W^|@{wx9S8*zx@svjs` z{~Znn-Jrg5m2l4_i(D%C3|=;3jIU@5u2b@Yg8mjvJ@FoH{!7NXfN038Z3OAFPhnrH z6s}F|Ci{0!q29V>P+2DnE_yRz_Kl~w@s2NaU2R7F+6{1#yg>#1b}*fH26G=LvEU%% zV>Xn<)H6S!+qnh!G#A6z%kz-CSBQK0?q%G$#~;J9KG4#Cg=l801(oSpbVEiw?z!+C z!Kjvs-kME!`x;~0{V}}oAc3{2Xht{LFc+O9K~+zy41jt?<@nw z2aPyS@g3cDA`5;_ThZZXKXKTUhut7h1;+*E(VNn>nDF2Nlt{YLo-u8(Iw8T`xicPm z8fs9!;>_6AEY2`T|l=Afl_m}**hJPu%KF9dJna*EDS{0MGoQd4o4bbq# z3s*kN;&gXhM3(p~CTALn_lK^4k+=cayf4CvhSxX^ljJ>jF122?2&c2v^JET3lP$9C z@YdxVO(^*QtE70@t+C;dv{jSpY&F3Ri_AgzWFp)XUJTRvtI6V}YMj6;Ryg{`nfhA2 zqY2wHK_|i`H+@AjxEdIN{9q~c?2^ER4(r%bFcWW*GoF}uu*^Rpo6QV@9Pe@1QH z+3-v37DleH{!+vksO1M?ZDo$7`~P%5W9$W@VglR`-=Ku)%QlUJu3mB^(OG3Ae7#- z$;wO1u_Z38Gmt(GW-|4DbisOxo*~TN?ps1j_srz3=J|uXv4>e2rcKb2umalTOxX0j1vgdl;c4<4|8c!xQ|YpbfUL-raL)xC$E%9hz04LXE3v|7#*07 z>s#eVv_vctwTl@i(InG1kvD{`=6rPI$y2=h{s*4^Q4A`Kt55C6Cv3|p#u?8TZn-5h ze?2xIC0uII!tw+z+?&F12=(z+!y*hkB8+#AH-kZrBg*_ej0zj;A*g&AIxfutJB>0J ziGPeu65?#Zw)YS=`I$9EZWHJ2j_|AfI64B8y)ik6Lj&E6?^^?WWisH`N(4j3b=!EI zqGnJVIBuQAJc~9#`}i!5S7aoKZ+ZZ6^K($Jb&|Bb?qn5mMR1>6EqWja><)@^wePsY z+?;%6Q7%axQvdWk;Eyxbtpunz?T+D8`zmmP`qz@L(i$MKZXE0Q+ zfk>o^`kZ&<`LH9Nna8j!st5DNwY^#A(uUwFljn;VH>Ji}qvZCTPaNY6 zS*Ur^My$TDSWDaAfV*T&Ku3J+zSfT=@fpGyX=| zjX~s~#|Y$}8zMX6{$V>`G1S@(&|d2%u+JEv^MB>Q#hudF{C$#!@2G?Ce_KHFN&?RvH{tg!(JlX>Kpg5wq`wPZ94{McOS;5p$T}-OM*RkUKi_E zE&*oj3p+lqqLpdowo=H3b;I zMq4k;S)`A9jRnAZpDhk-Jb?eyS!lVx8FEJ!La%uT?U~($e*;}%%~F2u#(4%fRdN9C zM&E>>M~#>vyiB|Lb}aH_%trkqm-4>6_(4ZrK8D)p*HFCB2$YWUa$l==lg1qa_{pLW zRL8m@lKSL$Z4+h-6%nwtn1VwO32P9TMgXKj-kj#6Kom-oT#phpw?LtDr z0<3ZGjs@JkWh0DE@eTxDe2#5HTI?&t0S&^Hxj%H>X~m2t>aWfQQIqMs+BNe~r=}0& zvu#jj%_k7*3PyeVX_`MG4|2cRSjnx#Pt&>d`Y&7Ly(`BRksH9vQjS!^td5l+!@~~z zQ-C|@KQwj9g1PxWz`-&GoXb66AkQ8oH#{OjpZK_yVQ)Ab-ly=EzJ%iNR<)Mf1ru6-O!-dO`c|PiRVgxm^oMti#>+1UH&mj z&&|c~`gtJztZ&nWUIn%{vqu%O?1QI?65Ky$1=ueP?T8h#e=$^uz?PI%+B02FV(Pkb z{3ADo3CuP7*!eU*^F4~jBM;H=r8ORt7}lN@UJlPD#M$>%B{27|9NX2yha7GW#~mye z^f2>)i!N^1a_TF+>Ei?Y?`(lX=ifqxkOaKlc$w4oDi%dA8N!OM)%c$}<6d+9fPV*c zP_Aw+hx~SjqhnrB{OdTZV4R5W&z!?E-!p0B%+t7j`X2n-F2=pKlmoq<5vb9!3Eo{$ zri#Ztf?Yr!JurC&x4Y~I-y^y(aV8K2%dXLYCx*z*p9$CVp8z?10-e%MpxH7p?z87X z;8x6Zh{uJXZFe2K9tf6$iiMp39hW^G^jM|;1`bvSZmQl`O^v@ zs{03Yc-@EUkwLP0Iv5@H+cRnhdB#2Q0i+vi$)kN~@auCFD^0G8q=-1d;?yEqb;kwc zm)>T6$L}C9G=#9|GQJ6k1nqlX7$4_>{uj_&$u#+B1 zb5FZSq9RW$eV0>-#Trr2bo(1=UBeH?-VX4fa1l=U8Ihv4I^2-!2@;#dQ0`t4tYEm# zKfINRpVUU^6Wu~(Ulu`OTqOjqeTnNP|3Ph%JxyQyi<~nHgjsoK;ayiUn(@3u+eAM& zGjJ3Ib$8<#!3eUoC6{5ZA$M^)8a+_L_-ol%D;$Z2uX(sHL(Cv>s|YvUehEy> zxPZAoc%jK55l;pC;)VB`U^8+WG{0uT)XvY;<)0~T|8ES}&G`mqb7r%j%JXqwVGT)Q zcaZ0&k6@aRIvpw-#Nyaq5LEvT!lGSpEIo%9Em%Wmdk<33{YQEqj^e6vZ`?d~nyyRY zWw>$6xZBs{JOtwyg#(5($7ON4OZZ;VHp$jVRNh zgJH{OvXz>nI3M#QVfkq_6gjw#&R4X9IX z3}c;cq88Z;Z!Ie7cj6zY&dH&FBw!2U( zxfj$6S8hIGollg-w{I>(^HFWO-XV!B(J%n(g$nS&H3`QK{H7wMKX4y&#{R|Q38hLE z@NcyQn=O3NAWzOxL1tKN~pvy0%>i6A&G6+!nK2(kaH=4Zbh)^p>^kw;Ox=>y}N8XzA^z3KLr zDyq-;71}?#6A6dgP?j7Ip`*%R=PU}53xv37TQ<^D33d2q<{CP0?*mw}^Ev0!@=?Yw zsZ3k9JcjIf?j(9ZihZWjm7cu)iuj+)15fM49Nlj7Ty)wE)I0 zhLa&nKeWl&NyIOF)FvHqsNgh!al1BPg?pQ?+djz+M6r$0bI6N)mM=s~j!RfI(&^wrdcejMo`oiCE zm^t_Cu+M~+nVCd1mT-)_&Edx-0SMU_pZA)%e(V@tx5uJzoF&?e*U~+~hg$$S4@B9~ z0VOEJ>~?eSCqfh7O-w5&2G_h$j8Juf`;3!G?a>F2&}xH>`$4QQ<4`a?>jfI|2VqXk zPP~1$7ES~Rb5}~*fr#8Q;7Sdmn8G!5zF&hMf$5bd^pVFW#c@=@AA;6p;wBdzxPG7U zO>1n2?@34&Rn@~V5x}Dx-@(WBMDYCJj7!C&fGcnwI}Mp^(TN{Wa5RK|^sgn`g*n(c z?TuC1UL=~k1cm;8{$@UlLS`r3pDTr1uB+kVs7?gkEa;f{45ZK#uN}(9V74{J_t&A{ zxFudVvxq&b;26qve?rs3KMZ^ODE|H)P1`TG5z};6)RDad;+Jm_XX8ftXmtb3B!;9$ zlaDL5IgF(ywGpHJ&O+=OSrG4ijc1Kap}W@xfA^eXn5x-uJV*-W*TmryD?yIoK56dt zO|@VtpiC}%9>YZo3K@U07HI6e0@s?8F>OIKS<-tD3q)*T>T4Xl9)3!anOe~Xae5veh<%@d>GzyDAcSy z0}J~9BVrscTpP0vtXcm-qyCS)s_rA>QsnvwS`MS>scmF#~h^lc>Hn3<`)<|XA^!%)ggkP@=5Z^Hk`l5 z99z~aVQ*0wI<9BtcTI9!8Ku`)Q2ZUA=;dOFo+e4i^~Pk~*|=Z7o>Vd2nm@0@acbu= z=u6E2>D(aN`mYv4k_VChVF$?hu7~ViKXCfB46hw_!^&-`L_q#LSRS0om3)>70d3w8 zp00!JN115+wh=2Yhmk7}=K)$8l82j4k+c>&`Y-%FiTANWVm*Mm^0HVq7|C>R4&f>J zSVYxwI4Ro&t|5gqlgXf&g}#S(*@mchRRG+dCzHL*jxWiAk3B8dgrOp1JTMOe&)vVWT87f_ph-S@?`N|5oHO{~`Vc6Ol+qw8$}uTYfMpw)cW&P{hC6ka zxU!t-`!8xJ5i8C3Zgk*KkuiNy#LK%kbLbE@3&gZrj%R4I{#BN==cc4?dn6)&O%zWY|El$1%r=$Df;jMBap2ye@T%3QHE_*#^i6z zo@2DP7<(i1Vrf$);cN&)kvYzwXzP!Qs-)R#Nf-E)9fOC_9|>DPie2n_6r^~w$bV-f zaLaTE*iY_(Wdhao!bB$#A-wNkN|&=WRhWXq<6}RMBPZe9>>( zfxo%1e7_(&L}Uw7(~SY^n{$YMj4XG}kGbSP_GxA&n2+_(#Bgf#Ejg1BLl>F|!=;a1 zX!|`7!|rB-j$srST`otpi|0{8wKGrqR~7!`dyQ+iv1#B}P1Kz70@?gQ`hKJbBTwdo zM(YXKY4#XxN*I4j%~Rw`=i_0OBC4**A?k6uNQUO)!?lL=mDfHzQo0&LSgB;}SO$@u zh((cNEm(K6liYV5r44&zu*3QhP6_p4o+Y5Dmn#k)5`cxO-s{9ZFF~%uaWQWGgc$pr8XucS*^cxSKBJ#5UWP~BeYmhD5a0RAu~SqX z(EN-b*YMV3SaDgIzA~^u#R%p+X(vYlwx5U2Xi3%zG6`3g6mlBRo5K22vPf5|q5HY} z(2$-1S6m+vHL`}iQF#XS*RX^~>9g6H2d9}Hqa!iO=_G#3I&tx#9@=*>8P0MANvul& zx^-2f#upLp!kn#eisvXM7Uj~np9^7FbvgU}MGnTa&%!@t@4=vZ7S2e0NB9p5QJGkG z%s-|C>D$6l`qpW(@x?m4YW{(YwyKdm?lZt*DjJMNoiIauH71ug;989t+%u8B^z3Xg z6!){v`*$cFySJ`~H#?#kj(Z9ORXL$m9&^TcxQ0C5BLu!~BNM=z!Y&gVARfWe`#)%KHp|yjM%0Z%$WX+L%Izb~R`B46#G3ftwChL?s;Lvvi zx^46;ZvHU9{f=wqP_b_I;1iCnIkt$@hry!GxrFBf>0x= z9cR3#bEMdhEP2_-D;P)HgAT|~9;5Ah(jd~f5)Y@`!>CvnypR&XyerkiVz2YqvZfr4 zEWAXPzu1J{jZt75oq~RQnUd(rWGEDL#N??{@c8vjmf)^F?3yP{zV^s*uU(^@((M^w zsAZqR+(4e-EI_*Yzlr2}s0=vIQ~TKQq0ZW!=Pc_5=8m zSOr@-0hlUzm2to3f^@}IJjDBr7?^fIi|+!uH?IctD`RQl;w1RuGYKMIqolIZ1MDv< zqjyp&(ac{2Qp>r>bD$kv_0nk3pJcqO{t+6DyJ)Rq1PbIng(-(&ypr%gmd-n_=J);M z?OiI_D=B-Fh&uOmNJc`DJ<3XENa!O%d#hC1+Iy#>&V8M>mXe~hgi0xrP$>NF$K&_) z&-sgoIOn|Y`?_AQ=d+*4|IUJLRR{WNoZ@DI-8d_}4+3|tgU$;bC>rgG!y?TfIE{Hj z{9RDq#S3%trP1@&Az1u~3vjOlh|d*#q56Y<6Eb1*pj5o%6N=nF+i=OXRQkN41>Fs! z$tkH&aNfd0`|ii2hUH5;KF%VObI;=M*WJ*%Kmdj|%kWfko#-{8U%Zo!D|xq8XJF|b z0V=Pwm7Nc3;I57~$&Y#q%7>rRk0QIVbJh{~Z!jDS-*&=7?N6}psvz`2A?aTG2)=$+ zK$&%GU{J~dO(wZw(z*E$O8Wtc*HD~^~0_cAqmzU`B4p$_w%vg z^hW5{8{xS;w?(^mcKGRMG03jp4;E*7aN2}=GCm^@zT^pUds%PxDx1|EeOgNM4vF&V zk^j&_VH$UiLmYha{(uurH$dchY1DS8-L(s#EU4=&09U6EY0G-<^*_isW} zlsnln?-uS_<<6CAs$&vU~G~x%AylN&c@}M^HnM-P?-Z!KHfw+*@DGP**sBzHs!Rnkzn$ z_?OjKG$>0t(uMdp*?i~jQpO<5>!uQEOYp%j1-?h254wu}#zsSTq964Uoa82O1vDi1 zm;0qiQ^9MzQMVf__hiGr>XUfrkqVWxH({Iy6Nu@Zi}!!+1ice0aNE*syuEx1_&%Nm zV~lNU?_G*Xvt>X={~m3$^q~(uhA<{K2Ic#|VQ^|2R+mSB8tayL?C!+}pMIfyq!muK ziih^Ja?t*$NrD6-!I*LRKeo*xQdW$Y`h6)GUF3x3Cn?c*XN5!FVQ@31g%cDlOWG#HC%Qc#l4kcBrW4MxL+TFJLBDe>T+=8R4o3C zna({bA<93korJSg{PATZMa%H{9JRs>`hG(!>&nK_@#QMq0$v;@e$b>_yS5@pPK6`i zmSdKMCVG|gaA~6+_y!B}W8bLovsZuM9M;Gq$q(7?Qb!#BJPZL)pMob&chllEirjR+ z2t47@O`~R9K$-3uuzV$nXZSBL`7t5W&!>U>rU7&<(#BpRN|%0MT$I^ayrGSsXeG{p z=*6nAV)|1IEz5#S3%`K$-e&xBSe`DDYXia7c04|`1ne6hQZUqnO$L{7qh2huZ}g#Y zEsA*Rpf5(3&!&I#g!zjGzv7=ueXuX`MWKopt$WbhOxe?_&-PBlzu{c(Js8R zmxF5-Eye`xO1!Mex)~~Be3SC&T-{?c_*QQ1kK-VLRQ9r&9rMh}&R9z>^`+wN!sQ?~ zc>vf3ojZYba5L&JV(OGZP8`c<-9GKcW&|Gezv$MSudL+2#+?jsCJP-EQWB@w- z<25hr!^x}9z|$`dq{7^lR)uE5^!#FyR@VYn-!6mX1SfRYI7-mDgtIGqElzzY%x%ok z!CH|JxcTKixxeWN^FnEWom>%?dF&qnLq3gce@ojkhjCJd5iS20lz-sH0h0H#9kiIcd$s%taM-BCiT+y4?xD}k@ZuWgi!GGrdyA{_ z-*4Xp!$xcuua1g#u@W|d^Mk_e~t#-pb^|4e*x#udP$-RJjl#PfSay1W zC%p$k78f!9WE@@Ju>(aoeR%nwG=zRgh4jmcFu}hUZ}l`mnk{pG82iD}KR!T-pA|1QQ&$+^I}EU;KhLR4OSgV^=s7mlvdG*~Do z@c+LS{_j=zf3G6{dzJs+>tg@Af)eW`*2@e2|Lj+h;INnv+FNAMV`@ui+d?}G z=-a`$+17>9x(URfWhwE0d4cms zwPksG?@xncnl9KiJDDWRtstYDr5O`99FmHCQP0g1Rev_%#dGz%I{RHvYhI#= zoOgI%@-?Sa%L*@sO7ayI73eaSXDsmc00l1rEVWF9;qEiUbWsFsIdKx^?OlP1+161wGPG<4*#4ZkdZ$bi3&hcIrGlKZQh@aN#W1 z8jT9vu+jHAB(1Z>1)gu!GkI=FzG z|3lP%Iu+-MTViE+GHJK7hgfk3I(^np)N`x?S?^>rUHAZ*^B;E zxds2_%pm!L@2R3`J6ziA$$WI-XzW)Bi(-f2&uweaTJQn}#S@|anglT~$isk~D#q`5 zg{SX`L+wIaeBQVa4YKb+ZLL3kt-p+cQvx|ki=W`1$s$B^%46J8TSBC#S-^i^LZCLN zoArQ>@)i}oA>LJw827gZQp}#f#I_*ZD3b)mV*Q|0qr!JQ9|s}XlW2(fd3e4r17!2Y z;B3M?BK-F{ZhF~Fj9i!DLFZL?lRc-iUrgjY+@%2ilH;_-Q<7`1*8~5>r@$t`_2`{d z2t=$D8yNTStLtyFD>IE3pQgZ7`g{d6j=qK!H$P(FSOer8@&Zp6uugK<~T zjm*Z4q957wbO5YfMIk`ys7^`&4|D5dA%5Cp2#hO*`6b14@2MDA!)YR&C)07cIAb&U z$ANHV56|z;H~4Q(AvDeXj0@#uxOK*HgAN*PZBCBFmV@3s zOK@Z?wTzX{7%$y`2{MBCVVMy3RoZ3}doHuUJNh}@B_4x%Cu6`f$P3TeABW4nF6?wFx+WXIit!%j2d+Hz@FpsY*lGx(giMhA#Id$x13Nc7<6K;KAJmJFLHdug5Vk3W*YIpLZg%j4%zzh=n-PP`a?;$Us&6R&BNT3S zMbJGXv#{X_n=>>~G$Z!-%jzH+Y6M}*Qg5iQ`35zU3sGp~3=F(z$3HCdtGqmx{`e*W z8?6q&hAlqO(~}Ek{~FMH#2JmtyJ6*qI5_fXnHQ^J^mh zNPP>(4~IjOWEdGQz6ig?g23BG5%w*v1a~tR>F(LhQc^uN|~_B>+@50`AX zv80b|A4#AwVr-6}9E2-bW^UH?XXN3T5eyu1LWLXi(PaN3+`)F%Yr}7XkXHrs0+i$C z{4h+}9gbG*L1f>1KB(?ZV0`Zpdd*{u?$Rrvm$Qe6#eo;R%Xcn0%Ftbp|&WTu913#YwsvSZv4#{_5$do5Derm`wQiz75y-*W(6W30}%|=Lq(0 z#U%oQ+-KwMs65`y=~VavtLHtYKAYa+iT}!YA=YO>bmAn^BlQv=J?H?{%Dv!qXA$lm znvchQit)nL7I-Trd6!4OQD2>9c=M?_2u|;WBzAX`I9$PTHVR=31qq(gGasDOISse$E5yhN zG4Om{2YJ|?4Ew|GW1veknD4iO0wDqeciy6e-yEEoDu)dl?6D)`34~rV#^dWE>61!9 z7;4SNXP@#RPjD+(N(Z1}6cVFbhoMgY6P!QL0!=%I;MAr4=(k}FsE-{c3E8m}AD%%a zximNk2gxqseo*izC7v4=!rB?{3DH}KPgayN{!cb_lW3r&?+RehOo*%F#>PH@vk|7e z#|gEA_}!-un<7D3UifL3xme;XCQWH5ccaQ(J8$nbb;k=e7Uv- zHvhB3MZy=MZG1nk(&01umk-myShf??knW$3v1FYascXMBxn=(^F1FJu(BcdIfncN$~nly;GyTFj$Z z+=2u1wvrenId1wNU9#?hGTL3K18?~e+^Q7@e=hLYp}w6zMrtoc7s$j<{O+#RC9 z*?i<}*$GY$_rlKD+i+NL9~4y76BG75zr^ei#1``LL$MU$GTw&xyc+V_?>fr*xIwK& z4%QGYJYy1sy2a7B`L8qtiUp(njNhPF;>pvSSO8;lrSRg88cb7tM2Ay-IgWjXX!+>{ zman``s!xyNccs5DZ|NTt+`9(iha!1VLqRZeZUHt1ErNf4k3mq}DPrd|#JizcK=rS% zdGJbY*qS26RooJbqpL!@n(ZeE3W`JNBD{XMGk1$rMn_ zZRY5Ia~Ud6P6O`)LsX*aG`>H*1XUy=>6`RLc>F^o$Nygfx`y;%{kMIjsctPkJ$w_d z`YxuwxwXsz7z~>p8^YNS6;LI@JfX9vVN*pUbeg2%YQMeo;1pM=9Lej)M2D_HDo>6gy%V|YZo)b`8Qn^K8|$pRz-{QHH*tQ z8^sr(`ag60Za4?lO?im(qTk`Fk#E?~*qTXOJ4uI$Ggz+jCugj+@rU$WXm}mP^FAfd z)qNHWH$t!DqKeOuD76XaCNzUUQytiLxZs44&lu-jj!)Ly;1#QMU}n?6fIEVtWRT?1pId|R%KJ#hnIC0-r7w(Ga2`9CIFrfgv826oBHHfrA%{cH zAvny#p}|NP&S5N0#<&^&ItNX|qsXN74~XnY07g#`!%XE|C<I$t6yR?@6^P4zT?XOQPH+`DO2QkqqPg2=vhmt#(Cl@`aM|xLx5yV- zW6zPqw!L(b=_=IdI*tZ;P0(^9o;X*0VRv&`?zVJ)SY+8t%_pW{SI=Xe%@Pmj(OylC zmUjV86MljY+)9$Ioz4rm5rQjLp2VLCF9_T}1Pj;v0y*ZiaLrDFpAtcw)3QU@QCtMg z1`%k?<|LzriTEU8BmDRMC;7Zvk=&a95I(QVW4Yfnl7HHrnENOICp;S-T4uwhKmo{q zWsi=ln|Zr7X5iEuLB7)YNI3Ri3BIpx77i7G9st&wpduLX;=DkulR=7~hmdcWO()w!8YYKWP=O z=I099oAwecEFLi?T_t>Rtpcr?GtgTh6P64o5dEgVWGy>a?snKms_uHig)cqivD9PK zw^YKudNcOi6z1N&Bf(dcXu~@iY%W&CdfzFc{9>hgo#@Yjc+{z#jCjq#h#@;DpYj_n z{gZ-pZ4<1qEQ6=(x6zR2vV5b^41B&L5D!!^H{0BD)?M$1?n4F`)<1z*S-I1(U^~Zp z^>&^E^D~Z{P39*272#IN#KWLP2GO|h46(}+K`xoGo?uaw{iOD%^} z_VKuF#d5l4t2^`CzXU@&#N<20F!0WZPG9x~C3ozBRF^#5r^I@KTf*?&UQ=*m&%cJP zPY6i+fN08D$p0LK8aHgPKWd2F+$+k>yC=$(a(oRpFS+7kssHfw-$4?-XgMCa=L1Wa zOQGDQj`Q(rGmag11&z!Awg+8{d*5uv6{=NOFfV~jxq6jKgooq)U+XxEQ6EXSl@h}i3^)ZN)Y==dc_JGk{ zZ(i5J73dVV1VigyKp{Kt{ME{)rv_)>w{bZ#Pi+J7KW_&5GS0L!<~f9w&t$A&DGZyc zj|(T1pk8nzPG9>Q7iWlo=JzT(NN(Zj&t~vGaVZ`?o(798Q!W&dh&etG>>>?C$^Sv-tHY%4N&`s8%HSNc3UIYCrq!>U zuqC|#mN55r=YON{%KRCuW;w#)r=d8g>5T_zGLboI4S^>D*q-wlOnUSN68#-{|B1ZA zqiw~YQTl>&OgIayA4yS9T8&{xJcwl5L0r2#5#k&_!-l*%NcA>_mU+9;WKj?dWj+EK zHAHQO=n;|RXgUxdNW-Qn^N#-I;>1QvQ7 zcx+)HxcPo3`xiZjM{1L>J35jsdH)*u=T~5i^+bMf{0LTQcjFW1-z4Fc7n*UN;b?*` zo~pluJk57-bmAKbDGo;;OBdW3YK&Sd)v@!4TS4l9L-g&27^2obLjPLK!Rdp+@Y*XA zOZw;IwZsZ?=-Wk}=Mih>w<|`=_8Y{mkJ1MtIky<)VME$>WZ;oEeq@l%o1UwzAYwZnvp+YCu3azaxi6iOl8dm`?(lj6q84C#DzM0hgU4EtP%}^}u><Femc20`v*dkIvu3uU{_RtzjPCAwv!C~EP6 zY%U%|*LFd?5&Z<9?goDSBhEis9s}QR-eWt!X!Od`A~~CivG#W+EExL&MwM=$U|0?b zd?&p4XAwltn1xGBQ=stRbX4_o!lcE&QDj_@b%ZO>Wzs$jc8+Fl!+cN)8pa|Af94DP zi+c~hf*mLIartmQ%A5Y77f0TbEsG`4L-Pp1x%Y9am@VFYl7y?6h-}KC_e4Fa7_Vam z3jTv~8g71<(m38Rz-VovhSuVIT1O?9|U}td~L|h5t1giW-Yj*{_ zFpn`nD(=8xtM~NxIa9bdH;rgu7xIlt$?GMdpmXy9Z1WdlJGW+-bVh^iMoaNPvo|!2 z$?z}o((y#^a$1s_Ml%?fS8rSj9HPqc_}D7OAnt^@AW0Kt#W2EHj+AyZ)803puqr+f z%8IW+v$b-DEu{= zE>VS^E6d2ziTW_w9tP?2bFut*HJJVvLK~y9iFBeE?~(lp^!z%TeDXbu(*2{Tc(V_t z2=}laK?W}J?na9OH`rU?15t0>!BpWHOusD)(-v-nuR_ns+V8*c8Yhq@iMHbGI8QRX zJO#YN93jBT8w>rOU}I%6wHjKB55F*Oqj5argI>VoN$ZHf)e7E;&K8zO4a662fe=*e zgtd95Fqd)dxL0*ylHCA`sT9#!gL$x|UW~s_s|1c2jFCbKA^5!IALsI8Uo<{13x48^ z4atwEGHVOazk35**m?{GZSF%2bNCf#yhe#Tm%;3oIpc(GfX)9&GuFB({qQgp))%mB z(tsgeddIxu{BhcA7)XR&&0*KVJZP}0=84J$;C12kkkmZ^4=8@Y^g>a7LxU+s_O8Y4 zI_*R&I|Vnbl)%T&E3liBLbi6kg}D1l&@iNo!HcF*$L6aHLsWw2+Yf-erz2I&_<+u@ zhcNcrVLI%?+^3VC6CuH;JUcta?sPteb)BPlg5wHjcU^`<63Y0%g|YiDoPwPCHZs*e z3O{Uc#oGrmpoJR`ONus9*F@H(@|gzb(!BA;>Rh-yHwyQtcEVOsWtbq9%-hR+9Q{9Q z!DCMf2Dl`{c`JgS_Y}dat&AVJ%a}&xO$FLf0}B5M;6Ddd(DJ`X57{-KQCbmha4R6) zg_6kM5Q&SsYcbPf0@&7Hhr>$6lpp88tA6^PciBA@G-k29zwImZRkp+7GDkEqv1a?* zaGX)M1eV@NfzhQev2W*c{PAl`fw|;M1Sb^`xTi`b!##0F#Z!7WR|`ya9bidkIQpN` zB_p9plyk7}{McNlk33mhC$&b-=Rsu#gwcx{N=Hygv6~s4aLfNr0(ljK( zZ+$ol87)uoa>gv&e&9PeJr?HwQV4<0?8zXdF%NPQ{=gUMCK%{?1TIrv;@$ds%uJ9b z*JFfvGUuOy;@B7ToY03g8FQe#dl*XusxjujTwJ#*kxDj|kdZ6#JaMxYFu&lBTfV9h zqeC5-7db#Y_OHd&tPAlr4?=R|0vgw|5A*W8P|Wor?pOHk&X%q=0dRe+WVO}mAx!jJ4ckF4zP&^dJzQj*P z#svOw>FR)b(Au*Kt$7*D3A_q*(|+QX2%iF#!dN_EI-47_%N3&*)!~TdF9=(E6&0s9 zfG#Lg^O>hH{)syL>8i#8F5;N&VNf)YLCp^otsI$ed$~AS{>%vkbsX`tlp`5R$;Nv= zt&oB?R7xoVb3S*FfM!J)XfLMc z*1eOow=@ZNYpsE6&x7In&VD%ey%&#f>L!0SHe+Mcce+g62?Yy2f!AMl$2U9%UqS*3 zCbUWO$KOlwwHtgm*Hx_WBjfw7992Pm>-TWSAQ;n^YLg#3d&iwSA@-F+i~;J0;~|0zD0f1@Iwwa)NSK|1b9wEz|GX1XAD z3cT2#hjUdwz|1M^PTg|{3xluV@85jbTImWqxM5_?fs=T^pcHozL;C0j0i{)f*sD1c z*83L0)XqFG$gKxmy;mT1pa2RSy?CC34{>nPcAOP2$oJbb6XpdouAWREF?$e?N3zqw z+DMS@&{lyNtn>fIP?UdvsS8$l+-HvI|CpQTDVcrc6>ZnLj~^Gi!|jtXsHT1fro}nn z`d(+)w{#FbXS%^dZ+m=h@&hd=&V@XgJ6Lsw_421Had)j7Az>S9p)N;^I#jek8kx%152C^-L^r{K;~<64|IVcRO0G`H5$2zoE(Pzx0ltGi)yO!ZVu2 zFeQ=o@@+F{s&E`$cfW;esu#c{!v`p|)&PySP(1H&kIwa3Ocb^`V$+O3c#^acB)ZFp z*6kr!c+3yiX4;UQf>|iiAp+j99{5Pn5(=wX2CdW`reux6vRGZrNH3x$rtM^C*oAZD zzmO%6AT@%z3XC)VrKK=X(tm2xtL^R;qZomL^P z{(_Sj$?nWCr&o|u@|jTQP=_B4#PPOX2o4)3W4VL^DlXbZ&&A(|?wX0b?+f)nns(!X z1Q+5}CC(kYk^#G~ZszPL9!H1l64q%f!G8-XF?8}(%&K<4r=lYGVAB|F{`~=*Wbc7T z&419dUyIuAx{Kv~3D7v@DR2H)Rd{J(1M!ubymFy<+#~e~HmcmiWv47qIoAg5LnGn5 znG1Z@UxpL7r@%BV4`qYXh_YM}XBG@+k&3eo{7V(xA3RpBhOnro+K!+_y4z8oM%4F^Pl97<=b_TqZ5o}DLde*qZy8{ z&#{HG7Mjc-2fZ_=sC!=$N@)#IT&e+9GQpS=>_)TS)$_D&G~&$dE-*f08>up5CG6!X zxK&P+yV0ncTCXx@pG|kTzAzK)@-C6UC~44KvD>ag8!Eg7t&;rru`_Vp>U{i^ zRRI#e>^O$|nUBJ{1#VUjaL5WLuKpv(KhWrn5@u1f%Y6cNwie-XcE?Z9QYDY4xNDFqQufpZt1@&gu0yG_C}9d?w?kZ87M)?I&*v-v-8x*V05+#^TZSM}FQ65Hd@K zPXqpN!eBZM7qgB=$~JVj>VnO`i?Ao&1eT2YqwASP6EeiS zG&Qh8TZ+46C*#qKMT6XYTX1}E6orMHAh$sfo1|s=GiTi(zwCOzenA-=HoOn3R<`5L z?J>B|PLRv-VHWnq$Kla&VeTFCV_>}JGAg8=C1EytL~f2d7=8Xo#k>1-CM?vTy#e>& z@x59}xMePS1LgO+6Bjx1}~ zml_5+OI4xn)m^Z?nE*%g&K9`O41qW432=qukK)3iU~6DXHX7>@_s(e2CDVYR8`V+a zXe!F2|6@J+B2YQrg|iNZP>HMMRPf_}C<7NU_fHHF95g3&PKm&YbAdGd@AOpq68c4S zBJP|%8)b&vaVG05o_?f>!K>zj#n}-Y{Kd|*^Gm>X!YP=us|}To2BGGztq^c>7?KOT zLH+t73|Tl4bo}0;khmo+oGZZ3|GoxZo+?LCrAKI-;R$_Oy_6U73Xe~d;7W#%!t&p9 zv3e&TD^eA?dit{5ZxRLMOZ{xFm;F9;U_G@ci4!nsW-i#p<#Be;?nKYyyK(8$i$v{% z39dB?g180g;MlY=$)MR*5{I|7w^Cide*8&4#zgC}Yl`h7cJ;<$`jOaoqvUe0 z1|HirN?zyagYA~5pwk(N=RMAHtc{&vzaq<9;`@>EW4*DUWiQ^Db%cZ+bivqwGH5v|!gVAS^yKbpl90~sg(eDc zMO26u?{9^z`UNN_kw&gbdSc(-cv!BugY0Aczb$!6bkDj~(9JK06*jL?+i(nGj+TL9 zV+NMZ+>B~bIoR6z0vm4x5;DqW;`eqDcbS*4tLzc(II2j`eiwuP{1=m)>`K@XO<{L^ zD_oxAjw*BCkoc?aSThvEF-!b`8ATAE!T5$B%`xx5QO3IehYPaL zLaT5g{JnkzvLvPvfyaC*?94*}=BT~cs{|GA6EMWX0R$X{aARi#j?78GTVDsj(eeeo z@n#`>OLGBBUIU~kyP^8{3ze z@=M|!b%NZX{^&K&9R|g|qVCvytm+2ne*2D2$o@-OoUg#5pTYF||$ULap*a0!SqQOe^DD*}8BP)IAjGVa#U9%&=;f)#gUU~+x zFEV(0?OrkV$zSyTc9)YJFONSjxYMK0v#`0okW^?NgX1=VB>I^)D)(pO`ClQZymKZt z#k-SYm!;g1n2B)Cr5wK+8q-^{Ot+UBg(j~4XtgDg1T`U*#SZGH%Gk15XIQhF7-uV^tVq5uGS(Atls-3VnsSi)sJ)nye z)u7sFB~=u8gVuF3@O#Z}6iBYZ16x0ky+$7}rqqpYD;WlV*~#?awFSI=oKDWXBgT-` zzLw5dnF+&-{lR&}3$hkO;H|+Foa2p*>01=(;p6vfZ?;xnD?Am=cVzyCTV zg~$3qz1Ip4uX%;JmgA6k(TLWrHpA72^XSqxd2H(_BuU@@0!?Ag==MvXy)TWWW(GN} zPh{{_f)_Ne^TNe;`Pk$35td*1f}7LBA$#jr;B~rVRs1PvaX(7`g*d^r9q-6@b!&7# z-iJ}w)8Ny$G~U##3|tU#6;3eTL`wX2xW%mmF~NS&6d({Ie-~Ra*>fpqCGI@92euY9 z(L{$AV8)l`&JTCQZ`B`J-uN|?YYxyBX)m}^bQuo3YT+ykE<(+(Lfm8Lir|Ha4LCP(9-0kUH;$KgKf&F83ot06jQJ`1AZ~FDN-rp8t}jDktvF1i zL}%f-%v_Yo`GMbC_tH((0$6f64cFf)Lz=6^@@zlp9v1`hE`o!b$3%(j<_>sT;6q#4 z+3=FE6;()M{A~|Gu5Qz0jQRExs(ph9SLPY;7Z%f9-d;dH=wfK#4bW^^1jpMv@qVWi z+T=#ylss3aD^XowQubMhEGIna*k@#+wA zj0=Y9tD(d3BNXo`DLPU9DtWkjNJw-o%FY!XBA%fHfqqwR1za4kM4@&}7GC*bOl=Ww?~ zfJk$h^9E0m#&wzyWS&fYgJ0-WgcQ-B`>$bNVl1wI*^1)))r{?W9j%V`66&dd8AWa& zwVB;x_zm#ZrV14M^RZGp3#@j#5m9PS@2{*vpE;>;-sm2T?CFAC$DHBF9a|L7nUBuH zEVGp3jZd@1_>K;CAjeU|OJM<+R3OdQRZQX>Y&XK4(VmzgT?+#rCi8Cx1j3BlKB!{U z2)C8h_?9pIQIIQwhvf>f{9_zB$7bQBhiypycyKsRRLm!x$0IdNBW@@ zYHoeRM>}TmUkZH2(?0zeRTK{ypHhj`m3N?#F9WI@Zlc~(U7Ybc2p<||@&=rl2OMV6 z=QoA9!rqEp7^E;+>Me5Qg3+}67ZUC}*6&xs({r*he@74vSX9e7`SCN(vI{Fn^6o_Q zdGlcta}lULPlp%C`qZhqv^BX3E>Yq9Y}W0tj*G+hJ6B`5K{u>xYK4mL%s-<12BQof z;R#!5?uUiR5Pz+QJn_1TK{m{x_$3EoH#6VxsRBG-;syrRtjj9>3l{Gvr5>tss75<= zO0EHCzJ4prm3vC3O^-*j>ECeb%uwFsTWe8m&lu{4Iik_MX6ho9iGidVyXS2rV@B6G z{8n%5y5Y=Q6H$SRyW*(l4JX=?Sq)+JYS5iChCi(AXe*lu{JLk1d8ubX$O(^cytB+jrD<5lysMjdS6zZJySD|_2B;DPgE!h&E-3NN9@YiB?I}?Cg7vG0 zYI%M>S#;E)2^QXwffJi=Vo$>seAgxpgSUiXrmF|qwcQ0d#%_*M2!LrZckwYbr1hWN zC|z<0Oni@#JzGRD`@u_y>u^BtztUiQPm(*T(FB%N1Dx!!QY>k)p_)e(xYzmrp|^3-@Ubr)J^gv&RRw2q|%NTXEF6lbW+2B`fV=l%7dfu($D`+bA)>7uUi`Mv zdBOJAri>%Wr01Xr<#=|1KdiX$gQ~szN^k1f0({~?j$tYcUQ6So1UuuM|B5-{FKp

Jubl9w7cP5IvVw6)MsI*$;UL_wIm>G_&c&AC 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 z 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

iQAKOh{|im79KOA;rY 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

M)t65~$f0feUN^1vHsK~+M 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 lp&6rRV04hjSQA7lDLX?aOhy)cRC?Fyj0Fk%H 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�aX|Q;OCVF3HNZRpO`u3&; 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 mxK?9L+6_-VQ4?rV81!y_hj0SU5{X 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

Eh9!R=lG?Tj*C~qBwNFT=?a$%)P#; z;Li>7u=uRh7w>8icCUr6qV%pJ@sF)?z4#%VgkWPytrYXS(=lb!3yFS46wqQPkqv z2(weqh@)LEReBA%35mN(v20gAhzcvjZt*6pKf zx#*X39d9qZF4NI@$0N>NfxK%SdGxq?HW{!7-&Azu%ZF#6lXG9HEWb^IiudD|4{C~$ zS36oI)}ogV^Pv!Y!5%S9S& z<_sw()D_RNYp~5zO%bi5G%S7MYDMdaOo=5-E=GZmWqEc{9O-rygB16KM;`(}qv<+N z&^?LD7utBgj}shQode?|v&8JDQH3h5`B99&X8Z>|8~s^xb+vG6{Bt38<1rC;F6V#i zg6QhPTu#`k#U0vN3Eq)P!ng}c@ThH>IO*9l=r%0OW!!)kvA$C}?UAXmWu6L7nUn*o zZ*-UG^|&T%x!XBbkeA?(Se&4E=r;gufVHx%_Wd~`A_JUG z>hJ|APdvBhOYmKBfwLOAv1L&VZrHDn13zrXq@~xme7baoewP?GUk7k&ni=kyGS~Uo z!cicYw8F*4R=R2vC+(l3plL^MF7#X^yXlrqYw#hwdNcx0-ns>mO;))6=sdX_%wm(u z-ZG8mHBf0GldYL?6@Q#nlBM^)itiIILfg5sq|<#9=}OMSrpORfi}??uqL#9G*(!1U zc6V;s*_(gZpJt=|e%vAUpC`D+Qn&R7=Ak1A`2U8yDDm)^7a@TrIMe&>j zF!PUxq=qDRvd*G|gI9}%x6abGI}toTUdjzbZpZr1T`^*412noF1oO!c#LFcXd}4b5 zq+j(Evgev&%xqH}qrVm=6&!;4UI{SuP8vH*O(nILL3FU3NiqEdJ9Z(CDGb2mk);aE zUZ4oCvy!=WYvf3$i+K6fCtR)>NL~NiK(^sAg5&f!_Djj;rS-pX&eJENb*ePKDVfOY z&Tiy4-OK2C(_or*ej$I7vQ#CT48Tu2h8xawCA+^vDbgql<}S?=_D1x_aQ{sZTcHI9 zlzMVr#vvFKFU|f6Each&e%xZ00q#lTWfQ8Ec~QkR2;0y>^mwc+YwD@sk)@*)Rq2R{Tb&fpU z#$aYl0u62Y14;w!`9h~GR!JF)C-kSYzRHkc9p{xPRvV;aZD(cl@8v1W-q#g_x+^Ib zoa(~A$8|*Vw50o6!)T0Y0vF`2eW)J9ZYAQsW zXy@|&FZ~8 zF%eh5Kl3OEwok+X*Qz+X%v^SB(;7JQL`Qu4X+4kMF<*W(T0!zE1Ktb)g3eTHo^b93 zIPdm{!9xbY+xXF#eZMQFFM1{Hh%DfQ@lB!>sh1tTp~6kAH|g)oCae@@%NstVvDxU8 zoEv#TP<#1H0iC*g&@W<>kkmX_ zu-Nj2rmuJ>AGmod1h44Cqa~jhswyaEae??rU1IZENY22Msl229GTfGWSrw-7c`<#i!Az?bIRB)LJH*3?r#@qX3GW9KqXfga;!aTt&XQ9hE22y zdZBfqhDLyjuJZ5>t9{nl4zOLc!fV6W0F9+>5^nmaHoRHCpXVN&kBe8w(Mq46RIIa( z#w3Jubm#`ZV})`diXTD%+9 z-*Jr(!8tGzH;stKK68UZCdf`FRd<@y9&M(H!VAKC(!m)Q#aM@!cK^>3M zw7KKNo0sybXlgV0p9msF|73c3Dw_3!r-{aiHIR}L3SkXv=+I^r@#UbwLf5D(aPjds zDtq-Enq)Wm;ItPU-Qy>{E7hwopQ+7374uoAeSb0y3uW`VdOp1Fk)&cTBFFO|pm=tY z%X*XR)PL<4+O4fBSXiH|Trsj4Obi1lr1xzhCU_hxx;w+Q4_0g~+k%#t=8;;ND+hop zs@d1Ts?SJCXM=}v3fVV>gUlTg+C`={su)0 zh6`%$TU_2bZxFUG*T!OxDjryAjecrW*>i^`On|+R8`mbJcM0N6L7qI(eGv|cGIjY8 zc8$HNsvu7zTAnPSfek{>(Q=JxY=3qsU-?f1^JNm&=*>qVqI93Ia)&e2%#3li5c;C} zAZ_gPYZP8lZ3F*7$q-^~!0Kc62*EFAQM}6-GJyiI!P{OqTJ}jU$LC`1lo0A*9L?TbvA5XghYDS?%CA&T94l`0{@~ItD3{ykhx29!e>~sQ6Du}P;tL76bjcu( zQq(trJocPWXs^PXe7nHakIoFS}3*(wX#HVc^IMd}FB_)rhN!7O~O~Om;@$U|u zEWSubgfZTW`pyUcPU23upZkq2gk-a7@=zJhEkh^aGwn_o++m{7uH8`T6(1=s4@jp~ zYI*SSSpheX?S~C-PH@+5@5S2g%OSm@h)%z*f%h@4e5lL__jnud*_q~2eeD2D?5fO{ zlpj-S*8-vKX*l;wR_D`FJoe7X9&o_C2gbMkB0g3uR?O4p&qrR6^}Yb^J2QmuA)y^A@NUucBfyHdDjqbh}Fw1~+gv@ow< zKB>KVFV0Ff!2YJeV7)g8r{yF=e4Y#|TbIN2Y6W`i`a^%KN8@1U2y{v)fuHZD2`;i4 zXbJdBu|4(+&IxT$o*gg!b4*}@?LC)3nLfk~na!gQe9(6ci&XDYi)SPy^gSK!^Vt|06827=yX zbJWHd3j2PRT5Y6q+}2oJHsF=;vbk1xHprfTW?rFzr~3&-zTHStNMq3jN!+8hQv7GS zj?9{MvHboJSh(bjU~(lEPF)=Ux@|w;%%BMJC{3bqVYx7S3PQ)lp=fy5*Jb&|Wu!H8 zHQdU(ONu`Ic!Zt?-7?<*Yp3i7hdHja`9mwzUu8P8LyxOwi;$Fcj%F=L#Uz;{KK~es zF%$pN;lG~F|Ji?oXT+fL_pFR|6(vfL!ZUK8UDJh(KU(0Sz7IC6S_k$TCYVvx z3Rg5wK=QZwRKIOIh<-lU`RE7A4b~UN6-2;JNe<>1;(PYU4~h;3RwGTJ>B=a=;FI!8Em=LlPvWQ!|mP2$SY_bE_-Caz6Yvd^ow4&;#MZ~ zd0-&H26j|5yxdCTn@i!Ko)`7{vk!8P+M)mQ9<uRFe>*y?@<13Ic$z{sEf5EE8ZV^wiWiUdap!3{k_dD8J)Wh18uqUEBB)$` zPboXDkkZRp!o}q)MbjWhe3Tt1>{#Cue;2HWvWM>}XY~^9`|d6;OHPoFc5|lGzLhXP zq`l&akt7(;@SwW`GkMPOEV$?vLT$a;VVAa}G?)K^(W4^a;BpxkX&AYT4!94uW|vEk zgt2s|dkd|InM+;!*9zbfgi&m|DB`8+fOO= z`7$whW1CPZ6|TJ(mpH2?jOME3NV?QpEF zSZ{p`EpMy1j5j_@h4*JdTYiA}Cj3x^*RV~zKOq!*sn$~KD}Pb(WILR^JCN?E?V$LX zO*rCvI2qe+qyaO=L9LIaOUi>B;b!$*a5!KhGHR@I6Un?{nldQo%hM~d%XFN))jQu^=3v?M?oRSG2N z_RAo!TW-N;D?>mYM$|qc61w?WQjDw}_YDzFck`~Ni8{L~Cq`zAYnSza`Hudu>s~SK zc0K@(mw&;a@49R=OKLld!^Jt;{(Pa)AFa0bqv{80w9cfR5RkV=9{Mf=*5*DFecViW z@x&ffL66|jt zrbX&H9AXp=R#$U)+um^Q_+7zIN_ye}}|Q8@o>uzjnRAGRGw6S>+9BloRfpS$x8q&&ev;GG z7WnyNE!56S!;s@Qp;uKHugdfnS35h=yYL>up~b-zad9v0e5;K!4!dG)<{UU39wE#( z4iThfn=HQUo+L;}2Gz}puz#*HI(zxh-5bsP{A{=o{j4JuJo_!AemO(M!>p+Bu$SN?0gtWp@#p>kFA)z(~-a0zre*OFjAg*O!+fb@f&*si+~ zc1~Ku6-~9mq2*m9xn?DB#5;KUrvbJowL!rv2l4mWCTdw)1kd^`rh%`E;mnj%kWgoV z3)DMt)TQ0fEg%Lv=@eg2IsJ_U zf4!kR=D{U`>OQ>3G@6a4sKfRLc{Hi5Oz@S&xZ$}&p<%cl1b+9W!fh%%w6T<8-ETwK z)p1nw?T84EHSueF4{^cT>B8--0P-!oDvUSRgTY!+g7w{-@aevTkSm=@cUMfK2c^cs zRDr8|MNW+NjudbtF@9MB;i|7sx{lTOr@yUnS9~G2wwNfnbuzYAcb8f zf$B+LSj>5pdpTDy_=7ys!-Uk#Ga=T(jqj^Jlh2K{<@1kL@Z&0}0A1$@D}LvI*A@Yk zMMsFRKIgJYJ6dkxF`lc+`eOaf7$l!^K*GwFh5+v{P;7Not`RD{gy z%XspJ3ediDL%w)TIF+>7g4z4k+-MUg*v=U!_zf(f!>b;F;Q@Cz{3ig0`}E{b`Wxx? zq|f4kydy4Omkq&f#Wc7uxCtqDA0ehs`sQ-b?-q?-5=Ni1zg4skla`=k zqha}vXrXG#b8&83PdWuZXxKG((Nd1r2YA!1!Vt+BmZqinT7&uc;l$Uy|K! z8So!>OwGiRV|$aWehGS;zohDo2gOd3sJJ?*FQ(fnp?!@N=nXLxn$%aQFOcfW4cH${sc*9q`(KQt_*AC*^fR3oV zB>+O-b?2S7J#qMG51wW5gFHJbgul>8nctE?d&3*?#UXXvJogT6i#b9XcdiP~XLUJu zeg~TJJb=CLn6l$h1qDha!;_lB@rQ#h+IpGF^vbo_-Nb>)BFlxB9!=o+xQa3(mcjIc z9qIXBsW9ud&v}dRSpLiDIIlb8g%3wfL$fDa(4<(2jSM@>THA&T%4UZo!SfE#v-*Ij z+)AxSQs984h*yJyNyEyVUvE4ON|lo9>X#Q@i#khl$8M!PukAs6kO<>*$)$N>0mM6{ z!1{#;MBCA79M)C?AA2OyGr4qUh`u9!>STq9nG(AwK@yubRW!vYohSEG(^2-yq2$CKQAt6-V4dz&caP+ z2M&E`Ds<7WE1B}g`XN7(ePenynQHm4rc#l(jb;;eDeDg&rGYz@xfO2u%vOuslcuP-r7+~Zka~SbeiwzCO zlhxXNq%RMLL4j)Ypm!mRo)rtL(#j~iU$S_-$br@O7m1Fgy?D@wYRE0lr%Uf6DZ5pa zXG&=7OD*{%+{hK`+InEuuiZfTp)TAsai^iv3rRcWCY>ujO6NL^;);!B5S4Ani{uU* zc4&&|J9P-hHiYw_pS5EDjAF5~&u;K8DJI?cO6c%!D7jh$z~bfhG}t+eS06IMciJ1_ z+M;C?vN~4uIg=ygTzoIaZAk#TS(-R!lD&Lq{AqF4oJUlXqXjEU9zl7nR3;sw#=q>_ z3%#4;oT4{0(L(A8lYBiX(DNN-jQU5@mt=vCodr~%h#oQ^n4t5*sXRdZN6%_@h>O*d zA*0U~usK*O{BUTdy(4~ry>2m#&pBOL{Xvzxm-^z!tDe+$E?d4`wJWYsiGjOhO*m~n z{D`;Y-XTL^SBGdwQw{_>KV{VR7$D@VzwgrV*+%%iZxMe=kD?%X2zN>y#lKZl#pXfZ zX{hp7IQ;$%eZJNru77Zq7S6v1BYNqIFK=YSuzm*E*Jc(uRgH#;DRU@ev@X|Hr_(a6 zm6f^I`#_(DUKIRIiGR-^VXlX?jPts|KF4N?=iPEi_l_MTIV_>yfmP7y`w?N`W(^k; ztqvG?d?>rcu-MgWtvsdASbj8a1Fv&w6IFT|Q=HXkQfe87UX`K3>u(h>{rh7&(7{9) zvhy-rn%7R;GITz@mSE?)Bd$}S%!oB|y|KIbEPQBq4u&Vphr@24q2WO_EO~i^PIMK7 z&hzy|uZ)}WfWRvHCQ8uShIO=bnGN(Q>4MzSjs3fb@WFa0diVMw`ekHM?4untSv!za zF-W+%!;Q|RN5ZwHTeNZUaPS>bC-~mVri%|x(xzTXB>x*oK2>hCx0&GhK_v*CvKhO) z>BxWMI^m()o#ETam7+&^HT)bu4j+^#Tt;-6FTK5ni5->fsAgC$y*2*>mA4D&)i{QF z9g!?ddXU+j-Y`kb6+T(%ko5{XG*y1=a(S~FocZ)r%$17Kv%3wX3HzkQm`xDe2ovdb zbpQorr}Ee#b)=GhRS54qm~^Jy0p-E<^uEHDcbw}35iN5iY0*9^Nk|gU=_T@#uabOX z>IfbH4Wj?;AX-20D4AF-;E-;XT%JEgD9nwf^cAP&mYaHl&95zR!YhF0IF4eUUdG&f zu>tO`GNi{#v}n>)Lsnis8P$zHLMPcqnkI&bTRe?i=GT`%`Edc_@>fqD5H>4hTfmYQW zqx~!Q)1GZDm77r5*j#mngo{o~kjWr}xNKl6WPZ-=) ziDD1y@Yd_$F!cOWx_jD>rz}1JuLpI&)%UK$oSC=9sO=YopUG07V9Z2%GW$LiigBdK zlEJ{+hk5l<&}7Nfm8W6!x~XrIYY!R*{inDZvFa?TkS*sqbsx;2qPLxZY# zdU^^Z7j&f)XLZ5qh##)#-wQ`b0o|R^R%jyj7P2Odf>q{6gp{xybpG-paYe9n4-#Ez z>TxYG=Ux;|P`tpAZSD}hqgiYXEfv0pDbx6{LYFmnylIxvB2bxJLVKgN>7mIp`LASU zvC`|kxT*hD+>>j=w^s#2N&Y~%{#HpL-(Z4|tB26*SUDb)1HJ1VLsxfpVzZBu%ujm9 zc3A3;*V7z0uy8&floyEp8lU0Exh+)SYEDz!ZH0OL;%MS90Y;tPLsls>#Z8er$?4fO zVf~RaRH3IP38N)*ntmk(&e4_vV){Hg@g#h6SO=;rt0ZvOTfwHXCo0k{N!8nlqR!5y z0rQ^H_d8#OSwn1K;le|rb;(2ebScf{ahFhbiizRdnY-C=O$PgvYjBWb5p34$g-a$q zqQlY#X?}tu9^V`R!P4S9>rg)BcA3Y;VgA%LU@hNQcI5$=k5IeQ(_vEhEim?7DXv|w zPkHGEY`XW5*xMkU!of@``t{((k$Ag1cH zvuCCeow~G`jk)zMtE??%-m%ES2I6aHr&RZ|E23g|JTiSU3;|X{%|2=Ipb7Q0J z&qWN|O)G;B(3Tyh@FBh(KMyY!-ga39CZ>9nmoikC8>%l}+A@jU_b(7jKKv7=yH?S? zt$`4bewvoLcceN=%Jl9^DIWB5QsEd&gYzbQCbI{6s-yShYaTCL1_@X zFoME%UXa_G2Eb$;4Yr71#70V;&~DTsGC5Z--2Qcj%>9&klC}!o?C$`r=F`En$e6TV zTw?!=iS*l8g$7-!ft#g+NvYyJbaVee79W`!UwtBBt-o+n^*GmWEf8oiIR|7xvX`YCG zm!^Vz`V7ihnMMU6v*_07e5@F4&Lb97qT|?LRFwiQ0V(advG|6NwMIcIbt>rB;wT~J zjZrze2v7eK*lJG*G~jMlUp^ahLOYVfi!Kl|a2=OsO~CJ`recrN7pUl6530Gp9n;eO zQoip4dfVv1NjIus-NP`pu4xC$oh-?JU3dJjEtLW#$d=~>OVo}vg)tW+;I{U9w!Ne$ zW_G#+#*Yf+FG6-wpW4lm_+5$Of|8*^5>=jSmw=UDzC+GpP1!X`5IpL0CCt^d0iC7a z$-uG-`ZjlzS!tSJC*Nzr&rblxm)G;ThsFH6xdab0)JEB-Qqif_1OQZ_?Mor zJSK@%+aws!P!THwRtSsJEAiEgX2GHVS$s;z(PM9KKI!^fezHy--&}kH<<-g%5Zq6; z-bM|}rIP3wuWaGw&t0;4hKKQOag(^X_A1&9?1u&k=V6S$vv{qirEJ--NStSuOuj7& zSp6#qaYF*Fug=7SCkkornF*BtM-#Os`iNg+ZDgnK4aH;+GsT<{Zg{)WR`##ZPx_Ax zhuw4k!>{IH*j?Eg!yTBE^DG#uE!eZqc?!F4h<=+-il=9t6Nj{R!0iuG@x`$2vM+De zp{lh%j>!E2wy#b*FYH-^_onT{1B;w+>c}9%*;+E!`JG|LgciT)I2%`L7u^Lm6CA6stx!nR$Z37Xb2kL4|LIa(~Spt zm~eK>IGMR5zA`BP1J>s@9D_X=0Bx6LFqf0CpX%5BrKyrhLB$ zJZg)vN3*VCZO4hi*)8fA=;+9`6Sq>t9ADW7&l!BGdM}N?HI5GL*v}r-ceu?^Pv-FG z4E+-f*;My0y7&2md-V>3v%^-f8ElTDz8@7eKcAjx}-VZ=$rJ@C)>CT#Z1 zg4{3d*lfR&sI%uCHMMABXv$S_p;aRCfHon)zf$OwGY!4X_F~dJf1J6l9k%uSCds*i zD0O_T(-$>QS=8H;E^+_%@RpIiu-8O88u9TgT1ili!`&QVPXBPc7aNSbK!Q^~2;<;@ zS>U=Lp0vZYIcwfy;ZE&RTpN~%Te=%j&}BVz+;f(aWlA16nETkq(~z3&xXWlMbzKq(zkYbgCUmxy4LP+z8VQvN z#>I>A{H|u^$!ao-HOJ6*=p7jB=#Dixt>{0iFW(CvgN`SYu}mwOPChV{ecRL-vLj6S z@7Ov>I(&#s=G`Ogpp9@w73YCcsF*{MxOc#(+`O)=Ks?YH8j_+k$XTq2^MURTcZ z^2Tr7Qz`ptHmrEO4X+G(K~v@|!*%f;vw-^8gBK=kHuSHe;4DE*X<*i%RnVyuS1yJ1H} z^CuC+b%`*;YX;dwt*R(18-rVuQt0#c1o-#1N;r0+KmN&(=BbH4o} zC%^NQxAT0t%VK?DwZk$VQZWy=sig~}d$#9o(@zLlHhaXy+RkA4PEYta_y(y@&8Frv zku-AAAPJgvpYAy3NU)eN9x`S>otdRXqu7m}o@}I_CR=%c1UPZuV#kYGo!Be14=vi0 z#zrkhc&KkXmv5WKig_a<#G0L%F1@=4^YwNnP`F#0yS%(1AAI};O|#X<{DcJl0O_KO zXFg=CtrT?IIrAm=Wc)hcOpK2H<+7^t09s9B$-w%o`1fc8e>lvQpJcx&Jy%X2J*T49 zy$z5zT`p)GIz)ZSPQp^xdZ?1Z_(h>3(ebGtRQf*SfBHm<%QwZ~t%GRvwkBcl?C$XF zVm8d#{|RE6t#IlwOEz431Ag94r`ijZoVfQD7-_$$Y}&aMuhfUrloPYW*&$qt1U!rlJ}&r={VR0Z)&U=!pGVJ(hViz{5|r?ju-IRw(q-(}O3=ro*Q0wRGi23EBMW zUw%tdnpbqU6E2>;EXEF-DX(%v;mf#Ko@W}zn*wKXX-*2yX6r4owi-dDnlKRy>Kl&EKKA{F9XSW z`ZjdkEhn`CS-uC>$yB_q< zXM?p`Z+_Kcz;(YuVN1I%bjp7PSo$V|Qsy4|eYmT9y}lCU79bk04;1=rd@DBQ)DVdQ%8rOa=}bldbb`K z2zMr}teExoHL2{&7N^YY%`@%7aN)gA^v8D<-)~dr?H%sXqpP2X; zH9l=1Sy3wMUQOp`BPY?2aui-~3dJvR)|{Pgf|Dc}+EJffbi-f^#_UXhObKLOJtT?3 zj4$9-g%SKS8^#~|rgQ$U!|XI7U*3P6EkCV4iF!ImLBDW=^ncQk>kjtdz=PWSd~q^` zcPhngv;?J*D!ObYxO_1KuXH#?KE>NuSQbbwc75U2NOibz&WgvSZ4_c{M~S8DocY4y zPki%YSDYyoe)IyaK(NJ8y!En>NBS?t>b8*B;di8xJ zTQ;=9r_HDM&5|s-efumP93Yjaj-AAvn&rY}PZxfru@DEnjmFT{2)uoA8Bcg^!@GR5 zxc0|yI(6)kaP|s-MxXKg-8%&B7uwLX0hQRiLX!Bn3Q|CSDrD9@<#h$t*c$zXrkcH_ zVXH0p&XiQLTQz`ZE$hH%mM|~#m6&%kLowdsC42Pw2Js2W!u5O>)*C2&< zc@`F?ucF$0PvFeb1Q_1#7>!IU7k_^&!%hR{@!tD;6tzt|aKt(##RX|6)39a`cU*T` zTqk{}Hg>os1lBC)sXeCQ(!J5F0|9umI+%vfctBsCAH-y1DZDFh;}0)7(=J_8))^3r z<1a<=^$jUPw{1FndBHip=YL3XdrV*6@WP7jJXnuKBh@f9LYsdC#=@@euZ0nZ!+C?N zk+kD9lwFruDZ+LS!;(xd@zRn4PL~phn}YlCn468l_gR7b&)@|`uinHyuidfEK#Lz| zyp^B;_aJZ0F5HlQh+^&9ao6rYV>uQ4VG@ngElEMvB&&1xvd<6H@?54tv}=x8lDH!KA}*x*$>0|O0tjB^>Cx< z3U{=>2S)+7pM97&_59r?UKl1AL!@`x%gtlz$4hyG1n*DEDaOE>a+>IsW zrb)tTz=*r1>0ML zkkW}fM=Zq9fCLKC7{Sw@?n2)g%{=YjVS3lS5Kh_cq0D40w9DEGJ=(eO)pm)}t23Qi zCJd7bN^_}sMl5&x=q~IClFka_dg?sQjCZ{qOjY~NLhI_?=r%4GmcG@1vhZBi9W2nM zD-VU7n6qND!6*(rFhLc#||I=lUe62;lUNgaJiQcn|hn#Pw#=)e5@Rs+sN;m8Ln-1}AkWxx24B_WBdTvj!@S{ma!_}?^W__=A7Y`kw;Fo)?TOV% znGm+k8517;gkuAhWFzf9iT7WxcWLj^0nO~*;pT%+K&?fB1~hEt&;|Wb{IVVO6T;Cv z^b$sR9Y^)D8d#dYS(toX+P61P#`K~>=c4xCMa$oova4hI$aj5z4#)PaK;yiTILRZ2 z+xNdlDTmB(l~5x_yeWkB{iLnVR7-wpXn@up`{4V@e`1$zrDAkj75kVwa^uB0SiY$} zm-MwlWvy`bPgTaqq%rVsnTt@{wvW4CHOBro89#4b!rBL>LDflV-fuo1IVTkBot>n6 zTCnr<^-N|+3eJk{m%bH;N%Q68$Z4c^<1-wII6*;sn=M6~l1X|G5ADILP*i z7H)bGC{1q%CNT~?_MVJ#IvZep#Y(y+L2=xr`+ncrn_>rzE_`ddBwja1EZrFiQ%fXq z`V9^28=lDHjra4*;3txBvzzSAtC`d#`YhNaNcjw<1^Bi_O&n&?0tSWA=;Ciew;nIz z?vuyEzs3|Alf51K6ua=eXT24J+f8A!Th8T|+SE{0>O^gEhjWiKlnd>Kny z-n;l_B#4LBdQe=E4aYm^V`C2B(1ntGZATq0TQU){O;gcizn$>>eKCj4z9^VC?0_rN zmVtJtu25#RhjzSr3)QpMpwg=h9Q?>%Y}>aNA6`EJhX*I&->vCl<`8|^%W`8}|0$8j ze0E~*VplB5AI4F#%VK=UL9+6W*`!?ZjUCqXcW!XX3Vghrmag8F?ssaqHgK^n1Dvuz4699di*r z+;v1Aokrb9bwESq_oB7?6#h5a6w{B-;_|U4`2GP6mQPpX2OB-;m2_ z%E9LsfL14f16hJ3dw(dNjVi*KUNvZ|-bZY>@>NiuxQQ%|SCZBYJ-FQN5>=m*qz;|m z;qu7eyd>`_KRcQUhFLf1XIeNH9|&dt5IqVCO`$#EU4)2&r7+yT6F1!%hhoG{n%A?A zTvp5wbRGqYT@HN~%bt(sD9;Pzf1nRU^<9PVX(TLbv;@<2Hn`xoE8D8<1DnroEL@lY zLkk3&Gusj$H}+<2Eeq&cxs`mb1aa%EQYi;`O|&k1L)%9d(?{cCDEm?czb7iA-_ZR+ ziSssaiB#t+V^W0nDyy(*Y$SXSlT)+OH6e4yCc2&~L8GT;kYT|b;e60D()~xm$Kma9 z$j-ey&Grj*A3jVHm*qg{(I;Y?PYLIFcO%EyW9Y4!4G&h)B+E%gFv9Hto+t%S+m;9F zpVh>>-n(J>tljcQC93epR|V7TZV4yH-lixC?za2mN$fGw8v_=sMcb+NqJc#Y&NTQ- z(Th}YwOXpM%V8~P)%4*suOwQKpakk`ON9e*3$fy;7w+~qb4kv9MN@z7lHga5=>4Um z;`Fpd;@XOE+<7FG&Fd$SV(CaKQggyh_Hh*O$pD8+=g`=iVEp?XEs-ca=ejdKHj$8>&|Z`+np#pq zr4(95r9z>eb6r+h(XcW~g=B<^vhzLPAN&Ky(>eEjUGMknbqB24%DKdW@qC4E3Vo7P zKPiBHTv&KrZy; z_xmw0RoFj-o!4W2i5FPbzeuvNuHil=s8h&EU0l2K7<}0r$^4Yo@*PKtxUJ*oK~2db zTo|{Nce6Opd6c){{e?34_rg7z{cZ)fSEUqGXIC>7-HBX6;5%6H(gJ5q@Z(!Q*WtjF z{jk0?5yt;$!I0bKP$v;dMOJcAIl=dIwUsCc{RzBck0YHqe>01jfIT zXHWWM>3ir(OmzU#bH9Nz$Jww;DnB{@2g=-Y|7l?6aF8y#mEo%`zs3KBZU*PCX>9)_ zNhUGjHLvpKA}I9@z`zG%G2ogu9gSa(-~JDqirvqnUIdLw1@?7M6v=*ZqCo)_mDUo! zK=F}0%G~WoDoy6B4ozhdPaWy-CO>>&`jYEr2e1f+QQjXx)>~i0<$K9f&+#gd9$F5s zWA39^S&M!5dCiq%&7juL@^I?tI52HF#oK-S2_^1>L2KnFIF&Yo{WS9uy%Wu4dyd}} z`OmSX(aK(2XHX}nzS)C(#)MGlv$af|sS8fQ>97=9z*@T*ZhT*ei3%>vT<<3S`0Ih* z*VeI)T2pb30AO_-BSBI7HP~mTA~YKxk4r>bAzASa_kFD_rA2mdP%QT!A{ zZq`&{d7llK89=EqM>xaA4%A;sxXV+G3~R5$Ki4c;v~ZwsRt)E!9Xf=IyMFSb5yQyi zzbT?xRRcEp^$kcJpNOV9hC&~y8h8DA0&yt=pz`Z3id9iuJN{~$l}2f8($W;LhI!(zLA^a`9vZJGr?Ip8CNOxq02FNvEZ>I1ivf$WO_ z@Qm!&V;V|ZK~WGXEx5N2*SE)kM*bW49sB^@11?~2oCwzM^QOY_w(K>01CLu7@NMsO zZnFMhT5WL`EZ z^W)xmk*aeX>soM_>G;0Iw2{L&Y*%9TixV+0)&m9$fIa1{E9v<4G;~V6$sPWsNxf5A zu}M0Sdr@#iY~iK|^*h5jc#~bxy~lz%d#N*(JGc2aYLOy~w-Zq2WE%cz@Z;6LKF4Ow zJNRv^3C!A_i<cE*Z(WdTP;%%K}K{ZZako zzQD_CBY6M3C%lB405cH8PdN|t*st?rspFIy4fQ#MPGufsv>}93%a}|xGq=!a{X}s< z+;Or|Z=*_+k=%)l7#J3_85I=fV2-u}C^?3rxwRzCdzQ=Z+w}x?G)gl^^JIJ(p#T?W z)nV)YdC>l9K1QXu@LhEqsquI(J{jUnFmM2s?|0=@f^Ecs#c3$fJeym$IECf<89>lE zQ@*ujCe`g7#0=O|o_7N*oiUdCVNrtFt&5;x+bPh^-Am(No1?9IGCJ#RL!EA(AHDJd zZ83ifK}z4DwXB3+v2_r)o944?LWX3^>r~82cA@H!4}6)4CHMZjg8+AG7rHANcy{wV z{#~&dqZL^&;gteC*wDvZPR4_DWin<3Z)bR@N@`U+&PzGAML`wzY#2H4N4rfr1>GY!SrMlv-_(hz%(MM{F)Mbz1o?d z|6CBi6yIR4jiyoXAZ2zy!56JJ|G^(KoblX}aFj_;LfwKCNWWGAzk?61ASbin2go> z55&f8LZEJa4UYOYnU7EMpogo9xRl8qTu|F4vXc?x{n#J;&LLgmS4ZX|vkhP$+OJYY z-#ch|lh56*(4s!gD1O4;o2d6bhx6|Cg^DE;*xiDI=rQ669qdzO`)sB72F2m9ai%(r zn;-+96U4C4GLcj&;;DLs6E|nXPdqSV3ub>Cg$|}mAR&AqrN#)H@Us~6_B}(_*Si|Pb*|>FGAwE0cEwtH%vz66quF7Zz>XckX*L4Lzed+ApEi>wHK8d-;+ez~G z610(2XGfG&=)&(gZ2k2oxbDRpsJq-L-V{HUl`k5Ly%p#2PV6y0!+j>MT$cu8XE*YN zi)MkfM<2?4`GtO_QfxxFJ^a1O!)UdK*l;2pRR_D;JC~n_g_*H<&BL8G9MI;+-g?Vf zAH2yw7v>UQb}WR$H|L1vuFv38R$0PZ;|Q2M*pay_o3g9I?m%nD0`}+DATT^-jkF8M zT2GO2yH&x!dlQ|kXvd1?8va$C7_#r{t4d#~4_=)z%8uGtC09}S~Gj}$I)V?WIH zI|IY_sAAyxkJ$cK5=W&dGlMayNR=LZYkUvBa2reO2AyQ%!(*W3+(&p-IGF<1CZMF! zKGx~|529CwF`2n{pt#78Vh25kX$CXs%%ZFKaF8~ON;ZY0>IiO>!XFeRj-jUKhmq|2 zVeqn8+&$(aDwUpx-I=a*zbTCBBp<=I4H_)|vN4_5a0yP&s>G<{!}%6J6-d5jM@L^} zW6{`HTivypc^~9RDV@=mH<9R@BgM{?WKia!DE>s&ahTB%fdv{7 zxX5%0-(9^AhKw7EZ94=&h(H<|cs#*A=!!RvS$7cPR7@!CTt7_Cd<@-_D)^i|Vwf9m z%H}Ls#Wu_u1=EFj>yVK--2L8O%>8u>8uwa2cSAHdm8(%yKpS5la>72M<67mEF&Sh& zcnm8XcnV4uNYDliLvgNnH(Yu17Ypbrr2M`FLuHJq2phSu;yCg6iFr6G@fY_>?lm-? zFl7zmv3ODIE({!d2}Yz$A)7Kk7_X=bjcx?8{&&$&_87dXb{1{AaS|Wq+o9k6lbqs< z5>Way3oIkEF!`7obtR~?qo4OdWy5fOMfqN;`H;?CTC@z8OqQoZi^E9Tdp-MeF_iro zY5+f$Ji|Rd%lQ75dwlgTYc9#)AgVMJV^@U{3{MqgPdne?h4dbfDK=*Z@2{==m#ac~ z!kuuU=5+cgQl;Xj1*rTg1Y3&B(JN~ixxLPzkD4dI@wEiM#>tlYJG}7wcVnjU=r(42 zil`I|bHP&|kKwVW=`glHk4l%=p`l(9zq_jm6)#L8zdy&gMwy{xd_;+*T-$J;`#xq zHJMM_s=h)-z@eG(YCmbEsrqCCmTcmjT0S=rIgtl#Q=;ShnFFvuC_RSAL?@vbT z>qk3O$`53^I=ZNLu33o@M_9>G4{d1~SRkH;|m6 zh%p{V;l%Su*z1*ouP-NJrZ6X)6(@9N)a5D4av+I>Y@_j$Y5bbhTQEiCAHLFfMcY

piL@Cr88vU2#&-vuWq%aQdEYg&;%1kNV7GFWns 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

=GvGJ#SD})cHWno-fqwcS{A_?| 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 V29)O0iV|~E Date: Tue, 13 Oct 2026 22:49:28 +0800 Subject: [PATCH 9/9] feat(action_feedback): implement action feedback history --- .../rl_bridge/action_feedback_history.hpp | 50 ++++++++++++++++ include/rmcs_rl/rl_bridge/config.hpp | 2 + .../rmcs_rl/rl_bridge/observation_history.hpp | 13 ++++- .../rl_bridge/observation_timeline.hpp | 10 +++- src/rl_bridge.cpp | 57 ++++++++++++++++--- src/rl_bridge/config.cpp | 7 +++ src/rl_bridge/observation_history.cpp | 35 +++++++++++- test/runtime_test.cpp | 53 +++++++++++++++++ 8 files changed, 215 insertions(+), 12 deletions(-) create mode 100644 include/rmcs_rl/rl_bridge/action_feedback_history.hpp diff --git a/include/rmcs_rl/rl_bridge/action_feedback_history.hpp b/include/rmcs_rl/rl_bridge/action_feedback_history.hpp new file mode 100644 index 0000000..9ca937a --- /dev/null +++ b/include/rmcs_rl/rl_bridge/action_feedback_history.hpp @@ -0,0 +1,50 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace rmcs_rl { + +// Prior-action features retain their training delay when inference is faster. +class ActionFeedbackHistory { +public: + using Clock = std::chrono::steady_clock; + explicit ActionFeedbackHistory(std::size_t size) : values_(size, 0.0) {} + + void store(Clock::time_point observation_time, std::span action) { + if (action.size() != values_.size()) + throw std::invalid_argument("action feedback size mismatch"); + if (!samples_.empty() && observation_time <= samples_.back().time) + return; + samples_.push_back({observation_time, std::vector{action.begin(), action.end()}}); + } + + const std::vector& sample(Clock::time_point now, std::chrono::nanoseconds delay) { + const auto target = now - delay; + while (samples_.size() > 1 && samples_[1].time <= target) + samples_.pop_front(); + if (!samples_.empty() && samples_.front().time <= target) + values_ = samples_.front().action; + return values_; + } + + void reset() { + samples_.clear(); + std::fill(values_.begin(), values_.end(), 0.0); + } + +private: + struct Sample { + Clock::time_point time; + std::vector action; + }; + std::deque samples_; + std::vector values_; +}; + +} // namespace rmcs_rl diff --git a/include/rmcs_rl/rl_bridge/config.hpp b/include/rmcs_rl/rl_bridge/config.hpp index 3d551a2..5d17a36 100644 --- a/include/rmcs_rl/rl_bridge/config.hpp +++ b/include/rmcs_rl/rl_bridge/config.hpp @@ -24,10 +24,12 @@ struct BridgeConfig { double policy_rate = 50.0; double max_action_age = 0.04; std::chrono::nanoseconds pub_period{}; + std::chrono::nanoseconds history_period{}; InvalidMode invalid_mode = InvalidMode::kNaN; std::string enable_path; bool enable_default = false; std::string reset_path; + std::string flat_hold_path; }; BridgeConfig load_bridge_config(rclcpp::Node& node); diff --git a/include/rmcs_rl/rl_bridge/observation_history.hpp b/include/rmcs_rl/rl_bridge/observation_history.hpp index b08f31d..a6456ba 100644 --- a/include/rmcs_rl/rl_bridge/observation_history.hpp +++ b/include/rmcs_rl/rl_bridge/observation_history.hpp @@ -1,6 +1,8 @@ #pragma once #include +#include +#include #include #include @@ -9,13 +11,22 @@ namespace rmcs_rl { // Frames are oldest first; startup and reset fill the history with the first valid frame. class ObservationHistory { public: - ObservationHistory(std::size_t frame_size, std::size_t history_length); + using Clock = std::chrono::steady_clock; + ObservationHistory(std::size_t frame_size, std::size_t history_length, + std::chrono::nanoseconds sample_period = {}); const std::vector& append(std::span frame); + const std::vector& append(std::span frame, Clock::time_point now); void reset(); private: std::size_t frame_size_; std::vector values_; + struct Sample { + Clock::time_point time; + std::vector frame; + }; + std::chrono::nanoseconds sample_period_{}; + std::deque samples_; bool initialized_ = false; }; diff --git a/include/rmcs_rl/rl_bridge/observation_timeline.hpp b/include/rmcs_rl/rl_bridge/observation_timeline.hpp index bd322d2..43b0261 100644 --- a/include/rmcs_rl/rl_bridge/observation_timeline.hpp +++ b/include/rmcs_rl/rl_bridge/observation_timeline.hpp @@ -11,10 +11,14 @@ class ObservationTimeline { using Clock = std::chrono::steady_clock; bool due(Clock::time_point now, std::chrono::nanoseconds period) const { - return !started_ || now - current_time_ >= period; + return !started_ || now - scheduled_time_ >= period; } - std::uint64_t publish(Clock::time_point now) { + std::uint64_t publish(Clock::time_point now, std::chrono::nanoseconds period = {}) { + if (!started_ || period.count() <= 0) + scheduled_time_ = now; + else + scheduled_time_ += period * ((now - scheduled_time_) / period); previous_valid_ = started_; previous_time_ = current_time_; current_time_ = now; @@ -34,6 +38,7 @@ class ObservationTimeline { // Keep IDs monotonic so a delayed action cannot match a new frame after reset. started_ = previous_valid_ = false; current_time_ = previous_time_ = {}; + scheduled_time_ = {}; } [[nodiscard]] std::uint64_t sequence() const { return sequence_; } @@ -41,6 +46,7 @@ class ObservationTimeline { private: Clock::time_point current_time_{}; Clock::time_point previous_time_{}; + Clock::time_point scheduled_time_{}; std::uint64_t sequence_ = 0; bool started_ = false; bool previous_valid_ = false; diff --git a/src/rl_bridge.cpp b/src/rl_bridge.cpp index 57bef8f..b94fa7f 100644 --- a/src/rl_bridge.cpp +++ b/src/rl_bridge.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -43,7 +44,8 @@ class RlBridge final get_component_name(), rclcpp::NodeOptions{}.automatically_declare_parameters_from_overrides(true)) , config_(load_bridge_config(*this)) - , history_(config_.obs_frame_size, config_.history_length) { + , history_(config_.obs_frame_size, config_.history_length, config_.history_period) + , action_feedback_(config_.action_size) { for (const auto& term : config_.action_terms) { action_outputs_.push_back(std::make_unique>()); @@ -100,7 +102,22 @@ class RlBridge final const auto now = std::chrono::steady_clock::now(); maybe_handle_reset_(); - maybe_publish_observation_(now); + const bool enabled = read_enable_(); + double flat_hold_value = 0.0; + const bool flat_hold = flat_hold_slot_ != kNoSlot + && read_double(slots_[flat_hold_slot_], flat_hold_value) + && std::isfinite(flat_hold_value) && flat_hold_value != 0.0; + if (enabled != last_enabled_ || flat_hold != last_flat_hold_) { + reset_runtime_(); + last_enabled_ = enabled; + last_flat_hold_ = flat_hold; + } + if (!enabled) { + reset_action_state(last_actions_, written_); + history_.reset(); + } + if (enabled) + maybe_publish_observation_(now); ActionSnapshot& snapshot = read_snapshot_; const bool has_snapshot = action_channel_.try_read(snapshot); @@ -117,21 +134,33 @@ class RlBridge final check_contract_(snapshot); } - const bool enabled = read_enable_(); const bool fresh = has_snapshot && is_finite(age) && age <= config_.max_action_age; const bool valid = enabled && contract_ok_ && has_snapshot && fresh && seq_ok && finite; + // The action fed into history must match the flat-ground command that is executed. + if (valid && flat_hold) + std::fill(snapshot.action.begin(), snapshot.action.end(), 0.0); write_actions( valid, snapshot, config_.action_terms, config_.invalid_mode, written_, action_outputs_); - if (valid) - last_actions_ = snapshot.action; + if (valid) { + if (config_.history_period.count() == 0) { + last_actions_ = snapshot.action; + } else if (snapshot.obs_seq != last_feedback_obs_seq_) { + const auto observation_time = now - std::chrono::duration_cast( + std::chrono::duration(age)); + action_feedback_.store(observation_time, snapshot.action); + last_feedback_obs_seq_ = snapshot.obs_seq; + } + } *valid_output_ = valid ? 1.0 : 0.0; *healthy_output_ = (contract_ok_ && fresh) ? 1.0 : 0.0; *action_age_output_ = age; *obs_seq_output_ = timeline_.sequence(); + if (last_valid_ && !valid) + reset_runtime_(); if (valid != last_valid_) { if (valid) { RCLCPP_INFO( @@ -212,6 +241,10 @@ class RlBridge final reset_slot_ = acquire_slot( *this, config_.reset_path, {Binding::kSize, Binding::kInt, Binding::kDouble}, false, output_map, slots_, "reset interface"); + if (!config_.flat_hold_path.empty()) + flat_hold_slot_ = acquire_slot( + *this, config_.flat_hold_path, {Binding::kBool, Binding::kDouble}, true, + output_map, slots_, "flat hold interface"); } void maybe_handle_reset_() { @@ -229,10 +262,13 @@ class RlBridge final return; std::vector obs; + if (config_.history_period.count() > 0) + last_actions_ = action_feedback_.sample(now, config_.history_period); if (build_observation( config_.obs_terms, slots_, last_actions_, config_.obs_frame_size, obs)) { - publish_observation_(history_.append(obs), now); + publish_observation_(history_.append(obs, now), now); } else { + reset_runtime_(); ++obs_invalid_count_; RCLCPP_WARN_THROTTLE( get_logger(), *get_clock(), 1000, @@ -298,7 +334,7 @@ class RlBridge final const std::vector& obs, std::chrono::steady_clock::time_point now) { rmcs_rl::msg::Observation message; message.header.stamp = get_clock()->now(); - message.obs_seq = timeline_.publish(now); + message.obs_seq = timeline_.publish(now, config_.pub_period); message.layout_hash = layout_hash_; message.obs = obs; obs_publisher_->publish(message); @@ -317,6 +353,8 @@ class RlBridge final void reset_runtime_() { reset_action_state(last_actions_, written_); history_.reset(); + action_feedback_.reset(); + last_feedback_obs_seq_ = 0; timeline_.reset(); } @@ -333,6 +371,7 @@ class RlBridge final std::size_t enable_slot_ = kNoSlot; std::size_t reset_slot_ = kNoSlot; + std::size_t flat_hold_slot_ = kNoSlot; std::string obs_signature_; std::string actions_signature_; @@ -341,12 +380,16 @@ class RlBridge final std::vector last_actions_; std::vector written_; ObservationHistory history_; + ActionFeedbackHistory action_feedback_; + std::uint64_t last_feedback_obs_seq_ = 0; ObservationTimeline timeline_; std::uint64_t last_reset_count_ = 0; std::uint64_t obs_invalid_count_ = 0; bool contract_ok_ = true; bool last_valid_ = false; + bool last_enabled_ = false; + bool last_flat_hold_ = false; ActionChannel action_channel_; ActionSnapshot read_snapshot_; diff --git a/src/rl_bridge/config.cpp b/src/rl_bridge/config.cpp index 25d43df..c42c426 100644 --- a/src/rl_bridge/config.cpp +++ b/src/rl_bridge/config.cpp @@ -79,6 +79,12 @@ BridgeConfig load_bridge_config(rclcpp::Node& node) { throw std::invalid_argument("RlBridge: policy_rate must be finite and > 0"); config.pub_period = std::chrono::duration_cast( std::chrono::duration(1.0 / config.policy_rate)); + const double history_rate = number_or(node, "history_rate", config.policy_rate); + if (!is_finite(history_rate) || history_rate <= 0.0 || history_rate > config.policy_rate) + throw std::invalid_argument("RlBridge: history_rate must be finite, positive and <= policy_rate"); + if (history_rate != config.policy_rate) + config.history_period = std::chrono::duration_cast( + std::chrono::duration(1.0 / history_rate)); config.max_action_age = number_or(node, "max_action_age", 2.0 / config.policy_rate); if (!(config.max_action_age > 0.0) || !is_finite(config.max_action_age)) throw std::invalid_argument("RlBridge: max_action_age must be finite and > 0"); @@ -100,6 +106,7 @@ BridgeConfig load_bridge_config(rclcpp::Node& node) { config.enable_path = string_or(node, "enable_interface", config.rl_base + "/enable"); config.enable_default = bool_or(node, "enable_default", false); config.reset_path = string_or(node, "reset_interface", ""); + config.flat_hold_path = string_or(node, "flat_hold_interface", ""); return config; } diff --git a/src/rl_bridge/observation_history.cpp b/src/rl_bridge/observation_history.cpp index cb88e9f..fcb64b0 100644 --- a/src/rl_bridge/observation_history.cpp +++ b/src/rl_bridge/observation_history.cpp @@ -1,15 +1,20 @@ #include #include +#include #include namespace rmcs_rl { -ObservationHistory::ObservationHistory(std::size_t frame_size, std::size_t history_length) +ObservationHistory::ObservationHistory(std::size_t frame_size, std::size_t history_length, + std::chrono::nanoseconds sample_period) : frame_size_(frame_size) - , values_(frame_size * history_length) { + , values_(frame_size * history_length) + , sample_period_(sample_period) { if (frame_size == 0 || history_length == 0) throw std::invalid_argument("observation frame size and history length must be positive"); + if (sample_period.count() < 0) + throw std::invalid_argument("observation history period cannot be negative"); } const std::vector& ObservationHistory::append(std::span frame) { @@ -26,8 +31,34 @@ const std::vector& ObservationHistory::append(std::span fr return values_; } +const std::vector& ObservationHistory::append(std::span frame, Clock::time_point now) { + if (sample_period_.count() == 0) + return append(frame); + if (frame.size() != frame_size_) + throw std::invalid_argument("observation frame does not match configured frame size"); + if (!samples_.empty() && now <= samples_.back().time) + throw std::invalid_argument("observation history timestamps must increase"); + if (!samples_.empty() && now - samples_.back().time > 2 * sample_period_) + reset(); + samples_.push_back({now, std::vector{frame.begin(), frame.end()}}); + const std::size_t length = values_.size() / frame_size_; + const auto oldest_time = now - sample_period_ * static_cast(length - 1); + while (samples_.size() > 1 && samples_[1].time <= oldest_time) + samples_.pop_front(); + std::size_t sample = 0; + for (std::size_t i = 0; i < length; ++i) { + const auto target = now - sample_period_ * static_cast(length - i - 1); + while (sample + 1 < samples_.size() && samples_[sample + 1].time <= target) + ++sample; + std::copy(samples_[sample].frame.begin(), samples_[sample].frame.end(), + values_.begin() + i * frame_size_); + } + return values_; +} + void ObservationHistory::reset() { initialized_ = false; + samples_.clear(); std::fill(values_.begin(), values_.end(), 0.0); } diff --git a/test/runtime_test.cpp b/test/runtime_test.cpp index c597a92..930c8ea 100644 --- a/test/runtime_test.cpp +++ b/test/runtime_test.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -28,6 +29,58 @@ TEST(ObservationHistory, PreservesFrameSizeOrderAndReset) { EXPECT_THROW(history.append(std::array{1.0}), std::invalid_argument); } +TEST(ActionFeedbackHistory, KeepsTenMillisecondPriorActionAndClearsOnReset) { + using namespace std::chrono_literals; + const ActionFeedbackHistory::Clock::time_point start{}; + ActionFeedbackHistory feedback{1}; + feedback.store(start, std::array{1.0}); + EXPECT_EQ(feedback.sample(start + 5ms, 10ms), (std::vector{0.0})); + feedback.store(start + 5ms, std::array{2.0}); + EXPECT_EQ(feedback.sample(start + 10ms, 10ms), (std::vector{1.0})); + feedback.store(start + 10ms, std::array{3.0}); + EXPECT_EQ(feedback.sample(start + 15ms, 10ms), (std::vector{2.0})); + feedback.store(start + 5ms, std::array{999.0}); // delayed response cannot rewind state + EXPECT_EQ(feedback.sample(start + 20ms, 10ms), (std::vector{3.0})); + feedback.reset(); + EXPECT_EQ(feedback.sample(start + 30ms, 10ms), (std::vector{0.0})); + EXPECT_THROW(feedback.store(start, std::array{1.0, 2.0}), std::invalid_argument); +} + +TEST(ObservationHistory, FasterInferencePreservesTrainingTimeSpan) { + using namespace std::chrono_literals; + const ObservationHistory::Clock::time_point start{}; + for (const std::size_t length : {5u, 8u}) { + ObservationHistory history{1, length, 10ms}; + for (int ms = 0; ms <= 100; ms += 5) { + const auto& values = history.append(std::array{double(ms)}, start + std::chrono::milliseconds(ms)); + for (std::size_t i = 0; i < length; ++i) + EXPECT_DOUBLE_EQ(values[i], std::max(0.0, double(ms) - 10.0 * (length - 1 - i))); + } + history.reset(); + const auto& values = history.append(std::array{42.0}, start + 1s); + for (double value : values) + EXPECT_DOUBLE_EQ(value, 42.0); + EXPECT_THROW(history.append(std::array{1.0}, start + 1s), std::invalid_argument); + const auto& after_gap = history.append(std::array{99.0}, start + 2s); + for (double value : after_gap) + EXPECT_DOUBLE_EQ(value, 99.0); + } +} + +TEST(ObservationTimeline, SchedulingJitterDoesNotAccumulate) { + using namespace std::chrono_literals; + ObservationTimeline timeline; + const ObservationTimeline::Clock::time_point start{}; + timeline.publish(start, 5ms); + EXPECT_TRUE(timeline.due(start + 6ms, 5ms)); + timeline.publish(start + 6ms, 5ms); + EXPECT_FALSE(timeline.due(start + 9ms, 5ms)); + EXPECT_TRUE(timeline.due(start + 10ms, 5ms)); + timeline.publish(start + 21ms, 5ms); + EXPECT_FALSE(timeline.due(start + 24ms, 5ms)); + EXPECT_TRUE(timeline.due(start + 25ms, 5ms)); +} + TEST(ObservationTimeline, RejectsPreResetAndOlderActions) { using namespace std::chrono_literals; const ObservationTimeline::Clock::time_point start{};