From 672bb7d44e602979896edf64d7b72941659540a6 Mon Sep 17 00:00:00 2001 From: PaperHammer Date: Mon, 18 May 2026 15:44:00 +0800 Subject: [PATCH 1/8] Update README [skip ci] (#27) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 修改文件路径 * fix: 删除多余项 * fix: 调整 ui 细节 * fix: 调整架构 * feat: 自定义选项卡控件 * feat:完善自定义选项卡控件 * feat: 项目结构调整基本完成 * feat: 创作模块基本流程连通 * feat: 完成静态图像信息存储 * feat: 完成 创作-静态图像 页面底栏 * feat: 完成 创作-静态图像-轨迹绘制/保存/加载功能 * feat: 完成 创作-静态图像-图层集-预览图显示 * feat: 优化 创作-静态图像 资源加载与渲染的流程 * feat: 完成 创作-静态图像 图层基础管理 * feat: 完成 创作-静态图像 笔迹颜色 * feat:更新 创作-静态图像-调色板 组件 * feat:完成 创作-静态壁纸-调色板功能 * feat: 完成 创作-静态图像 模块迁移 * feat: 定义控件 ArcListView - 可保证总是选中一项 * feat: 将 静态图像 中绘制元素由 PolyLine 统一为 Path * feat: 完成 创作-静态图像-画笔箱 * feat: 完成 创作-静态图像 右侧功能栏 与 画图界面的联动 * feat: 重构 创作-静态图像 渲染逻辑 * feat: 创作-静态图像 从基于矢量元素绘制迁移到基于像素绘制 * feat: 完成 创作-静态图像 绘制/填充/擦除 功能 * feat: 重构 创作-静态图像 绘制/填充/擦除 功能 * feat: 完成 创作-静态图像 选择 工具; 移除颜色的透明度控制 * feat: 增强 创作-静态图像 选择 工具。切换工具/图层时,自动提交选择区域的内容 * feat: 优化 创作-静态图像 工具交互方式 * feat: 完成 创作-静态图像 裁剪 功能 * feat: 完善 创作-静态图像 选择&裁剪 工具的额外交互 * feat: 实现 创作-静态图像 画布设置功能 前半部分 * feat: 完成 创作-静态图像 画布设置 工具 * fix: 修复若干 bug * feat: 修复若干 bug;新增 Account 模块 * fix: 修复 核心功能-屏幕壁纸 无法应用的问题 * feat: 实现用户登录/注册/用户信息修改 * feat: 完成 账户-用户中心-Cloud 展示 功能 * fix: 修复获取 Cloud 时 Status 无法被赋值的问题 * feat: 完成 画廊 页面 * feat: 完成 个人中心组件 * feat: 完成 Account/Gallery 页面基本功能 * fix: 修复已知问题 * fix: 修复 静态图像 选择/裁剪 工具导致数据丢失的问题 * fix: 修复 库内容-控制面板 信息不匹配的问题;修复 WpArrangement 失效的问题 * feat: 从 temp 分支合并最新修改 * fix: 删除分支多余文件 * fix: 重构代码;修复 创作-静态图像 侧栏、底栏模块 * fix: 完成 图层拖动排序、图层缩略图透明背景显示 * fix: 重构 静态图像创作 模块 * feat: 优化 笔刷 逻辑使其持续绘制不卡顿 * fix: 重构 选择工具 * fix: 完成重构 裁剪 工具 * feat: 实现 绘制工具 对画布的局部刷新 * fix: 修复 创作-静态图像 图层可见性 * fix: 修复 ArcList 删除被选中的第一项时,UI 无法显示新的被选中的第一项的视觉效果的问题;新增对 静态图像-图层管理的撤销与重做 * fix: 修复 静态图像 底栏 Combobox 缩放数值与 Slider 显示不一致的问题;修复缩放不平滑的问题 * feat: 为 创作-静态图像 构建 undo/redo 工具 * feat: 构建键盘快捷键响应控制工具;为图层控制添加快捷键 * fix: 完成 tebviewitem 的为保存标记;修复画布工具异常的问题 * fix: 优化逻辑 * feat: 优化笔迹绘制效果 * feature: 重构绘制渲染组件 * chore: 删除多余文件 * fix: 修复 native 无法编译的问题 * fix: 优化 D2DEngine * feature: 实现带有透明度笔迹绘制的能力 * feature:完成笔刷渲染重构;完成 eraser shader * feature:实现透明度擦除工具 * fix: 修复透明度擦除亮度丢失的问题 * feature: 完成 navigation 图标改造 * fix: 还原 sdk 以及 mainwindow * feature: 适配亮暗热更新 * feature: 适配所有控件的亮暗热更新 * feature: 删去不必要的 Converter,修改更新链路(完成ui部分) * feature: 删除不必要的代码;重构 更新器 逻辑与样式 * refactor:重构 window 与 page 模型;去除冗余接口与意义不清的实现;项目 AppSettingsPanel 已改造完成 * featrue: 项目 WpSettingsPanel 已适配部分页面;优化部分逻辑 * feature: 实现 wpsetting 页面保活;重构 loading 控件;重构 window 导航能力 * feature: 修复主题热更新时部分窗口无法更新的问题;重构 playerweb;重构 preview 窗口;重构 details 窗口 * feature: 完善 playerweb core;优化 arcnavigation param 参数传递方式;重构 edit 窗口;重构 effect 窗口;修复 lib 缩放频闪 or 无法回弹的问题 * fix:修复热切换主题无法保存的问题;去掉主窗口关闭时不必要的代码逻辑; * fix:修复 ArcWindow_Activated 时 UpdateTitleBar 不生效的问题 * feature:新增壁纸导入方式,避免在管理员模式下无法导入壁纸 * fix:修复 lib 无法添加壁纸无法及时更新 ui 的问题;调整部分文本及窗口交互 * fix:优化代码逻辑 * fix:添加 preview apply 事件;替代 observablelist;优化 mvvm 逻辑;规范化配置文件名格式 * feature:lib 按导入时间降序排序;优化 lib 壁纸 title 显示;lib 支持按照 title 搜索;增量加载(todo) * feature:lib 增量加载 & 虚拟化(bug:导入时进度条不更新) * fix:i18n 补全;修复 loading 进度条不更新的问题;去除不必要 inforbar_mag * fix:补全缺失文案;替换组件为 ArcButton;去除多余代码 * chore:解冲突 * fix:修复 details windowkey 异常导致无法响应主题热更新的问题;调整 preview sidepanel 背景色 * fix:修复 selectedmonitor 被重置的问题 * temp:adjust 修复中 * fix:adjust 修复;(web player 的 parallax 与 scale 待修复) * fix: 修复 playback 异常导致桌面聚焦信息无法传递的问题(form parallax 异常待修复) * fix:修复 form player parallax 不生效的问题 * fix:去除 preview-apply 的多余步骤;player 适配 depth img;修复 monitor content index 与系统不一致导致多屏下壁纸无法显示的问题 * fix:3d image 适配 object-fit * fix:同一显示器内容平滑切换 * fix:修复”复制“”扩展“切换不生效的问题;修复无法切换展示方式的问题;”复制“”扩展“下无法 Adjust 的问题 * chore:移除多余目录 * feature:补充测试数据 * chore:调整代码格式 * fix:调整部分项目配置,减少不必要的进包内容;去除 draft-configspace 及其导航子页面的键盘键位绑定;模板内容配置化 * feature:优化 card 组件;重构 draft 导航逻辑;删除不必要的 接口 Bridge * feature:修复新结构下 AI-Model 与 Shaders 加载路径;补全 project-getstart drop 方法;修复导航到 workspace 的数据传递 * fix:使用 DependencyInjection 代替自定义 DI 容器;arcpage 与 arcnavi 适配 keepalive;调整 arcpage 初始化 context 时机;优化 ArcNavigate * fix:重构 staticimg 结构 * fix:重构 staticInk(待验证) * fix:定义 ArcUserControl;定义 Payload 透传逻辑 * fix:优化 staticImg initdata 新建项目逻辑 * fix:修复“选择”“裁剪‘在还原时,残留虚影的问题 * fix:提前保存时选择目录的时机 * fix:修复 save 和 rencentused 逻辑;(打开文件解析异常,待修复) * fix:修复无法解析 vpd 文件的问题;修复无法保存不可见图层的问题 * fix:修复绘制合成异常的问题 * feature:画笔适配 thu 更新;初始化适配 thu 更新;修复画笔绘制时产生的边界黑框 * feature:裁剪、移动、填充适配 thu 更新;优化 rendertarget clone 效率 * fix:修复 图层基础操作 的 undo/redo;新建与复制图层的名字适配 i18n * feature:scroll 是否定点缩放;scroll 适配 shift 横向滚动;默认中心缩放 * fix:修复缩放box因多次赋相同值导致无法显示数值的问题;combobox 获得焦点后点击 container 区域无法失去焦点的问题;BottomDataBarControl i18n 适配 * feature:“绘制能力(画笔 擦除 工具)”适配撤销/重做;工具添加 tooltip * feature:填充工具适配撤销/重做 * feature:优化内存占用 * feature:“选择工具”适配undo/redo * feature:裁剪工具适配 undo/redo * fix:优化 renderbase 及子类架构、对象内存优化;添加紧急崩溃保存逻辑 * fix:croptool 裁剪后切换到绘制工具显示异常的问题 * fix:crop aspect 点击频繁导致快照异常 * fix:修复 canvasset 功能不可用的问题 * fix:修复 canvasset 旋转、反转渲染异常;优化 canvasset 缩放 * fix:canvasset 适配 undo/redo * fix:修复 arcpage 框架问题导致的崩溃 * fix:修复 undo/redo 处理 canvasset 缩放时的精度损失问题 * fix:修复 crop 模板因 layerid 为空导致的数据异常 * fix:修复 crop 撤销异常的问题(绘制所有操作接入 undo/redo) * chore:删除注释 * fix:修复选择工具透明覆盖的问题 * chore:优化;添加注释 * fix:保存标记动态响应 * feature:添加 tab 关闭时保存检测 * feature:顶级窗口添加关闭未保存拦截 * fix:注释不必要的字符串分配 * feature:tab + 按钮新建项 * fix:tabview 添加项目;优化 card 交互;修复 SharedDevice 的配置;优化 globalmessage 的调用;优化错误日志输出 * chore:优化逻辑;wpf tray 主题切换疑似失效? * fix:文本 i18n;降级依赖项(wpf-ui)>4.0.0 导致热更新主题失效 * fix:修复 arcnavi 未合并 keepalive page 的 payload 导致的数据丢失问题 * feature:workpace i18n * feature:workspace menuitem 切换为 command 触发(剩余 open、exit) * feature:实现 exit(剩余 open,export) * feature:export 逻辑实现 * feature:完成 export 基础结构;调整引用,删除无用代码 * feature:export 流程完善 * fix:优化代码 * fix:修复不合理逻辑 * feature:导出配置 * fix:更改图标与logo;删除多余的图片资源;修复托盘二次启动窗口乱跳的问题;修复从 scrscreen 切到 lib 下内容不显示的问题 * feature:更新 setup iss,出 release 包 * feature:更新嵌入安装窗口的图片 * fix:补全绘图界面 i18n * feature:更新 readme * fix:修复资源缺失、安装结果与旧版混杂的问题;修复在未选择保存路径时,为保存标记消失,导致异常;修复保存的文件无法关闭的问题;修复在工作区添加一次项目后,后续无法新建项目的问题;关闭项目后无法即使更新历史记录面板;打开界面去除除 vpd 以外的文件 * fix:修复新建、第一次打开编辑面板时可以撤销的问题;修复首次保存后标记不变的问题 * fix:创作界面可以导入 img;新增“另存为”选项;修复 open 没有反应的问题;修复保存状态不正确的问题 * fix:修复导入窗口文件格式异常的问题 * feature:v0.4.0.1 * fix:update readme * fix:修复 pack * Feature test pipeline (#13) * feature:设计测试用例(344/365) * feature:完善测试;根据测试情况修复并优化逻辑 * feature:构建 github action * fix:修复自动化测试无法运行的问题;修改 workflow * fix:修复 bp 配置错误;优化 dev-ci;测试时跳过 arcwindow * fix:修复 yml 语法错误 * fix:尝试修复 yml * fix:将 hlsl 输出到目录;去除 wpf 窗口绑定 * fix:尝试修复 shader test * fix:去掉不必要的 stage * feature:仅允许从 dev or bugfix merge into main * fix:修复无法运行 test 的问题 * Feature test pipeline (#15) * feature:设计测试用例(344/365) * feature:完善测试;根据测试情况修复并优化逻辑 * feature:构建 github action * fix:修复自动化测试无法运行的问题;修改 workflow * fix:修复 bp 配置错误;优化 dev-ci;测试时跳过 arcwindow * fix:修复 yml 语法错误 * fix:尝试修复 yml * fix:将 hlsl 输出到目录;去除 wpf 窗口绑定 * fix:尝试修复 shader test * fix:去掉不必要的 stage * feature:仅允许从 dev or bugfix merge into main * fix:修复无法运行 test 的问题 * fix:优化 yml * Feature wallpaper extension (#16) * feature:时间感知 doing;修复“详细信息”页会显示基础效果标签的问题;补全“基础效果”面板 i18n * feature:时间感知;时间感知 preview * feature:ai 图片风格化-py 环境搭建 * feature:优化逻辑 * feature:添加 onnx 模型(风格化 + 超分);去除 py 调用逻辑 * feature:补充 grpc * feature:新页面 intelli * feature:完善 intelli * feature:intelli-introduction page * feature:组件设计 * fix:修复 corner 背景残留的问题; * feature:添加预设style图片 * fix:显示 预设风格图 * fix:尝试解决内存问题 * fix:优化 addtask 布局 * fix:cs0854 * feature:修复数据流 * fix:修复 card 按钮不显示的问题;修复 isnextenable 不响应的问题;修复无法通过 paylaod 传递数据的问题 * feature:多次提交任务 * feature:taskview 布局 * feature:taskview expander * feature:补全绑定数据 * feature:补全最终ui呈现 * fix:优化 midas 交互,从 core 中迁移到 ui * fix:修复 grpc 接受 null 的问题 * fix:关闭 onnx 推理配置的 EnableCpuMemArena、EnableMemoryPattern,避免长时间占用大量内存;调整模型调用方式 * fix:修复 ui 响应 * fix:添加 cts 取消机制(粗略) * feature:移除多余测试项 * feature:补全 保存 逻辑 * fix:修复无法保存的问题;修复按钮在完成后依旧不可点击的问题 * fix:修复无法预览的问题 * feature:补全 i18n;补全“取消”按钮无法关闭 comp 的问题 * feature:补全图像增强 * fix:采用分块逻辑,避免打满内存(待验证) * fix:优化超分运行效率及内存占用 * fix:cancel 适配立即终止推理 * feature:限制可用的img文件后缀 * fix:修改文本 * fix:修复命名空间问题;补全测试项 * fix:补全 dispose 逻辑,避免 model session 常驻内存;完善测试用例;去除测试中的反射,改为 InternalsVisibleToAttribute * chore:调整注释 * fix:完善 auto-version,去掉自动发布流程,进更新版本号和分支 merge * fix:优化测试时间 * fix:修复删除元素无法触发加载的问题;修复新加载的内容缩放中心不正确的问题 * fix:修复壁纸运行时 alt+tab 页有对应黑窗口的问题 * fix:补全 uac-admin 提示;还原 mainwindow 默认 select 选项 * fix:修复 ui 进程任务管理器显示图标带有黑色背景的问题 * fix:去除多余的 grpc;添加 dataassist 测试项;修复点击关闭后无法及时更新 monitor thu 的问题 * fix:尝试修复 yml 导致的错误 * fix:调整 yml * feature:调整 yml * fix:调整 yml * fix:尝试修复 yml * fix:调整 yml * fix:调整 yml * fix:调整 yml * feature:完善 action 流程;0.5.0.0 发布;修复无法获取更新的问题(非代码问题,远端资源上传问题);修复 rebuild 有概率失败的问题;修复 rebuild 有概率无法打包 exe 的问题;补全介绍tuli * fix:修复 action 无法提交到 main 的问题 * [Github CI] chore: sync version 0.5.0.0 from main [skip ci] * chore:更新 reademe [skip ci] --------- Co-authored-by: GitHub Action --- .github/workflows/auto-version-release.yml | 109 +++++++++-------- .github/workflows/manual-rollback.yml | 115 ++++++++++++++++++ .../workflows/pre-publish-branch-ci-check.yml | 9 +- README.md | 16 +++ resources/styly_transfer_exp.png | Bin 0 -> 857223 bytes resources/super_resolution_exp.png | Bin 0 -> 370266 bytes 6 files changed, 192 insertions(+), 57 deletions(-) create mode 100644 .github/workflows/manual-rollback.yml create mode 100644 resources/styly_transfer_exp.png create mode 100644 resources/super_resolution_exp.png diff --git a/.github/workflows/auto-version-release.yml b/.github/workflows/auto-version-release.yml index edf6870d..fca3e15d 100644 --- a/.github/workflows/auto-version-release.yml +++ b/.github/workflows/auto-version-release.yml @@ -24,7 +24,9 @@ jobs: prepare: name: Prepare - Calculate Version & Record SHAs runs-on: windows-latest - if: github.event.pull_request.merged == true + if: | + github.event.pull_request.merged == true && + !contains(github.event.pull_request.title, '[skip ci]') outputs: source_branch: ${{ steps.branch_info.outputs.source_branch }} increment_type: ${{ steps.branch_info.outputs.increment_type }} @@ -544,7 +546,9 @@ jobs: Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " Version ${{ needs.prepare.outputs.new_version }} committed to main" # ───────────────────────────────────────────────────────────── - # Job 6: 将版本号同步到 pre-publish branches + # Job 6: 将 main 同步到 pre-publish branches + # 策略1: git merge main -X theirs(全量合并,冲突以 main 为准) + # 策略2: checkout -- (fallback,仅同步版本文件) # ───────────────────────────────────────────────────────────── sync: name: Sync Version to Pre-publish Branches @@ -558,7 +562,7 @@ jobs: token: ${{ secrets.RELEASE_PAT }} fetch-depth: 0 - - name: Sync version files to pre-publish branches + - name: Sync main -> pre-publish branches (merge preferred, fallback file sync) shell: powershell run: | $newVersion = "${{ needs.prepare.outputs.new_version }}" @@ -573,24 +577,42 @@ jobs: foreach ($branch in @("release", "dev", "bugfix")) { Write-Host "" - Write-Host "--- Syncing version to $branch ---" + Write-Host "--- Syncing main -> $branch ---" git checkout -B $branch origin/$branch - # 直接从 origin/main 取版本相关文件,无需 merge,不产生冲突 - git checkout origin/main -- src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md - Write-Host " [OK] version files pulled from origin/main" - - git add src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md - - # 若无变更则跳过 commit(分支本来就在最新版本时) - $status = git status --porcelain - if ($status) { - git commit -m "[Github CI] chore: sync version $newVersion from main [skip ci]" + # 策略 1:尝试将 main 全量合并到当前分支 + # -X theirs: 冲突时自动以 main 为准,无需人工介入 + $mergeOutput = git merge origin/main --no-edit -X theirs 2>&1 + $mergeExit = $LASTEXITCODE + + if ($mergeExit -eq 0) { + # 合并成功(含自动解决的冲突)或 Already up to date + if ($mergeOutput -match 'Already up to date') { + Write-Host "[SKIP] $branch already up to date with main" + continue + } + Write-Host " [OK] main merged into $branch (conflicts auto-resolved with -X theirs)" git push origin $branch - Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " Version $newVersion synced to $branch" - } else { - Write-Host "[SKIP] $branch already at version $newVersion" + Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " $branch fully synced with main" + } + else { + # 策略 2(fallback):merge 无法自动解决 → 放弃,仅同步版本文件 + Write-Host " [WARN]" -ForegroundColor Yellow -NoNewline; Write-Host " merge has unresolvable conflicts, fallback to file-only sync" + git merge --abort + + git checkout origin/main -- src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md + Write-Host " [OK] version files pulled from origin/main" + + git add src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md + $status = git status --porcelain + if ($status) { + git commit -m "[Github CI] chore: sync version $newVersion (fallback) [skip ci]" + git push origin $branch + Write-Host "[WARN]" -ForegroundColor Yellow -NoNewline; Write-Host " $branch version files synced (full merge skipped due to unresolvable conflicts)" + } else { + Write-Host "[SKIP] $branch already at version $newVersion" + } } } @@ -696,51 +718,30 @@ jobs: git fetch origin 2>&1 | Out-Null $ErrorActionPreference = 'Stop' - $mainSha = "${{ needs.prepare.outputs.main_sha }}" - $devSha = "${{ needs.prepare.outputs.dev_sha }}" - $bugfixSha = "${{ needs.prepare.outputs.bugfix_sha }}" - $releaseSha = "${{ needs.prepare.outputs.release_sha }}" - - # --- 回滚 main --- - if ($mainSha) { - $ErrorActionPreference = 'Continue' - $currentMain = git rev-parse origin/main 2>&1 - $ErrorActionPreference = 'Stop' - if ($LASTEXITCODE -eq 0 -and $currentMain -ne $mainSha) { - Write-Host "[ROLLBACK]" -ForegroundColor Cyan -NoNewline; Write-Host " main: reverting version bump commit" - git checkout -B main origin/main - git revert HEAD --no-commit - git commit -m "[Github CI] rollback: revert version bump [skip ci]" - git push origin main - Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " main rolled back" - } else { - Write-Host "[SKIP] main: no changes detected, rollback not needed" - } - } - - # --- 回滚 pre-publish branches (release / dev / bugfix) --- - $branchShaMap = @{ - "release" = $releaseSha - "dev" = $devSha - "bugfix" = $bugfixSha + # 使用 reset --hard 而非 revert,因为 sync 可能产生 merge commit, + # revert merge commit 需要 -m 指定主线,直接 reset 更可靠 + $shaMap = @{ + "main" = "${{ needs.prepare.outputs.main_sha }}" + "release" = "${{ needs.prepare.outputs.release_sha }}" + "dev" = "${{ needs.prepare.outputs.dev_sha }}" + "bugfix" = "${{ needs.prepare.outputs.bugfix_sha }}" } - foreach ($b in $branchShaMap.Keys) { - $targetSha = $branchShaMap[$b] + foreach ($branch in $shaMap.Keys) { + $targetSha = $shaMap[$branch] if (-not $targetSha) { continue } $ErrorActionPreference = 'Continue' - $currentSha = git rev-parse origin/$b 2>&1 + $currentSha = git rev-parse origin/$branch 2>&1 $ErrorActionPreference = 'Stop' + if ($LASTEXITCODE -eq 0 -and $currentSha -ne $targetSha) { - Write-Host "[ROLLBACK]" -ForegroundColor Cyan -NoNewline; Write-Host " ${b}: reverting version sync commit" - git checkout -B $b origin/$b - git revert HEAD --no-commit - git commit -m "[Github CI] rollback: revert version sync [skip ci]" - git push origin $b - Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " $b rolled back" + Write-Host "[ROLLBACK]" -ForegroundColor Cyan -NoNewline; Write-Host " ${branch}: resetting to $($targetSha.Substring(0,7))" + git checkout -B $branch $targetSha + git push --force-with-lease origin $branch + Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " $branch reset to pre-CI state" } else { - Write-Host "[SKIP] ${b}: no changes detected, rollback not needed" + Write-Host "[SKIP] ${branch}: no changes detected, rollback not needed" } } diff --git a/.github/workflows/manual-rollback.yml b/.github/workflows/manual-rollback.yml new file mode 100644 index 00000000..607cd97c --- /dev/null +++ b/.github/workflows/manual-rollback.yml @@ -0,0 +1,115 @@ +name: Manual Rollback +run-name: "Manual Rollback v${{ inputs.version }} | by @${{ github.actor }}" + +on: + workflow_dispatch: + inputs: + version: + description: 'Version number to roll back to (for example, 0.5.0.0)' + required: true + type: string + scope: + description: 'Rollback Scope' + required: true + type: choice + options: + - 'all (main + release + dev + bugfix)' + - 'main only' + default: 'all (main + release + dev + bugfix)' + +permissions: + contents: write + +jobs: + rollback: + name: Rollback v${{ inputs.version }} + runs-on: windows-latest + + steps: + - name: Checkout with full history + uses: actions/checkout@v4 + with: + token: ${{ secrets.RELEASE_PAT }} + fetch-depth: 0 + + - name: Execute rollback + shell: powershell + run: | + $version = "${{ inputs.version }}" + $scope = "${{ inputs.scope }}" + + Write-Host "========================================" + Write-Host "Manual Rollback: version $version" + Write-Host "Scope: $scope" + Write-Host "Triggered by: ${{ github.actor }}" + Write-Host "========================================" + + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + + $ErrorActionPreference = 'Continue' + git fetch origin 2>&1 | Out-Null + $ErrorActionPreference = 'Stop' + + # ───────────────────────────────────────────────────────── + # Step 1: 在 main 上找到并 revert 版本递增 commit + # ───────────────────────────────────────────────────────── + Write-Host "" + Write-Host "--- [1/2] Rolling back main ---" + + git checkout -B main origin/main + + $bumpCommit = git log origin/main --oneline --grep="bump version to $version" --format="%H" -1 + if (-not $bumpCommit) { + Write-Error "No bump commit found for version '$version' on main. Please verify the version number." + exit 1 + } + + # 记录 bump commit 的父 commit(即 bump 之前的 main,用于恢复版本文件) + $preBumpSha = git rev-parse "$bumpCommit~1" + Write-Host " Bump commit : $($bumpCommit.Substring(0,7))" + Write-Host " Pre-bump SHA : $($preBumpSha.Substring(0,7))" + + git revert $bumpCommit --no-edit + git push origin main + Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " main: version $version reverted" + + # ───────────────────────────────────────────────────────── + # Step 2: 在预发布分支上恢复 bump 前的版本文件 + # 无论 sync 是 merge 还是 fallback file-sync,统一用 + # bump 前的 main 中的版本文件覆盖,确保版本号一致。 + # 不 revert 完整的 merge(保留 main 同步过来的代码)。 + # ───────────────────────────────────────────────────────── + if ($scope -eq 'main only') { + Write-Host "" + Write-Host "[SKIP] Pre-publish branches: scope is 'main only'" + } else { + $prePublishBranches = @("release", "dev", "bugfix") + + foreach ($branch in $prePublishBranches) { + Write-Host "" + Write-Host "--- [2/2] Rolling back $branch ---" + + git checkout -B $branch origin/$branch + + # 从 bump 前的 main 中提取版本文件,恢复到旧版本号 + git checkout $preBumpSha -- src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md + Write-Host " [OK] version files restored from pre-bump main ($($preBumpSha.Substring(0,7)))" + + git add src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md + + $status = git status --porcelain + if ($status) { + git commit -m "[Github CI] rollback: restore version files before $version [skip ci]" + git push origin $branch + Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " $branch: version files rolled back" + } else { + Write-Host "[SKIP] $branch: version files unchanged" + } + } + } + + Write-Host "" + Write-Host "========================================" + Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " Rollback v$version completed" + Write-Host "========================================" diff --git a/.github/workflows/pre-publish-branch-ci-check.yml b/.github/workflows/pre-publish-branch-ci-check.yml index 0560e2c4..42015d44 100644 --- a/.github/workflows/pre-publish-branch-ci-check.yml +++ b/.github/workflows/pre-publish-branch-ci-check.yml @@ -27,10 +27,13 @@ jobs: build: name: Build Solution runs-on: windows-latest - # push 事件:跳过版本号自动提交;pull_request 事件:始终运行 + # push 事件:跳过含 [skip ci] 的 commit + # pull_request 事件:跳过标题或正文含 [skip ci] 的 PR if: | - github.event_name == 'pull_request' || - (github.event_name == 'push' && !contains(github.event.head_commit.message, '[skip ci]')) + (github.event_name == 'pull_request' && + !contains(github.event.pull_request.title, '[skip ci]')) || + (github.event_name == 'push' && + !contains(github.event.head_commit.message, '[skip ci]')) steps: - name: Checkout code diff --git a/README.md b/README.md index f5ddf2bc..be4d64f4 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,22 @@ Many modern theme styles +## AI+ + +**Image style transfer** +Applies the artistic style of one image onto another using an AI model. Upload a content image and a style reference — automatically blends the two and produces a new image that captures both the original content and the target style. + + + +--- + +**Super Resolution** +Enhances your images using AI super-resolution: +-Clarity Restoration: recovers detail and sharpens blurry or low-quality images +-Lossless Upscaling: increases resolution while preserving the original details + + + ## Download Windows 10.0.19041.0 及以上 diff --git a/resources/styly_transfer_exp.png b/resources/styly_transfer_exp.png new file mode 100644 index 0000000000000000000000000000000000000000..5d26f663918a91ed5595aeb09774d5ecd92ddfa5 GIT binary patch literal 857223 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¥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%0AHMreTK9iwTX;w zl{Wg66D|W1S{c2KJbX4u$a*Ai5&fSoYW!@V&|d%9m5^~v-ZXGpGl7y!4V9RN+9`|t zPirZCZL61prtxqURMO)Q;;!6Z!P(@|nPNqFMKhsFhJ8lYMy#HYp651WoNb)@yT5B9 zv!?vz>`Ej}^C#jB+Xlp<`vUsVgsdL(7=Ol{^bf;1aI1iEH|b%|>#fc+skHOMSqE7VmZRf|Nac_d-urG$ht^~vUoH3)^pJ1wpCD29H8IxMnBi%9;)hr zkct3*_pTyf-ZEras;BW|E_XtAl)?$)wzqNR{XyH$Ugir-hT(|8_l?N!zhK{Rn* zI(S{WgDZSS;O}7a(B8%1@$g(_*laPwzhzqHHk^t{>3>-Lrl7$o(RfrK!h!F2F{FbX zd^CB`1R8n9FkrT%^dgLi>5+u}$?&eS*W?tSrg_b2u1N(mR~TEXf^DE?o+SE5FUub+ zs@j$sO;-k`@Wn4_?YY8=pr<1C)>8JbCLK{Rh>WO~GIWha+pz&~4Sjb=GHvJQKZ9h^ zkI(C8i5i#_2UIg=VHT@q{x%q$HoPoQ$~J0a6-(xqZz7udu9|d^LA%fgNv}1WIo4#Da@NPHrPP>4+=z<3-%hF}UH;65ZH$~+5-F0Gn$`i+!4xurN`Z+rXfu(| zZh}~9G)&9)46Yj_#1-Yw3I{}#c1Aj+B9^ghR<3{sJU#A)#SpTRY0}%H>W(oF5gy

D=-VTjTR@gsr%|iom${%R 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≺XviMfL2JQ5bb6PUT27ITA%; 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%0D_3Ixv_A4rFH2%NJ_Hu0jp);Y?($6BCUMCW zH*4OAiV4)Dw)nX%pNZOnj3F%)cA@A6G>%+;N(;)pMq- zbu6>8jEs8mp|SZk1TJ8owq%oAdBjndzY%Z^4Xed>w{)^>G(fSrpvSFV4~`7|;_mH! z=5?Uv8qWX*_@E8g!QT9xu)@~e3(kfWw3E*7xDOmW=PyF09@GT z2^uLXjlzn4Y)VD*N;GfV%OqV?$gPX}H=_=LmraLkkBwhwdkk!MhU6&elPKkyDIFcU zGNBjbyV{oqnqHzA;?wRdTf!_{e#J-##E(R2=hPits=zy3wcI?q(>vIE+*}5K+1k23 z&MFb<(Iwg)kwo`>+kq3}&p7BDN%DRA8PnPt?#aGBo-<~C6h6b|U6ERQN9oFyI=`f* zpsV^_pV6&(32Q+^cX+4+4$o%%qF%fw)%ipO4PGG>&JQW;2FsdgM~W z8gcoEMcw*Iqxx;f;G2((m!10c7GVU7B|vGgu!3QtR({PpJWSmTc0&CH51F+xB(K!e1ZTbW*1D-jbN87vknuffA_(J1O`G>j+2rsx~?YeP$7Gj-T17O z=LHSQ&o=cSA=||L_^c97kA2RqHHrb^R+^jK@~_wS82jCbWL>>x_}5XRcL02f=d_2t zu2%KbCvnr4;GI`0>8;IX`RCu)4xpdG#RPd$Qg?54EjMea^1dzpgogI|;Sn)7x~=x2 z>e3i2k+Bi7b|%pW*fcZ&L7DwjllPP?izp(p;uz#F@w9iTWdgQrv?GJurfuH?_*l9w z#huu&DOvtzT_m8tzyHjmA=Z zLp1B$lUn|Vt)F59;Gogg!z`wj52(AExt)NFOnwhBEyLDCGst&$ca#PKe*MBvltg-j zhv7@-?>D!cbwolted;2{2Url?3OnjtQ?~Wl|AEOt)Bf({@#{>Upz+Hq!*_(-!Q6Vv z#MF?Wy#aAC4Sn`_p(h=jNjYOgVHs)gx!CWGc9ogS2HxRLn+!r*RR21g+UcSaCPmLR zHOQ}C1c|oW`-|QN_;v8i+-pN8^&IHv6&txzCZB(PU=IL<4rqR)7Yvs9VqkC1gF zWt)huJhP;t#vdDpFD)la{RMI~MxQ~$^#I+RpbwULg0y|3LJEttI?MO)EW?`eU=13U zvk|sqJqj5OP+OAKsad!^gZg^lV-O5~Iv3_7?rKQXHP6l|i}U1=wM4BSv6Q}yi9{Q2m@j-N6% zP*&D)WPFztw7B*MY3-^jdtzQ;l72LeOA=SA1++sa^&I$DdrL~P>+Y1SP-sV z=Eox9cK~l?3t{7U#I*XfMQ!+DD_qDwe?gly6%;>s?`rP+Ipw$U zov`E9Zi_}Qp;`sfp=X)M%9OJ86};W>|BfbqYv%DY#vVaBcitFCHlg-#l(~^^YHS)@ z^hQhFAGdOlrCaYWKaVf&+RmGVhd3v4$@#cK0waomRK&;4d6Yc`;g%CYRELcO#M1P(}u9 zIKkQQ-#oI93=I%%&kihdP$zj#r}sHIOvYC>N}HqO7x(V{k*0sG#a@`rlb=!HtOyS0 zPPCLCgkY1gmnE)Xn!lXJI6Bs7N|(Y{G312swBI1J%=)3Ydk%DlRc%Pf^}t*9cTB(K z1O2}WFE=8U)WL}>Nr$%CP#>Bu6$B3@4m?5l4tS12O~iM8-UI?xB06z^t+E;(e@E;% zPH*nNmM+h;Odw}H+S(_hvIhPZENcqMHc*mF>Ky(ttc>fiZ8Ex@W)y9?JViHmVp3up zaFI7@(-+A?k&R$ej-`q1&!R!v{_b+M;9ILI5#t@eiK%z$N$4X!z^N57N>zgcxNMAH z^E|5~PdS#g_Jz>?5wS3q6vb7?QH|?Fwef22`c1-NzY$)vatuw56R_FXxMybM*OUdv zC9<4_4bz-kHC+et7+73@1+0dYEzq;$wVfx|K>L!6EbC?=abN{@`6*OYE>S&w>`VP& z0{86^>Fp2hPTd{P4ZJs#H>VrN{=q&t{qr0eh{DpMIm?dE{idXrX)o-DXE+}^kq633 zlLo=lsMt#@=Xh`h_{KqxiC6`aCPDD=Bhg+wngf?xwsGq;a{+=motoBO+&VK0V?T&u zQ2A9-O+`Hv9Dq1=$3?ZxB`O&56Q4nd@q|FAq2AUUs#)WTdt7 zy?pMHY}ZcSc)!2_96Z4072(INK3>j6;l~~lp4=-#3pU;SonE2gT;85e9)az-aJ9`? z%<~$ePoc)cuhVR^8q$W6kp5orWOIr}Fa<)x-}$TGV?#`DTBwIscWCBCqxCbb@F zT{#YSVp*{#Y66@2s$=_?Dz-6|6AteTQXiCGT@hN`#lOeO+7EkN15%Nqrz^;>49hIV z!~1)7a(13yTM}0rl#3z&1?770Hn%t@AuXo=Odyk)Ia*Og3h-25v{Q3yR-Rji^b}+J ziTNS4;KL=czP?&N`&=A8#F`VuB|CXENBL;Vv~j5oPP};6x|cXxaOd5gh`E}!C!N&F zA1EVsc|<3=&qs`!-~ovjN+!3%hRdPavTTYV`>bCbyqV*T7fUIJ=_yoi2nVY+6%8>7?Pz(Bvn?nMd;Fa7cD!0sNnA!G>d!t_%K+serC_qs zE;%fR;NQ|=YL(1)t17bVD4H9|AmJ^tF(2KM5ML6yDape5{?jAH*0I}^WCBCGq(fP0 zv*j_XdJ&N%MIgnCV-roDEKG3+S?@Yc-!*3hcx39=F=!7NzZLdh_OEkd+Z5EO(+3c% zFB9!kR<%KEkRqqwSXmb5?aNV3^>$a#ly0wS(Wpj?R79hJEn(rFAqk-83t~GW4Xv%P z%$^IwqEOji!?3VFfC%n3OxYUw^ix}-@B;2QJ~OE}L@Kt`*gPTyFeLV`XKObwXN}z3 z(>C&CC}e7B{q>Hpls^N1FWh2+p^krW%1H=duL!d~AFpA!v+EwyE*ty)>YmcN-Q71l z9d)-h_kQz?CFJ{*84<#*GT{4c^+2`V<0a>&&SPL7{&ILq*4txXWbO>w4D+rw!2h4^ z5_lh3Xy@vH##RmjV#95BdC^|%YMKq-ek|a>-%i0bEvRBpj(kv+=4~CXHH|bct2S+~0Gnex!N&n`B~7tav{7h8_-i_4qi4=V@Nw9KEnA5^o$`cJuW3F^{Z= zduV$%4-TZf>ET};4{h4;2fQa>$7_Zx%=f+r8^01CZc~@K;O5Yn+cu_Ww9^%&UtLZZ zInu-z%oz{YvClgd1ddmuoZS{#F~}DbP-MhdI%LZ1;o39(tnLo!dvx~Blx^EklXx1E zVd6@2tfZ=(twbzq1apjKTi_X~S z%pI7o`D$-Cv41tCQahzNznLN?Q^|G8b36(_BJHI~9>gGahWlDki(FDU6#h=d)$eiv zmaeDZKSoLP3WuGp9})5*{=yQsxMVT!)}9?XcNc@S#I~q8b?*tERD_L-&!cGLf<<^) z;i^BK-^!Qtn2W*tx@TnxUmU=lo9a!RX)~h&a!Z!!LtEiRX3BZmakjvD!2U{8`9N8= z5gbx1rnZ<})b@;!VRdC%mPaM{0AtrJf*=P3?mENpRg5!2+sB+VpA zQGZq|@v&s~1JxxxVSjZrBP$D7d4XudYd2#`oH=#r33Rb%5E%q znRo3JX5px5L^4`?xP@rGqqH%FyR@{ti`o$*=ZH5x}sR*8$ zDOy(34tN8|*c6-}V;HSUh%la@XT7*md!Vflw#G@x=0X$di-2W>Wj%aw*Y&|66k2R< z+wrGnnm_6Y4IU~2sqRB60l(kc(a^mqX$E$K&ory>tqp97Pw#bWaa8xb~?xf_bEwxom+W9jE zg`;D&yXO`-9*x@EECEB^sd^V|c|J`}ZwyViIZ{DzFCrrQRXL;PBx8KRqbcFBO8Pk^ z3vI!!&%h8W&fAnw8V5I$vHrCtaBCdi-o(R(HgV6yEj0ZZ(E(PNe7YF? z*~v8ADL>1_A!4A4i4RSm9e+KvUyNztYYRpcl#;qJnr_oIv1un{i{7-%xRMZE2&}RG zYkAEwba>$(m-id3l>d=vE&9?4nnCZeX<`mbjGk@L9hcOoKB=bT)wi%VC>@Mc9lvgL zW*U@w$#kJt!-IboF<>N%MA+E3Je=IkxvX{7dQ^Wb@|aUUa@0nSHSK=k{x=#-O8-b8 z6u7x7Kq1+lKx8i|Qph&;Dd{LggR<}osRfg><%pZ-@6P$IRKk}I zL|n@1hOJK9IU4`JsCuiQHXJu-x4*WuXmNs5++BlH+}*9XyL)kW_u}sEh2j<-!k!QJPB=t36zAa-4C#UlK zoS3-eS2sVudDoWN8L;TupAYh%U{73?FcB>n)i^knv2#w3i;7Ev8(W#KPqIcUE0Gda zRV5|FQPk~F)LJ-{7Z*k3Ws&q5;er${_D^-wJ-OEYTx+3tj7)g)`vsC*+`5<)hjeUy zES;tX=kJTGlfu2&6-)Dem&__+GxDJvb6lbvmWVwQ9S>QfYtmK4kw@`jXb~%SRX^xX zCj*9yl?$4Tz7g@-rX`A~!6sFcu8*o@G5ywmp;7B2r?fS!&BLSPSuIYCk&;zKln2pe zt2HO8q>;0ar=}yJ@b`Hq`s^Nhb$Uk5Ril|MsB1Gbj(F30^{(F$XZ5wMa&`CsTl(9_$Fj%RHh-oK-22CII^wLndBN6)U=z(U7wB?N=BDt~G__iu@ z#zloxx(he{UA5H{=IWog=ufW;B2p5V%{W8w;)QIJ-t1(&qd7>T=&!n_=DO)?2S~Uk zAb}AdNo>;&=xHf?6B2fN+;qJhUL^!K+hKaicCRTm`_UR|zG$~H`ou`^;0%`N#aNsC zGRr6x;Tzh0v>niLZcV<%YZPH+;0 zO8vNfZla^B>(tn?#|(>>gV(;wO)D7NS&v6o{e8JM&U~i72k!5UPOK&SzF(8ZYiL3o zfdfAdz207?*n3~!u%FNG90l29Nb=WryDs~vc<7?qU8o<-+!A3exq|LOWIk0Qe?RZk zzHYC9n+KkQFdhCbuF0)U{+;Lifc>jYfty8hNcs}$|7JRtS9E6ea6$1P2k7BtK6pWB z@HiL-SD5{1Shv1CHUaSLATj%05tNR4!N$ifu4Rji(0{0P)G>Kd1GHc7kr&aRtFs4P zrvu_WA>OG^oovIaCl6NpbX$TQQ#(_@FJHYgE>8DSh0TR@w>N7}yE}o?hWT5s;VQ)M zG_Ze|8&1F!`rVZnMF0z@=D>rips1$G@r86rlR&5qCS!9d^=t;7oOmIs{7{2lxk4EY zc|=r>l1>!{t{t;cVOh}Frj9pr+N@V^#^xfT_nP&QL!EJZP0|~*1i1~XfkkcN76P68 zwg9=ZXBK@uo|GGGbmdFmUjs61js1J8VIW=~GkervLcPRtgj$oTVruKz#ub+^CLN?H zP3NPQ70$)qP2)}*@=J~gb7;3Hh#g#zw+;qQhV2$>bR}syrTpXIlfj>MEZ~ePh0b!Q zNzN_gjSDN{6a|OI+yI=-Sh5Rx)x4Rh=bUJx8Y<)t><_^}ESXD73NTWI9v-quGd-*` z&5a)&Kf7@>z29k~XMJ7VdV$r#D2SzzL&mkk0=Hrz73oGM1f|dhj#!>unOiRA2aX9# zl$y{~!RkBDxYEGsK{H~~A{eAtf|(A#8!t!B)RZl1b6aWnpb$4Z*36tV@VJA={9reu zBkRwVCwz}+pzGa}Q|~L`%FrP!l1^2}8yt1OFLRo3eJuw#vHWp#!TK9w|B!r zKc48wuKZkgsf;Zecl)K+GaXY^;Fuq1yfpmx;Pca zd;gyQHbz#<$jQp1uVAN$CC>Q9aZ911=Mz^yN?yF5OW8D^p2J3xgtQJHF96G~0YYIz zW^$=61Ag2VAg!Gpez+i)7*LJWs zUtUECq71z#4Gl_RC3Q^kj%p5)kg(ST`tW5JtJ6~C4Vx}MSrI2w7JXE zD0$XF*0i_yZ9)f9-g-UbH~qua!l(tj96X3Xk9s1@;H6<_HIy>4`p|)0aD$wlMADU> z!(c-v!4KSNB0{*mP4N(8?M;$hq~s3Daz|Sfc#YDxf7i0mWiDM&?XF^6n7KNM&%3nAP zk;+aLc#`8~9q(JHdgjCLX63>TWNB-zDcL88E|YQ2R%xRRV^A_PJoLPU<_sgUx4t2b$X0&j&LtqjTlj|UOI-o1Zl`69R9^DyA z7@uGLf6Sx+ZJ1ILf@ooa|0kXTC}0lr>ZtM8q%1m`Bddm`e#CG;zWU9YF=F;WWHm_z zQOu$ZA0>83J|VfZR#X+V>Z967BAvx&xxB=DD)S?P+^$7~RyGLTxXjy9S-s88 zrECbu3M)fvOR&ERd^7R!GhmO zTetqTo-?Y;<9pi#{KT%069hQ?_WBI8b(mnnB!}Tie^+*4*5nSCpRq}R=RPyaimJKe z7aF&Il}93onQFtt|0nExD)RLkN%L-dGGlMqx7~~Gcy?;k z?bBVUpT8Ib{SQJO2+#pmKkOT^)mIkh&9YQdjV1gWfh8T!qf%VtyvsS&?SJpuUAEpUh9@(i|8|FOTo)jB<^&LnJ7ra@k#RkNe*3h~IZmeg-t>5+Usnp~rxqYo z8V+t(*Y+gLIJ)gXt%y@nS$srtFHY5=Xo!l21icnM)9(HPP99RnpKD|0_*yrpaYHV3 zbh?*+P4Z!Mx>k<>MNakG)5Qm7d(^9gHx?lw{J#sU5ky}ak50x5>Pr6%C?RdtOhb2@ zs$OnP<1UHiu5MouHksnDeXY=ZvU4r1j|)wTgQwkLgMc?m;8_d z;^7jfWLh^jh}@Y%%dYsO8RIx@uGyOg>?@I^R%X{uVE27kBBlR>Hm@J|%w9`i+D~x> zZTiCB%_vsl*n6gXkVefiHYwEiPjkz7wq$2H2y7=wwkcrKs^(Iq7kia?aTOT-IYjlP zdv44y@7vXBu+iI#WrBky^$Zu6X>xUtqgA0W71H31=GtDU%2V>xjxQ$qDw%STz<&e3$o!G)Hn)0kkQ_{E7Jx;B<-(z3I_LR~28N`7NKJ36ewxcS)pw4PsCcZss`782)g)oxz08Fr*on1T8@`&Lk z17tUw(i~9AQ@@n76fOF4Z5{a>f4O^nMl)#$yOaG#4E3#@O@C6MRyxojM;U$YN8H}y^xdBWiz_<25k+o!JqoZ zj?=O}N<8ai5cN!Y8X_hCor*!pIb5|QZ=(Xa1au~UMN0Q{EQ_y*F_higGjkeO$mn*vNrkCI79mH9~ z(6^M7$R&USD5}o*W6np8RRE6`v34EL@;H?q=k~np-nPWj=at@7?@K6<+NE%?RL%Ne@}EId{|6 zMioB!vQfg0{f1Hn?QA(QzCxs->f2Zg@JZw%6vZ8hS;s$=kMZa#UyskG3mQ0shwtQ0 zbXCd)^M&_AX`;sc+MOxWE~dX*SAPB|m=O)Y?C@lbUCqKhIWY-Io~8bX3hy&wG&ViB z-=3g#q+n13C;|A5+6s!u?HUx~+ey{&iGv(T0Zb*Tv$!($si;GMPZhmbB1@k58$}4F z2Sn7;Gl#V|1g6J4hfjjWY$M zO{eKWUNnt^AHGYp3aMJ?N-k)i?w-#nI?C>2(J#ghD#?n8vz|HQy~69SjF3o{GP9cx zf7{O5`TasnSXWa#y4VD>r}AF2&Rl1PEbG|D*GeGL8;Z(xsH#|C3g4@ob0_}@<^UN6*He;)lqmxr4b<{?tewLLd!B z_r#nEpR;DU2qyD_$0-i;DVT;(SQD9*)B)5@Pgt7vsm_PesJA^va?GWyY$?H-<@Afw zK0N3q(H&(N)H{p~0u}MFby9C1wV7q|KC03sEtA;y5^YTI`=E)uTwTL3{(B;io_loZ z3gCU?{N3WS!;QS1d!b2TcxNK9cb7*&8~6isSn8gc=AZr-_e3;2W?q}NmuRxDUMAVTU&n}|<>NOExg;mTwKU~GOPoDYi{f9S3zKWNm^J^(mLgYI^ z?ul6T(pG8YD^64?#af7%M8L>WEVFEt3}X@bG@@JJK{FO`F5y(lJc5-Iud7|lQcOIE z%I!GKGz?z}*FxN2-XEVW{^~#nTXr|JJF8+Zq9jg9jv2(=z^^=2HRN6p^UZZd8vKZ% zahM%(U0>Y&J?SgE+XL@q|K{8;$>{XaILGZ#e@t`OT3*lWaP-SOlJy+Re;1}GiWUx)RP<`6_J$Y(*Ut~L_lYny z>#7hz`wN^237S9j6hu5}6Xt@3Z@iVAxS|{|^XL)%0}G3$aHOqFQ&W{xlfGXSqcGR% z?>*{$V#Z-|w&)HD2Lm4bt$tZ7Wqa{2jkYW@;0MQ}S=9UpsoXZw*p%36nv4`@a3i7z}7>w-JiUw(gK>6!Vsfh}ugtMXe_*GB8U49T1ffs8);8$*5 z<=F-E;AX=$%FKq^kuvAlET4_Zd8%64_-T|;zuYjkY+ z!TFZNnR&D9G-6|X-oAp`;Fvu0Iq$W^1y&41>%f?_S#~iA&@~u z=>!#=8y8JwlY$5eI;TEtuxYunaN>(NV?oO1@8A8raPqw=OFQheW}9maq*&m5DMa4o zs28W`9LMc#pKLfz1w6E>cJ`IC;sQW98{5}^7gbr-}`z&`R%T&BLQ!K8FT?T=dKGiUi~|p zV`#X(_v~N*Kh(UzWC!z%Vqwz9$k_Gs#JNs)H|uzSKQzH1-~pk`uPfB}$-yE0@n8z6 zn$cYuZF@Q%R100Y%yX`&%kK%ZetEErGt6UzyeuHa@vhFO=Ypc2xkJ6s>b?hH{C#G9=hb|qqJwPYE-k`egdYw>+5&^V3d8e*> z_#V9Thn7~-3=NrH6|upx%mM!v+JxRc+TQcgyUj0!`8Pgo$H<$q@-kVnP&*x~@W-cp zg>{2uth)K|-r@%HTldyQ^t*{rB7{7Yq*Rr87|mF7n2|9{qiVl#vdp9@`si~pwg8b0 zDvgTE0&QFbV&XYmJe(pH_E`<8W1v&fRld&$bRZIW$lX5wQr)8Cq4_s@*--xObkMjn z0zE3CXLAY&N?pPqpf`LH{4tN=5MoK2zTc(2-j_POK`^$iC5IKY*7_!#M2DKF=LS0s z?e1~s|8}E^*&O5Pq%J%nL@p{Ai!SNntmd!W8yB zS0XsF6CLZiGTWQ4$hC6fGfS9Km;2wD+Cso;0Ac-GCmm+*8KHj@e@s6FC;KBS!p-qv zh>11<_Ob1oT|HTOjzROWTEl?g%y#^N$py;;oT3bEG&vzj_C8$D%@48`z_f}1x{O)L zPhMcy(=fa>NK$3tNL2mYYM6>VGb7H}TQCfAOcOTzneCY{x98B(3R>E|oEpTh+1M1P ztmGJ#wfdpbCTNWQhN^Egys%MNrZTA99@*HDC2ceB`_uEsPE(0zf7tkGE5~|6k?m&KZ);V4s7KPuc~EQ*B7&7qBux`V(NHMGspkfLP{&`ekZJq75&#gKZ7l|P71T2P&{m}oZQE`4f5%XUFx|wJxEy*5{7t_uuN?cCUj*bs zwb{XK4i+G`ZXePjEn*zaJriE~;q-q*k!%xH>3ifzR)&E|Ea#ht*p~zUm27aXN`k%*rL9KjoR3dRh169gY^d@HEMFhMo%h!_bp-R zPvqLRtp`r^3-A!O3=H@KB)H6fj8WFwg++C+wwC48^Lc&H<+eetiB;le{c}Ak=)R)+ zyVHbv$NNk5(&FEn1ftTfHLT67qQgq4tor)J9$5wFu2`I1JsCX9PRm1aug`KTW_Fz?4LOk3nD@zO_QMN5z+bZ6@uW zLphXbu4bOCoNOeg+R6%OVzioWC}dd;%DM@jx6o2bZ_TdU>)DgcPR42vu4eJUZ;Xdd z#d_DGnnE0D6lqG?clUTz9i5|sxdJN_LXmE z5;xNA`X#7@cOrf^j*vJ$y@^*9q$Em+X{XI_qv;$_9Y@e3zK&b5JFP@n2hep|vl(?K z@@j70n^E5!*7E?yTV#9kFHN4b;NyEOe)&U3`g=(zku_s+ih9V7HVcFyBMt}tz>Ul}VtkaeqwoE~@ZzZlk$Xby7(phJl`)xmj(ZWD~&C z=b0_Ow9?DHC2{+jhRoJAf=!ibK_+a%V(3_~Bk-<>zzTSWo<8j>F_P(a^Jw>z$C91V zo`fBnY#?@-(KYWi0b@x%g?LToN!f{`r1fVhy+UIZ8{AtZ#e-}zc7b?(*GG{&{39zQ zoI6@FGV<{DY8u^rPV{7r-~99ueS+sZo0jOGVvl1C=?d?iY3JyItjzEVBHqNrq7=nT z9_7SzXo`hix-xL&l#z;?f4yr+$(A1@mX*F&rMx)|-Ei6YQMk2|m(ZhuheuD&g>{y$ z-lLV29AI%L6hv!ZrqPIqiADvM7RIv4!yx2{7`9VWwGioeW;1nd>ayYVMmk@nngME+ zN?)py!RKts2Q9s{_(ALt)!C1%ui+>=-Cf!$8PEsC(?KsoJ#o)xpKLSFfL*TM1T~xk zskdhPXeGITdVli#7kxRT2Vby;;2POL8NpJ6Q84`Jl7obrFTn{0i7IA=tbR4eu?08U z1w-7aJ(cPD zi4Tj{lnu5Bx6_v<*1eiT?qMU*y?i5}Iuhu=SpkKP71kx?e#5?iDekS_y%`buRVdlx z?V~{N`yHcyf4?Vj!wv}KaP^m)nTC;hXj4v;ru6;AJe8hYR14nHiQ( z-fE6KZw6_rBe}jkJv?jTdX|?H>bdh^-3afAyz7fPUO22;*1h;m%Nz-iq;H%BU>bG-5N(?gG?(=<3;ocJZJ7y-dfXDi>e~jYq-!S-33AIdsAJ?{T zw59{W-k`7lIJpcW*q9DeKkuT(on9AklH>LeDD%6C2sEC|b1LtR$NPErh(yNtNQN-j z&uYDWa~e7VmU9CrrTvpoZRH+nm@dw1B7bUz3zYP5zDq#=ua>Vu?tXW3ff%Pur$b_yG2F-Z^@K{uFCf3~;1KMXYx=kOa|%5 znK^T%)g}s8t|_ScZpNOtGiN=$9OcFs?OBs;Xp$Y_!WUNw#jJ5pX!+@log_OG3o-4F zS^pQWd9CfGHaNbkM_hN%aLtn+9`DkAPm|jfuhP+#GIgVe9D4|w1?vvaNMWXbDa6e{ zGpsjR3PxHF$;d&#<;>tsb?moZ~8j)mzq1ndut>2HAlLOpPd z_pP95D?FOf!m`}8taC8+X&mg@8alU%G5MfH)#BExrtSk?OaF7_h`(zx7K0+my6h3x zJF$7Ae^<00M2!bGB1I1=E*8uvT~y0j#jv!GD{SM-d4zbHhm&OxBbyfrWkBAP!g&4g zj*!hD!{W7@$ECfTQJrZnu5RKpVC=EcRJCc3&_uO>kblm)LD#ks%)APR!o0WXHZIqq_c7=79(M%Gqly^yg^-Um;d|j z6>N`trfmL9jB?{qSy;^+8(hXKPOiX{qb$CrmH0pFF*ArAPl`c9F9fN0u_@ z>G;g_V*#$S7k23C! z%u3P4t*?ac;O`WRQKG$BA)MJ5vvy*~F`r)VeeqxmGRGw@>%Als*I@pO>a^RA>I3Z7fEA%MVfc5FfERD5r!sq={d>n63Na}g2{z)xd!MM*x9T@@d7tanoyK#{!t zW_@sokC!J~6u^=^N~73(lcLO-wBuQgH{H2Ch{IVI%?3?M$*>zE9RV6nxBI$0iycc ztrh1WKQ4R_tv;i+j;kByb||j((f8p>FtTXtkf2 zb)A1}_OKgyieT(Io0?rUiRv!+#ug@l3)E^lJ@QxZ=_)8J3G1G9cO}YY<;RN|HuAuV zsRjaY#+gouY*W*R&wg=oO$SXK;VgG$@9dccjtLTR+#Q*?U9%|kevOE6rr^B(keN6F z&vzJ-U-rr1f(w=?+BuW{`i=K&`+?P`+fV-r)sd9!;lr4+#vUb}l5Tx?P_aOk&-VqWkNxh|~_%tb9u|2SHyXzA_)2b}VEE<~H!7bOcUv ziC>vggzvu*Zl4O|mhTPOep*@u1FehXRmCx6i_{rh0T??*@@@*asy(;sg!UACH$3~9 zMhthU5c7sm)w^L>=BA*Q>aRPewEedx18qqC?5%2j4-ZBft$@Z4sX*x#mD$;r@*UR(nK(-%s|jI9(Ri72!Y1*ipf^k@qQ- zj6YHzgt4bPs+`Xv`02(~B4p?bE2yUJgY6>5$Kl`YJDl=-J*pB{@(2e+6%sOuMKs*` zlg7t=TjaA8+w3v9is77}k{OeHsmO-Dp0*(-69-wDizI6&JUuv2m%eiz7TjfL-~iyQ z7<>9;tpk5AVvbw=$JRM4b&C7F#N<2H9HInYBIk0yhPvJMeK0cx_M@6w80a$|I<1#r zQVKxf2U2PF5`t;-&n#V)KvZ$F5Lt{ZK=L6wt@!2|1(RL^EG~B$MSC4S#r9$p{5fE? zIabInY0u-7!qZSL(}Qaa5hS!s)1R(F=Sx90MbfuA&~?gn{ni=l+ijH0atO)J*&MJS z7<%;G_2xq81fMQJhDu}0$9%=F@!$~un(^#jAxw91JA0-xP*oDtFTP`xZK&YV*qioM zFmxO%59SLF#-ma_Jl+aCG3oEki}1aXW$5`sGZM!T&g`naTzrBIH>({L>tAO21Jk)n zLsh&Uw*`DbJT6U_`~k0TC|kZzSXblxh%x#Q<_}%(dN@E(5XnY&SzuxAArC{LvckrX z06tZJKlfbN3$d~BN91;})?Lb7x3!@@LPiW7SKGn^pKRamreMy_ns&A_dO%oyp24fU z-2L5-W#vS^X5Fj4oX}AJcnGuup)y>Ixvzkm0fq6V#ccCStsQQPtBS()3G=KvHfyqql(-okL72*{3Ukc!EM zVqcDmIQAcua4uzxs*#4A>`lW-unyw<-}cc1UY$~f-kS%Qg#`D~Nl30H?k8SurpO!& zC$G<|YwCu1a7ff!TEQar(aZ^$=K;8owKI}K(g56L8zy&ncO+$~eH zDNA9qi+Q6ZcPw8zMR7@xP0F7Mi+Z;A%y^ZOJc8OoM4Jt#sp$4;-XfoAYk<-Y6F>aS`skuR+Lnt~Rq(G@kdV^Gu+6 z!k^pjhqEmtc5`H5WFE;y4v%$zJl?Sjp?Ws0O9Q(pg^{kLjU1P*;CB~a!X9j%k&tsTd-RZw6WPcb}v+_|*t$6$W zc#avvZ~M2yNgd|U33;(&Lp7vSwGO0PwZ>BVDYNW(@C2+eEV(MaJ&9@d5 z(@r%cfrMVt8fVL1ZiJ2j9{-CM;lDS*f=2(} zeT|RIv#3v86BS)v9jn!*pmpLyOYW29C7ZC0{(pFOL=>*EXbY=x<(*7B*7y+><>X~1 zAuu$67$?f3o^)>AJm7*p zBO>&2sF@Am#m~@B2e=m-p^lr-1FIyM9u;&R2#e^bk} z+8>>{!O+x1tm@c;06_oUk^kfwGVsVcI5nB|tD^4Di=QE@3ZGJ@JWO^h$Htm`q$367 zRN6mn_e;X_S}1z{^G`C?g8=vc82QL5v=a`#PbvrbeZwH|kBITqm6@xdm0B0S0SXib zPeSfDBSCngY)Q6}5HKa{OwK$D=Cz5tGbt!6+UsDxR7)wJ1m4czz&oI6&A=1{I{3H@TTNi9Rcv*H%3v$jwOqTFW_9^xF5{0Y zB_2#ckDWEb8a-K3K;xFIie;7BcvT11HdJM(S*&wwe`*Sx$1xQXiQSU2b|@r#@U;l7 zDUL!=Iw}g*d*?=@L!miNEW=W&-~8m^+)u|LKP$5iU2gev?RK`sD67Dn{JGVKV`|v( zfN7VRaWqbBb=V-WvXZKpw7hymVI^JE3BDyhenELfY;`A;H%-#4UUyIOiw9m49%FPv)qyv(ZomX;26K2 zKW>WvK<1~OJO)#*^pyNL)d&4zMDfE_?LsPlEcH2Vm0?7h8sUmy9zPKbWU<<^%~yfW zm*VoU#n8$NvpsiIs5Ii%Ve8 z0^wT6$C0Q@w+#DIQMn>vkKm9{;f!@ySYMAdqzh7TM*l|}_+APJ&kGK^8F5IS54vmq zPEZ)rp0&6|U527XZ7GR_#xG$Y-+tv7-Pq}9tdsDNFw2eOUJQphn=dnpWCjT@oO>}! z#_ijp80I4o3mtf($1@X5Rr^Qog!k60oU>H}*e6GTD`HilOW-4#@%fOG0YUH4~|vyTSGUc?$)5zTaZ_EMAm z-$UPyV;8}-_W!gaV?B9kTrMI$OER`K>YroYEG!un(uY?(Y0Og!{T042nI={#Vq;I6 z(-QLcQ{FK23HD8SI2bBzDaCI^ zio&cNPJgfGldcZ}H^}_j=AU!G(AdIDPBD zjEl>WA?t7@x%d4A^1L3;>Hln0@m(-ITYSS$p-@lHd{V*rbP^31ooPXI_@Jy|*=$f% zWPJA-(EW5l8=iY!t`NWN5L6PyOv1u4Gh}s-sdsF-`*sUgYtTcLlOgCa54)zlLI-bl z7rtp|Fgpiy7|_rvzW$E}_W<9&BN#Y+R@V{bmii@WQaH?)bRXYC%L z$tp?qZZCe&izz`g*e>RtduBF8Uf<@keljhx0jSVIFn9A&uJcgkI8V0BhbvZAmDW|E zbdEE#e?QW-vkdbHKiUZP#ay&Irq`D_RHHk@U;x^gJ}0x^qAls;&f9+Tlz2+Y>`WRP zP!m+uoWskGF*!CukI&nO?uoO;=chyWI)vo_*ALo)_nK_&F#V$F+}@KjJ!tz;K%j(y z8N}+*k~JDYqbHDO5#;SlZ5o?iSEgA&~#W%nv#BRyjp8RCNVSL|mUm z{jdi&SN7+%&PQmQ$`OG=;jT07F1Tirp?MZ;IJwZle-QR5^N9DaRvR^@zM$OA7gi>% zqh-v|&@@#&+uPEjT|xoBz!<$q%BDRYt5o6?gPWpas$bJ_984{eE*0bYWJTS=d0(@$#|WKA||@<+$2k2o?Y3EmgM%K%pLq{S&$u4?fRDFX^sFwuFq&5zudT) zE)!_Tg=#MAcjI5RsXVjGhVx~<%VFPqbS`@xwJD+k%ekz9F~6KB*4UJ&M`E)C?>e^ok-qfNi)tiqxE+Z_*i&7m1IzV;7{yI@Qg7zmGzpWPgr0 zTao{9si0$jQRZt;GTnhMrdLl^x0w1Xgeas{*RfJMHiMMBk!s3H-*vAa%0hMVfDX2o zT3xok2Amz~MwxiEgpV&ecH+!Q(R-A5-4MQ_`a$G21J9iVQd(slIsV{}eD_@_xl`C}^5XKh*RIXa&eyElD`* zMovfHi32wu!rBuPJd=)a0Uv|n(1{NuEPr7-ZI?yB-%)V!C$Ma>Q#|BT^lyct^}U)> z@+RV#$r@iN7zcYe4a=hjFtf)IYmf>~2BrM`wBzfJep)4}yv}sOHdPK{DWVuon*T0Z zFvFzKTFQ3&J(P8EPb>@bur2!^*gPb6MO;0NAf5`*t5s>Jso{spC%p%Aw>WA|<}2TZ z&=D8FZM=@R0}Ie>%9Usm3&vhe zb(@U&(7MA5m`QG4smBn%Kct7k&5PNwkV}gNj;~Fr=hqw0t>q6|zh_!xQNm5CXpX1u>4D*j)XLJk-oVUUFG*8 ziulSo4VAyS4;Kb}@znGk-oS9a*A9Nea*J&hVvncjOgq`%lv~kH5A3GA$Ft5dQ6hb} zH=lj`hnn(de2tMfM}!Jzyx5Hn3=`ZRRGEgNlmirk5_<9zcFBX@H<{tKfXzfuA|?n$|*o3?FRWLVphdB1B+hmR?rR1LV-)JRF$lQN&+ZZV{= zIsplkY0frpedz<~>`idiH$UN``9bItkfzr@+eYBKOmvs&-EP5w8z>gK_nz~!R;_b>Q zD5BuZ?mb7ALF+I$V$EKWm&LIk(y+WW&_@4J#4EiaP_{Va;RsZLyohUr+y^gHZ49p0f0&aJ$FjF;0KK#|Vo$LzkB;ezbIR;T+6~HtSum~ZR4LNF>!Dhdl9tDmDT`}OMuCm^4QQW*CwDaU zn4`3=ggt;U{`N!upuvbvJ=C)g7LQf$7tCK zJzbf9Pp_u6%#_Y1z|^Yyoes$N)YAzBhV@vpI}JK^P3HQWe{@Zn%;0tGAMd6tpTL30 zATc(7&baLr8VMX&#v3TPAnswU(_P-_nKq8JsmA4_>^B>K4YlZ)!IKk}q>0@iZAPJV zvf_w^rejpt$CVW_C7uj_9=9%{t%}4}P}bxKQCYx{Gup5+;x#g54Qv<^8$L`vB9SjV zcSgrl70|mxCF?Txwr!m_#xx=EGN;d`mD6Bv1v-5dy!l5}7p z5+F5I>r7NSlk0zMnm0h+_ch_jJx6cmdUokx%($2qMs!}6mUS;Hrbrmia?!JVKlkbk z`*BQ+us5*ZA`SMvefw083HiWgxt7MDjHxn zJyiy!0>t^f4MxwyAJ_f0MsK?~*Y)f%?<%1L(@Gme!-I2hNzT&=s!nk^5&_rvL1Q(@ zWTYoNiAG<6d)8tG;vayNy|8x6%toTPhXvins}+Z$MDoh{@V{3Isx)UBd&tgpDy%Gx zt-|Y)@DJ+4gH|kg+VYCbxH8xKQ`{Z=AL0mVB5!;C0IBBi<>9PHO~Of{@VESp$mA}{ z)~~U%8{`tl%jk$@XQP?*lm$*CRN-n7wOf*Rsjp(K=Le3>_y>82SZ=vwCH;vj&$H`3 z%F?119A&|FD^>+kvH@7)0DZi!e39ouq}W{_Ts%Jc`=30ixrd`YM|5)0rm=`2j|w}T zu@EV>o%$vU`vRHI%@-8qlKCdsSz>Nyh1+46B6fVE1Z%QuQ-9Sa*LE^$<17NvUz?m# z+zF|>*9bvKS%cs3RC(>jZd1W>%=r|R>L`5*l#LeEG`;S>Rv%5OyD!Xkyjd$+Ml$-e zCvS2;p5PEkT{QQT8>7PZ;T&()6_f%w-Bc~`d~ijFj*OTX2=`;+f!_FQEUQei7ZL0Y z7Wg|tEQuYdV|iubq)L;4Xw4Oc@&;Es!mojoHT>pIPmt;b} zh@Y1NInHyWf{xT?v^X4l#MJb2DFYd~9HtqnX|P<861#D?n-mgv0n2n!5DlNR=v^|2 znYhY7ro!%ODfnekyIM@nfHp^b4zrQBUT! z5u3A1GuMr<4&^hJ~bx)DX_jpMGakzA~@_CC4aV~*@N`l z5eKrtisR2zMmO&Fao}2ual8LoDAO`1Gi|d)2|?rD4Rd(1DFB|^#~;LH7Q&q?fRv6a zgWADMxCz@>h%d&G8{y9WiM8agSMVtlZvFgSRJS`FwB#Tzt{m%;kI47WX<5+G&1j~6 zlX#&Ok9DFSF^qPL)&IM3L+_esOwHa#!RID7x#Bozm-`;#_U`_r$HQnd6LMm8=i>|` z0ab%wWA*y}kH@0TP7|{_;7Kn9L>J1n=pDrtJs)-Sk{61V-N#^oRp;VmEsdxj(7!L$JIRNJvSXH|<7^a||F5zPO{4^MTD# zaOzz#9Kqc7hwZYHiS7KCyeR(yy94<=KhXasyH!it>%*$hhM$1gZH|r)=HHSA`uoQi z8;c#RobY9Nx)pclg`|#owFK-6=Dci5qGWADO0e#gsfr;bi0o_MNoLYTpPi9EjEr!p z54gvG3MdW=c>V$1^z4|*vgoKtZbwgwjx*|c4k670oWj>$EjU>ZD?b3)FJZZ_Lo_n{ zoX-uvWa8L4#g@M645Oaj*_oSGj|STD-0FRComa(*Lj<*j{!I0B9-s25|LcD%61zs~ z>fTMk=J}yT;4p#QD{FlZR|9gdo&l8#P<^vOh+|U&Dr^)DUd(V7JfHFoSxH-IVZ2xxtO55wH-LL za3axg)6dC;J2Y(1BEg-9F%iZAB$Pkb_~L^P82%z4Wt)c*;X`4O3|G~`6<>jW8D$Gm zS-??}Fa{EanIEOe=GieN<)quUmDC>*jTP7Og;rj@abQNJ=-#psNncLe~#$P-{Q-;Wt`IS(Tlji{& zkrPx7<$cq!5*QJ#T!QJ@WJSe1TpLZtLU7xRNS2a}K5wfoMMLxZSs%{$>f1MHZiXZB zcZGkaquQi{^aKNJj;{+lZh%#No7WS+r@i-qsWl<4C#Kwdl+B!6+QYEs0>uffzkgMR z`;yUeIx7DS@HGkt>GvgR(^qztA8f`c>N_vUAQ+w}S2}baLx72DV3@yCDc~rV|m<1GV#E&(z5F5GvgO6dhSrv@rI#YSM ziz%sFd0%zprW#M}kRJYkp^}ot>D6sWW(NlXt^lkfS<7SalM2_G?*6CL?-9dotG0*7D$bSoQ z+AUpbQJ@q~D|rn$B3>GEdqS7auq^q-fA^@!%3&w}(u%@lqIi|@N8j_F%(*{*>|q_m zQ-+p2LtT!m1wOCYj$FQzVw<>E7u}N||AFu55h;01Jl$qJwV??b4ZHidRTiz?jw7{n zs~!mZC^=>vd095jLowc<4N?dCE@ zY8ql;)AL|VG|T`Oq&6i<$ukX0^-d)>M&B!u;<}$k*9uw2)I$PKV^<3r?EoYU3}5V< zzb^KZ?LMP8^Ft-S84>Xk9N*`zM%7n|(!*EQ+gty;zov_PI6f6Ni5$oyCv)Z+>^BIl zjKr9qh@M$-7;b&T7yM3GMNL&&)eCE~OD;>n=|ASGpUbnnPinTP%!sVDPgZS_HpW)R zR9{VZ$&o+(ql3~49pi|W4L$>*qs#fW`Rb~^tUOv_IZZ@ZxrOc6uhK946TR+8a@Yhw z3w>4W=3kLO=6rw8&puiTX;9fqK8B60;App|y|7H|^AgZ?x(MBeG_}m#@skrx;hZuP z54zO<%)hT^J6O5=3D5i`#RB4SwyMMg$|?;_2*!o+1W(c`r}x<;&$GoHbNGq6Wo+ z)C$Kd?X3i?8s}j=Tl^8pWzHTLZ-B)6PX3JIL0->3{kN^iBZ?Bkv84H* z2Iv!Qqr-Y;<-yI3R*s_KzZH925Ww!G0?mkp*X`;LvEcD&scmU~Wl=;}69Gv^ zd9Rxf4^M+l)!2g_}ZdTur#opyI3Lt9=L(opxV+*ZGo{q_LjH}TXlKeBdmwthUm zvu%y9P_QuWVc}ZEoSFAvy$YLBCAa4OfbC+;vguL>rUlYf|?cT zbxm1{F-FEYQ62oj>zdqY(RJu|yVK6%dJ$p#&5QH>QPhFcb+0v0F}wTy2%wAZUkDzG zQuF77LfMWe7FD)PS^lP<>L~rSJc%?@L0AeKJ&GO-)C_HJ8F|QgM@p%yOUHfXh($j~ z+Hh{~0}xhf_o#jZHn0dT{-t<7)Xeu+WhBQgA{v)|$7{d;{E5cD&XL>L9v7nwCb;P_VW2Kj=t$ z_{Im-z;4y(IQl)^nm?0-TulB{3}d;xQLs${m(7i~7!Y!=UfNasKiZ$pn@oM}?su= zLrc`CJDHu&QOZC!a>9&srNf8z*wyTC*gv9b`@_0t;E$7AEL4}2ffZNowdC&JujaHe zp8g|mtJwc)!NJA7U!c*qSABCr{;$WJPPw87?ErsU zrwxKCn&Hp|G;&r*#HGkUZtmuO>QWrh@p->bt^oV_B&@kP&KtHH$4~BRl3$Hc z3*m-T1dnNdO`92GYRYYSG0X`%0W%Kt?SnOg5V`F1r~%@qvm>RKhXd;DPKS`t4;%{% zlU1!QgE9bqpDQ}lw}8;+lc1EeuDe4V7~d4P$X5RdZc~duy7S?Ww@n1)%ev*}_4+>x zFx$x7<_B&{v4^mZT^^P(vrgUlJ3ukd2cu+e)AVf9v8Vjn^4!XE2G~6pMen5BVIxYO z0HMw7j=ebz$Zu!3IMWgXlWuEZy4BsI_p>vChN*oIT>(1ffSg;!qN4gn#O2n6Qv3Fg zfNWERZZ>*U1@$57bMJInTO9uBankaQ9(C&t{}X?Ugbu$}F6IEH4h)O)BF&{^D3;9d zq>L9OSm-@+SwrRa%s?cBeu<^$82eX}7>3-`203U4v(bEKyPNLH@LA4niM2FBL+-Z* z8CNBCydjI1Zv+8It<$(Yjrx5Coj#$^1mTBbnxjlK!dY%&*(r_p10K-+VhVb;xnKS3 z>it%&Nr~qQwuoZ9g*?24kfeBz#OqmH;HUm+P72VJJwt$7tGlw5>vp6Gjc{h{rMn}es&pxsE^$(TPW zNp5_+P;KiNG=dB&XG1H_Dv)IrP>}YaIvNmlH!dr-E5z$2l6k_hmtzy?xzNF+m-?xJ z=Qp!S@>SdFqo$=*#K+o_x+^lvq89`!adw4xe9z+D+!AhDE4czh=Ob&u%lJ5h+q0f% zXF-HU<8K!is)UComF<3aZ5cYO9F4yZZIOVQa$O(Y-sd6Y=uP>;`#OZ6DJeUTD=y>9 zLEjkB;0slA-X=@V{#gj7D6-`L9r2r0<8}yF=QPCX*eFq688_ZH9Lx(sdw4f&bCXvn zkR~+NiDAH0*v9muX+~!fd`8#2l$0lA17y8V6gwR6-|#mI6#9C3Pwk)S&YwsJ8q-wx zaDEOMy>ae(_RQ&mzpwMHEF4>h6*=E2oT=8Rux6rs{NKN1kiin_5=m zgh<|ig?x5pzNEQO1@vcxbOn$xF8z~?VI$WDIloHrKSu>BZYt&f87If$!^NSkO7F;3 zJnIi!g`Sm|ujI5P^kJ-r=bOKfrISBiR%_B0Yvw?=Jlurn;D{3ZYo?g;Hx4DjdZw!3mj7ltsY$h zInu&EC=ftX64pE-@4unvJR_Ms+<1xAU+e@28#=j>buk2@dO$v&s6G;TE%bB;&0z(|sX8qZUeuRT@GA)7kk{&|FwrMo^jpRN7 zNVm&ECO*@sA__v$tha9ejl>#aV)7$D#H(gVYT3{*BAfOfWYN>@fBA;0d>=yAvo@8S zHf)mLOLK`8JFvn2acddFzd$@fRyd|Uidvbiji3JrJM(nPc}ps++TGN;Jf^J{WAS%` zz-ia7Gp%yjlP^@od69Xo#BjLHwL8$P0}-3EW$^CTRuT4&${IsAXnlgK*Dq|sq+a`V>o#7PnqlL3Vt*|Cuilwy&RNq4!udh z-RZ5R;RnLjxVweORd)hE`4J3Pi#;{&xSE@*11)q& z?5Raf7mZM(=Co$Y4x<0E2C>U=&yOhKR;pB9xbkg6T#6R?2SB()hgha(;-!=naOn}i zY~aGow2GvXA+gjaCGaON>Y92a8~ji6jX;&fMX3dEtg8oxVH?}LKgD6C9XLBoda`BK zR1C~hyqbn|^X|*}fBK~bq_#cipR>b<%uK?gQ`($o@?*RBd3*r(x4t}E zTQ<9h6F58Iq&1K+mDEso{Ycrok|DTf^h@=8$V_@`9PC@Z!Np_rVm+lQWlIE6MO>L+ zmHh8+vH>=l5RxECuW;T76j3_(A@9`_ez@COSj`RLy?#({t4OZu9=$|a^A}{OvC1i9 z?CXnCi$LV|Un}$y@_rYd)ZM+esFUP4yX$hqu{t9-UgB|0Ky(K70a}`_9HpyBe?}%i z7TFdZ>s=;zlWq`@DFru+;?H$R`1k83zjyFDb%)EJo)KWLh)^lte`S^bWqyV}DD{R6 zK~9?Mba$BXZg}hE9C1$yHL%q;dQkF%Ct)96E{eV&#zC6=*-u3c!fU{rP)14@r2xr! zcet9C6hHR!ix#4Rq%LNwhH(4tWFVw9metnRUUdl~!YQzQeIrAIgD5Krp0dD$>lnn| z@hMzg67Atu_6uryI30_-_6Ii4?9zUfXm=qYHTJIBj! zoG7;re#yTH)-M#OT;8ZGMYb!_Z^N49+;O!4%BVm)k{LGy~**ujO7|c&N2$oekZBmWt zc{MhM(qR}7@;Xv*t!;6!d+ZSihYA=zBek4!?@ql_eSSd2$`Q5fj%h_q6rV46y&Sg= z`qS0#$?6EuF3%CGK{0_L(IoQ!$?pZd9PzLli{UGO=Q}96Xtv_Jzgggd2$B44;IM2e z`Q@iwLQG7u+dra?M<;cm{S)|#(tmy0=k$fxa6dIjg8$WzaAxk}&70S2ImvGt{nyux z(%)els zKYc-D@qj5Z&H=Z=?An8&=$PF>0a541#=Dos*J8}o0V~}qiftqXaE(?a3@JjDH3ESF(SwnpJz7QY}}up>#Rh7zf{06w!WBO z=y7U0YH>JM#pkTBv{`W-=?~|5v1#AmSEr9}y}$GRki9zs#Oj|D#F2r7{7_*7h0gJi zPwpSRVN-euT7E=dZn^bWB29)SL&txLZnWP)Crl+y`^P(D&H0Wo5D< zOm1%2cWBO|LF>b~flVxM4r1H2#tnfP`!Ytz2T>03F{G4gj`58@N z46?9rfSp({EX}3!=Zp;wFlzCACrW2DzqH3r0;m&-<;cGJfBdDOI)8hwzCa{ysL#Sv zr3&VgQdgr?HuB-1=P}jb8&XrlmsWQYMu$|Si5T{;uW%i(YjFj(foTEg>4N$_*DGcW zQ+OOfWodBqP!=O5ix+=v^US#Bl!3!bmcf*{G^5G9BA$fCWWj1f3KQS9kj-t4HtEE} z!?^v^P~YRWcV!|tl6@xp++#%ue4^Sqg;GEe!`#qXy5OR?MH|v~Yf3-i+B9Ffq(lJl zW`UZ8oqz-JL-Nh1l@i$0(3av9*%^rh9Q7k%dYw={mE-|VO>JYDSxsNlL z8kwF^VP;yLczmGZ8Ywb7>`F~N7aN<-5;m2bw0SP&-YF95u&r?mNSyvBJz(~p^~43p zIxrgmjFJI?oc$Y<4`y^COZ-u7X02YNsXYL~a=Co@&=#zrDa~m=!SG0Ww_rOS8~sL; zqZ}S2Lb8@u`?O{!-Zar9*)1uo#q$G~{coSdp1dQRx>|exC5Q_@VU(sd<=^CUD?v^f zbvdl|zVo-bG3-qcCvjEF465q;`)XXA%u%^XrbdBqj)X0xwp{FD+1{(iBQi_HJj_tcNol-@jS6 zGvtw@d@b_Ab~%}LaoQ9Gw0hA@>2iJojm4G z^*~~dr8ZYdRk$M`ZJu`KB0ahq z8p^A#`>NNld+zH*Eo;-VSyVSb-|XSMrK$g#K;Qm< zc;BgMDGBE7!I36!GP<%^+xPaCi~ZlAk_Y(zdJ4bt%I9TAbwKth#Gg;lR+B*(N>o4D z?I}L-?|lxA2m&f6FnZHl?4%~j*ndMpl}hf{zEKqg4y9M5dcQoeHJ|5f->-7G!K$KT zmy!~2rCbf(-we>Z&-19MCV~|GIb71^T9AcI_VWkc8WLYuf}NwM`*>B7_8PvDtl0@z z{0VK#czS4M&IAc^BQqa?iagVUf3Qk?*q`q1F7Sm;{YQ zNger5rn;Y4FduQr%#;JFKP1=wmW|+-HOpe7xAC-)IZ31l{1N@xL(kRFW}?1?Nh$Tp zB4Ad0!DiG8(Vr_1t>(RQ&db6JlAtii+Pj3mrN}+Qo%a^z7gGLHMG$If`E-9wMnAKd zwaGuoUNfow*&{9f4c2B?*Mzk;o2G!N2L8e9!c6}Op_h->D+`ECQ6-0B5>e%T^>p=p z)#t|$B+T2TJTnm>g^E_sp6-^f+cV2DvQlp6tFHRGJFz6D=f4ylyswvFe+8dopp$A^=W%SP+`0> zQko1vaY9?OC$4rV^^|KmbDT zo0?Kf=v#6))nLM)2f*{{IM}T}DQTx_G@(wd(eAi?EIwd$NB1nos&z3wB6?%IIN+P{ zI7-8Szg*;_BiHjlMAM3LER2GSwMi91uavxnnX!Wx;j%297DM#AQIz)VFOWLSSPh5j zTjE(N_#sl|kXHJ~3WfivB*(&9Sj>TE^n6GyH*W8WJehgD2+^^^Ze@3F9g$LswA<&k zW)wM1OV6`paUH!d_JLd2?+HQ7Z!tqgqHFc3Ag`#aZC=xt2K{JID4$<3-+lvz@oB30 zS~n&Ffig=8B{)dR_JeyvctuxXoNGmQb%xT(olFn@RCRG%XX_(k=l6D&gJMCoFofOy zyWT^MnXlXZwiV75f<5qay6Y8z2yuDrjz?E+ zC@D{IAblG+Pv2yNw@}X@UhRB-tVVrvqPH z>Ico&zN`7xoBNVd23+nNuQbI>h1^~oO>W3SaR(3Mfx3b1X-s(eeCjE9L+p%LDO8i5 zSVqS|CO~5~=L8d=sgOsPP$?E6gU~=~0~J=FcVMV-SK#32I#9_H{?xX@`FxA5?PNeB zx~v@^`?9}aXe8V&<6%m1PGNLVl6nU}9>D!RgyQ3M$0gPk(EFI$-0JR{veY~Y+t^*} z2=GiD@?yJunfVmx>-(E8>sr;71?e?tXv4d~>~fbj%8o=o$ak(s+CaxnkEh^bEuJ08@1d3t6>EH1;k+i8D&8hE;W$oM)4 zQv766Tr&Vi?6TLp#`msSlpU)z3WqM&9%X{&F8aEY5hV!}*)_Yv2J~~xXBg31Ztxwl zAws{S@(8nh?(Fm~VC*Nt+Q5d`g(DKJ;)*n4rhkXtoVX&$*NgPiI%GXn=ySnFN0i-d z1E8(-ouL}&WuG?R{p|#P;KKv2SfE?x`R2yK>4+%-B%{^aG`7ZQYwxW7lhJ05rL$ma z?2*O;p*pdc>fl}(4#Q$(I=|+Z!!%LfYVmloO}vS@5{1`{KcdDHGj2R&-K&EUCk~Yc zHu(M`e#McYup7l1?Rw{~gcY~saeMjA7_?##AsXGywJ#?wz>P>KeSBFDt=_6GZDaV~ z;fj4RUt&6c`hU}xM1zZo#6sz#%Vio2i*E1li1kKy4)ufp2<4Q`XysTHzFmYT4PxM` zqZm6ZqYKkYEQMkeG%}|br|2B(?=n`Q=9e?%K>1zt3_VUcBr&j zy#cB`CwODbMk5xzHGhN%^Y2;=O@2gZuQxLFkydDLbyzJ8OVDgiaS!UCBk z)OCS(mNPtA6Uh}Z24eb?qrSYjC%V_;mZ}?sgXq7Uz}Yd4o^LGrI*EWmxxrr zM@E$4QP4ON^}+xOE0!SY+!>sw)n_;tn08+ejzDL$h)GiooQ=KWVP*p9CUF)>Tt!m| zxG@m5K?hltBhysfPHmI_R%;LDDJM);bb(p)%(DPe4=tzxsT-vNjxjQwXnBTud*nQM zCNpHsBtG(S#MlcJu`+Yi;(qRoI_^Ccdg&dg%*T9LBRX7p&I1{3xLwi4!-HIgZ`a<* z{S0^Nv{o28>Z2pf8vKe z!AV+`o0WTqM|cEI_#A$$;mJbZDvjBDDpX^w*eRVNju1j==T!$Gk+xhM{?F0>?vQ&f ziWWAOWu^&KL1!fu>H@3&!?p3*^JowdT%D|~rqTMKU#c8QE5I9Z7;fF0sPIwwOAmV& zK`vOY7hN!%nUtp56$~yG;L0HQLMf{BGR$KOIj{446u~kInu65?n!rzyc^x-)R+CDA zcd<$Fno_ooA`=c0baWv*r;d^7N!S_RQB)RFBsTtiuKR6~z?W#5TTC>Fsi)IQYO+%q z=Jp5E(+GvbQ$<|E6w3?+tjfzfG&7a@)GK*hzQe(tIy5?w7=W?>S5(Y#$dB}A@O@*- zNWb1G?Cg0*BL*NOM5m2R?BnMX`zmWfg@Y)kAWYqbb-Ma9u+S5gmsplYrMysEBwMbq z)%|9dyrcCS{%nULu_LY_i^a*%uMpG0BEnQ3{Y938hFLy0L8C!P>zl4fmI7`Q3|81_RDyMW=hwWRVB9dmdTw_G{k@Xc25-#)JT74 zzmvP8t!XfddC1${CBuqvsB9!^Z?0GU&g~QO^*mimfN$Dw(g5N0)8x&=J@|?vMI|rn;P~S?lpUACBrZ4+ zs5Uw(%gl%_Se&d0R#DNC)Vq0ewJI%ZM?zEW{FN%NXwPzmxhA|N5zUo}Y52?VMd*dm zPZRtkZE+3h6!rm2xP}fHwH$HCom{Pz+u;_b>TS3jbpr?u-_qtOOvM= z5dZP=>4_?CDh75u`=(}5K|m{CLZ*~MMm)_Mi5f?L_)ZdDRiql>U6xBGMoVht!Wt9|$ zuZ9f8{aNTnOZ@2Wz2k@|QO~x~8Eu-z%BjoChbX1!?w_F>Po`6jFMrMB{ygl~2dITJ zQHo2#Kl|Zfq4i&vJnp|B{85S`uYIY0_a#A9SIb3zCY9m8{OQ=nWc)%@7lry$A0^>x z^1*RZ{qS8j7tv+bk?zxk9ZFBRt6Zvv+OxO&!}va$bSekqG0CfeG!c-j1- z%-z~uli`EEEZ}a6b&NH$Lt)Ste1y1~%oftVKiC)9To)ZU5i0Syxn~pW@aeBXV5S}x z1#2ia|Miy9Bec(O<{HG?9gf$@%Bpz7gQ%jj^S|2@^kT~`U|~;azGJ(bd$j8Cbxn<4 zRyl}kxag}ufCa7vqi|)Mn>is@5ASNA24=3dBr=46^4XpHn~j65yF2W;D)Z2W7y{L$ zR3#rfCMh0NgErt$Ya_K_1#a5Wm`OQv_GY>4htUG!(%A1Uj1enc{tqNLWvm$cJ7sc# z_YVYOuNUCluApHogm(IU=LLsu@N@;ZMV)VL9F)|YU%tSl91XK}dT!{ueEpJZHjN?I zBW%(P+@(k8C2kDKKSK>34&3D(%9uStMptmp2T@Ae;DXV^K)D-i`l6pflP`Tk?wfOvn-}VCo-9cE@HFy9@nlc zx{{u|t<_K|-;FDy{Nb};`<%74+@B`Su+<0eI=6r_`{?32(VQoFr($IXEjKWSUl(}A z4L`aP!ri3RJAJtxgg-a%P9Wg=>0o+@D{Qf@OcX~-4)g{e348ty+0~X49KnV~L5{U| z#L4%)?fH;csiajbG;H!qYz)#w4p66DvqZ@-6JE0_W+~w^F{zDbTg<_mGJgO+BQ4C(t^v zJ{>O%p!&VbOuyc?C=SsP*8F7(zL8X$CH`h8Lu6NCD^P1Bq56|qGdWO^g4M#aG3;_$9`(mgsOYdWSK7^zPEMdwHX~@JFL%34xd) zxS@L>UDv$^Tu6>&-OF;)v8G3PiiW`5Xp-HOdCL=5)GECllkzHe0ByWJyMhlqfVtTy zC7#bwehME;k9}3W$?V%?2&aHL!yW|>O`!t$4Fc+~IkvM=@b$O@`K-d|+R(M=xstqo zDZll_B>txU)41_O$q|_648lUxaVq(o&$dDMt4z4qoSg#%`cJuIDQPc4)vW*LNM>h?wm4K1 z^P&j+Zmkd>ZpN+2$V5#PSXv$se$*taRW9B-n?2UK&Ez<7>+I8zz5?a_P(D`5&XQM~ zAC|YN`u$*%)BT$38Mbtk)+Kq?FMuY^rpg}}Q(hJYoXRQkw2%0=F26n(`H`uVw$(Gf zw2qBNL8z1@ZD4fZ(Iz}tFy!14OymT+3`Li&MLCj`lOUwRP<;AuBLKXZj7%r=D z5&HN2n&dtw7dPF1h?6#@LI*jfnyQJ!_ZEh9)9;0$`iZIDKXN{Z*w$klRb1q^{ueSn zjnqJ}c6nfi?!k80tg_! z_h%ad@<}2tO^e%^eA+rhYz%w?Y2aXz5895i-0j~^_Rv_}NHN&5t=#un%oPASt*FB_l0Dsb`bznokxy36m`Lfz}F}2vo z6B11oVVH>bBQBX?b5W3=Xc%^}PKPyx;d*Dm7dJ(*y zyVMG8S$In&4oxDLeUi!^tP|&S6A%%f_P!k<6U<7!2ua>i)3L^cRnsusx?1a??m`QK zGwb;m(jEOh%!472VxOSmgth1DEEcUip*{4$UCH!t++CeK1TL^rK-29<0b_1m7LB;l zHLqG$=tqxrso8BLFfz#uenVAh%5%EK!o-}&wDBf8##x6W6`x=(R-LE?zuoPJ207aDB4N#w~Uwe+jtD$y?ZlAY4NkO7eWJcCKZXHjCZG@z{|1?mxZ7}qtfE1<);kyrljm2e z5CXJBYz4p^znrN_5wuJ@D0cpN+t~9A-(B`xjei(Zfaja9FU;%dd2+*_sv&iX&I0aT zQ)qI({hjZo+ul?C9B==%(Sh>SW=-@3*3|jbhpGBvTJrI=MFAYN%r+8+87&Seb&hVwI&mFJ#LWNyVT$Ef6#l>hcu&$g!^EY4-6&tL^Fj^j$Y%?z6ulm%)q% z*Q6?@bb}9Cj`Lt$ygVeDaBNro#`?=SyT6c)m>u0k4}t#YlkeNbEqJU8>7N(@ zucR=&JY7+5bp%Pvwy;|=Vn4xeXuEt~v+`yFuW$Zwz^uzGJo@V2cDA*mHhVhwaab> zDZ_3yU=AE2*6xnZ*KQ3(KhJfGi&KR_cy4&s#84&a zWPS^6?DguK9r*y+%Ikt++Uyf;LV?cNk*^ZM1xh0r3)0*wc*^?9Z?Xrd-IJweR4Kk0 zn}5Kn&feQ>#D^MYKo(ndt83z10)66{0l!<^%|b{|a18`KLhMMB)`j^-s$li&9l*YU z80;_x^wQ&qLQnq4j^a1HTva1Zw|Q>7Qt>I9ib_~DdmJs`Z!m9+UkbX{ti{~5M*Vxz z*!2*3-4>m(oqgMs8eX(=k(6qn%c*O@S2fD^<=z?C&3JZ|xmiKh$Xs%C*0}k-1+R=2 zHzGR@8IAycNJ%0RN$)uvQT&jabR?9bI8`gzMqqYiyds>_cX3G;TWP`VPm?)=3%{P+ zo1V^AUP=)6Etw+{t<{xC7#<$6kk(Qs(o-&~=8P^5<8SljIy##wYNSoRDt8_|Hvdu+ zhmdb+)n@ip;Xn5cVp$+ub$Y{xwxR`qNE;HlKfYAagEQXckK(1LsPq*x*_9tC(S)8D zp=f!YO&=sW%!HEw&&f$+~CrLHvyTh{9iAg2%3;p7RVKR zKx8*ES2pDAc`k+E$Q%rsI)`w!zxkDb@EyINa^`&N(g<4SiC^V)va1=h0zR(sgOk9> zjC@3d*V48t7`G%NUCc-dB1`e<*NA%zfWt*N2@0nZJWyvmM=fb!j$DO)T%2m+=+aSi zY2_|Ljs@}|yX}b6HnPry4Cw8Um;N&TOVN|SpwSHY>t2_;I*CUUDPoy?pE{Ss_At(n$kF(jPYJb2Y3+)>@?wisQ(tMahDROTF6M2k|WHgGGU5v4lXh<|(; zpM4P;>inoF7}w1Td085;h#{KuUrY$|up?1k!&&k9v18tZM_x~5zDU;2#n{oV8BWPv zY&{cGZtm!w`QD?V-tGv}Z{za>oadlN4AJRwes`&mme3^iVM}<=a^a|cYoXzDQWg(HLW|bOx z6umZ$CItWPKlp`4uX4{BBWY2?<;GM<6keN=ch;fPlH9hw-p##}DY;*ZYtl9Om zf%P+{E3L|5Lmt2#7&V6QDXlf-+oL>D38iMOuUPW#U6Kty_VC!!)c;+=1+o0UE4lWX zF31F**mLIdt4OBPbrFxpXR$vKh5v(f((`93>IWpEmD*97)C$B@c)YBaqVKrI@DbX* zYc;?hmX;zaVG0)501p?%8c<9$TzUtDod5`RvNQj5cVoqsDz0;rUJjoPvNjT&_nToZ z`{eJEgtvqV(EJ{c2f9nEZDDgNp<^z$Qdd+B{mwiB&2-9=Ye*l&1H(LR57U^bX;}M} zBLe)XWZeRLN_vfHXqZRYY)nJ;ZZB&Oc?%oB99|29fc}r&UnNG-eld=r7nA`*+dA;H z1|NuR$^atVzv3&&Sp5B`>%2?6>Z&g)z~WA67p3wLBMw;Jbw?nbZ5TJYBB2mW3* z^!#`Hd5~9+Narxm@z0o5et!4}vx%+a*FUKY2^1+IWV}?gli|+n^jA2irK2~61%p3d zz6Z3GM-!Lc<^$!D-iz5B*Jb&*m;WS$_<7f9NJ*sd@$pG}yE#PiX%G1XStU48R40;{ zNNO69iFNTSIn;5JGSfb#-a)KcKLUmaz+Q16H}?iKb8cEa$mC3`d*;D5@+t$t7qPmp zeTQ5QNz7o+PcvLD;HFyohghS+fGfHxTv)>t+Zp2>K#;MfAEZSy~`u2td`n$?WBxtqBx%_6wo|%2_2!QFf`s?iNWpY_KI|( ztb{=q(YDsNs91ZEaFvjOU<(z^#O*)j!sSe^rKL>N6;yF)A$YxJIK#{p`GxtBAz-|< zkbz}D4bw7!p0*Dmqn26AhK-1&LhjD2rUFqtPw~w&!-<5X?qK^AoK2_^e;uYgH5&J@ z*Se7`c{s^VE#+>t`{ztZ&yWM3?wupr$3!|ZBKLel-@$a%Fz6#@2s^WLhRMhGM{45% z1HPeL0IpD7`GkBXYaz|IH1lEp;x6%AM{J`&WM~1aDvKTSufnEfsHIUb}>o8(6S$|$3|Xa2Up$S0c`jMwX;kKJ30gXedryJBab4-gB#6+70^bI-^t_I9cJ4M)?!=GKkI z)U7kT-Q1?A%bwUy{}%P=pcMu>S%V-JmL5b=YcPn*zrl?%_w4iF$jm!*O1|4s3X{j` z4Qobp+_NV?5^k)|N3E1XeP@#VP6Yy%D4{QF;ajKoi(8=?I~3!|O$lJ4=$d3UF_G?J zr!8SqpYP&S2nhJWTd|Iy$s*F!zq4A9iWBsAoB_K%0nt1f-ht-Hxrk}gOp?_y5yj4; zLGxEdv4H0{Rx;cNtL67&QSJVn0wx^uzi0bZUapScZuvh)R`)nwC7QvHRt&p*;PJaw zAXD@FA=uau9KJwq)D&8-Lot7k&WSCkT1czf{OrhDi|6bsX&@5ueW~-c|lcMYSI`D3C%H_Nl z=ryJ6cGt@S0mV7Hm&N9%P%)w8my$=)6^tf83XrvU05kMw6TP{qBCo^>9n@_v?uRZum)dW z?@32|mB*^u=WyqW`-w{&oil3g&Kmbpg!hojWt|mS@OLh^ZANw#0iqH}nY_5Pe~5LE zKgN*Oh7pMv$t(GxeL6dG2hq(0vHYZEj=&%X6~F2TcfuIwn?9%;;>s&%b2*6Ux?k@n zW*tduxlkP;|HRV>RaqjJIMKn0=__l9E}jK~#h2{4MBI)fAu9<6P)XHxN=w78d2&?x z?uFDnCab#4juD&N!mhR4-w<=}K(>(c>eUNK$>#d%N9w%gUtlImu49QbAyv683nt5e zyggpOB-L{zT_-vz2N#W7iy00BYFxgLSm1N@I z%sagg>ZQ==yvo_kV!faYrcRrhPt<@RWTzm9cM>s|S93i8$+!kIu@47`G1gT7tZ`B) znira&`G`|&9@H8$C!GNACM03=EJEUnn(24qp_q}RLFOmjKF5$|qJNrIAZVIUJ>P3a ztdmg2kHCC>P7ekH?^&t2vd@We8MxeqAd6f!HhR~2mJ=>tsni#A6yol(vD(M)iiWjj z`#q)~rdI#D^94UTxp`mkrpugP`CNN2>i&|(W7k)6SBxv>#(dxOMa6qOWp%Czk2QUJ zuJG%9DJE(`F)i*&LclgQ6<*7_hrdk{%arkeB!FfB46}H5GuawqfIut zH=~4GeB6T6xg>m9u1@DTAKt)e7kMD^(UG^mONUs15__Br98TWAP`8%WfJ*wL2XtXe zF1aYBf7aeWh$Ur{B*6t{BQRxs$@hhv2z}Gwmy@PXfTxp%3rCHz~`e!sb!GEnlIcE16J^K=Nmz z8RA9N6kTT>p!6EM7~05uuD^Pc(;*;M!o?(6x!i6F2p?83J28(;f27990#7%I{>VyU znI+-!XKE7otCS|9mj7`C3Q>2#ZW@t?h3<*&H7sz}F7*lhM;7FSt4u+(@t1PM*i*j4~g+8+1I{Jq|{|H1KRqFxQSlQFK7x@0Dq*;Wmd*MLbF*!)#}gq zaRhhsQ|;fS!T%&ff00}f>66yUNPkTK#YLn`WMUZ*{*@9SoZT=Y_m`S|Cgh3*rTi-E zsPrnoWHDmV6-hcnzi07Qnuzw`RZGM4=%7CUOBw58XNLn(#(KH% zyxXt`zx?;a!tOM|Z9qI2Q=ciZvUpe#O~XDK%GXS2!xBZ$$o;z-?$)4e&%xiR_`3ei zLA_!glXY6CQ{H2WE<0(+n$$4go1i+dkr@+!S2D(!3K4n-4>sMMOWS;@HiVw}; zX8=-;427o>lF=1eatk1bOxd^q8_FD0PdJ@~IW7yC{?7fXjpJr}-@r*~%i{&b9p(D= zVsf{cfiB5!(j&R(_;TM)G4`XRkdW&Owr4uRjxA&rtio3IkIw=FF6f z`;vsRBY z$olS;96cRpyx*~e&liv__jnYCZAEo2L4sQ(ccV@>rJaERVIRIspdZvsG>Hi%Tx7L4Vt(mzzckekjXTQ(0_h{Bq1J@zNjT_imi}?VnX9&A;d3IHQ?83(irC zzE_V9@$a^uoyd^6pO#tz;Ty(Ew;~bhcQ=YfM5Tp>p9bquP?F7MC%XB@wqh2>sE2;~ zS}R^8OmxBZ2iQDkpXBkEXd_`CM3m_lY1aOd6UL+kc7N(rKmM~zk6r1oL@o&p4wpw5 zT-M3WHPGK(hP*i=L>%Sjc6(2)${p9v@(*ZoW4%0FK-q8g1c6H6nC&ZX&zBXwo=;dc zB+oW<@eWG4V?AHbSeat57~B`HA;AjN&d2BHHq{&g2wZAwA5z;px3n(d?@Z7m&^72$ zL)_r%PH1Z9W{_pL)1v9&^|-0o%A-{)v^2o%V1IY8Dh8fJJduUpe;Yo2Ijk6-04Smm zf+rPga<9ibq&ofXvaXGU6((Y?`^TYuAI?y%K&MHECD)sG9q;dtuul%#B^98or&y-D zi;A~E<7k_^{SBdx5pG4M>yN|=fljCROiP8^j|N@er+dC_fnQU1rHT;lrJ%p3cVvsh z_Iu{t=r6_B0jSU1FT*dNrG}rAb^i=k1Pn2s2IA+j6kJ!0Rq%bo8K21NhEl=pMhcbp zGupWWqQ6)h>`nm-6zsD}qi1G}^rjD$@=Nu62IGs1sF%5!ho5a$L|K`rFsB`s)Zd(6 zr%q`vbJF)7SDoy0at_XhVAx$2%{0F!sJNuPyZ;({69b*aQglpV!z-F6$m#=gWzbw{ zkcp=)fxNmTe{`wHPIDB^@6Avr_iq9(?pM(QApWQPte42lb)A%Iu3F!!98>H}?d~}; zqr1ntad`#<`<<0V?~|LD7O{JBM1QWD>4fZC;Y8$@b4Ru3;PmG8mzMy` zGttVd!%7R8Gb4t0&>93!@MKD>=|d*q6h&3Rj_`}r44W}iqXe(VchYn&B*k+%;2+H8 zuYI6XItgETDyVMSQJ?%U4?v3bsDu)DXfz$Ny z;zq_`a5D)Uf8YN?aJB4#?1ocR$y*q+TG>3lCNOC8&i*}hxo|})M$K~gxmC-aJpY-5{4y(mCh-qI zrM=2zR@5G!aVdKKlYnzlMEn`3qh`rX`ArxI9Y0o>ZJI&-5B|`FIj9HVRj7#z=6=u2R*Pe z(vFIETz4`}hUEn=e|CUk{+D){j&I>_qvP5|#7$&AYk>t4(0y-+H&vQc)ldIbC;Px! zB^NkN{*K2#n%Hu(0Jrnw&aZJ~Hy)jxa}fC^_Eub-(c-(1*{vmYewQ!Tke9|=q$-z+ zEZ{|_Q&>r0DVH1hO~qRHY8Jby+>N8~*h%{`4B&AS&MrPTX3!recj(I)a>J&>ioT)e z6`x1d4r4t}VKtVKld-t8XgwkaqML_SW&*F@YAKzqgHtRQ~{87UB2&Z&WXS3SDnVX(Ujg6 zm4F3Oa_iJhAh8PxqkPJShN^RHrgFEj;#NKEpJ4)=)@;C98Lb$1-$h!sm zm(svFH}hwyNxSn6Yu_lo@54t*+LlQqq1O?wK_};xg(pR(h6ZF9HGZg#y-p4 zQ0IU6c1lIq`CzWrFho{IbB%>$ZZ4aE2#CoCZ1 z;6OYXjhK|mt+c%%t06;+DA>>Ogfz>|CSqy>O^&V_C9eSAOwB#z=)F&2saWG={Xua& zoonf36@EG@laYBwOE*C+NE!Ydru6RX3xj|_HZmM!#LR6w0jO(k98l6l_mW`^eu}8` ziAC8n@rh4P5?AmRwzjUPAzFcO&cA@O)SNt0sQINsrhW@fP|>kz7xgzhAYC$>xfF_K zAKq^w3|$oQ`ch}JlDYoz9dqqtI@|mgpYvBSEp}VR1I(opBxK1ans!+9F~DzE*hCSA zqe)x;AwF`OJUs2nEJT&NU;aXC&N}CMOs`BpCui{&!oW6{L0TLde<8VKvcRz(-@CF7 zNexB60pTJ{RqgEU$Hu4gz8W2V?o5g*t+#~9#z+A~;(x6Y z_|uRLVx!6WGBAunuS-0Ca2X4&koFOKz}(fjs=v0-COzct0X~f7A9yZ|`$illdw1GBsn&u< zM%NxzhD%m%A2lLk`e>7p4>Xw;q1Rlv5aTf-j_CIIibaasTAE}`oE&5*iD~?T7<{~l zn$)UIUkmV55WWP z-XX03OF6Zib7iP^bX=2LE5I#dYDLu3**b}Ql~eEJu1`|3y{&aLeMRK_wk1EH&i z`}zK0N+j4CT6{x#nTxkS%#G~zc}80ulfv-0aBFC=wY%=YeElc{@N%Z<>1yq7+3qYZ zE>(?7`*c(N?DiknOLqgfBHujjef{P2@*7*Yb9hQLH4)0~{q~G1HfOtktM7NtJ&eDn za|pzuKC!SsA)GSnXhVneN*1=Jt3Hh5r>+q+lx%is2BvN zV=$a>ck3NDWy!x9l=+t`<%8y6R8{}9BpqQDoA)qU59$tDagu*a%da?BW5>W>uyR3% z6Au{mYVg;kZ)9CbW;qtWc98$B$O7xU->?Vd?KmL+ZOXE4~Bq2C_}m!~EjFE$9c zs~K2U3}p-?a7L52C^UT%46fuvd`Qf@P{px%jE-yMt^eR-e)JwRc_%FHh)8zPzf=hw zaCpUSo``sV7}w*ykJw)46>vw4&SxeQVFGeNX0HHVm*a|WU%fv~px{&S(tBq9-ke_$ zbZqq9Hc??Qak2dZ#pFNuwx_6;<-im=lZBO>ii@~OUMP{Ni`}RpNvZN@NKXP8poX~< z*S|+WOxcaAyj|Moby|RBX-sv*bXOwUyf)!4Pb5%a0S?FerQR)7LUbug0>LInWVQkJ z0fZiDIp6+CM|hS2&Xus8Z*n0Pkzr$wL)5)+J>TRu`Ve6hTS}aG(uI9?~pGJGT}Udn8=P`u?68?{EH zYM>0BSVD<-HK93;%&(=-D45b3^G*cf(PJttB}!OXvRS$L7pZ$ECR|Dw`{NWAE| zY^>XWJICrB6G?Yn8rp}?U~@he0p*{%nqNg^EWTOdqpKUq=qwsj9l_xejOA7Fr|gL` zn}|(HkGmFtgySP#f5Nd70Ii~ny11i5N`PO#-a9?aQ_yUN>;QDX&R3NQ*1!0s&I%=k z`{W^|7mKJh55;R7DT*dyr<)oV5#5kiul@;_Gxx;C-%$n0j}{4wEdB^?N>k;=7Tb#B zZfY>r^P7?0z9E6Q#93t%^MDhfgSvmr2%7S|C$m#H9Yi}GZtRxO)a-+i&vrJ;LoA~) z2#*0)0#<*Y5xHe8qGj+o^X{VfBU?n5Qd7?jPRzkg(D_l>GI=huxkrf9bl41a@+o;XYpDs| zvz?UTW{aLLq+R($*7z@{I)(IFUw$oOcZr)5U%1vh!IAo{VHIiDXOp6unX7ZWJz6&u$#^@rNP09&8Q@r&>Na=}d zmVJNcjK_31Mr;~PPOPaWvGsx7I|}!CRK{Iv!A~}`?n99=(LW2?<0j@#Q&#BwGrV{RgNa*wE)6^$zQj?@8O)}K zJGh#{Qq2|O+_V)ME`U76IqX*{NBMmZT_eK&lVTmxh8A z#XJ|Bytgl}O<6tCEjHxKKs8MKXW-c=md2Tn52ynwG${*CX(DQW^aiV^nALQ06wDQj zlwb63D2MvV`mE5>Pn9Onft5KW)~6yDajUHNGdJtSd-eztpuN$UOlD}`}Sb&+m*xAEqIK>P*BUXh%zxf zN7g`?XLQU6*QHSX{n{dXTn=$V>ol*BEA(VRfbY0^#^oLXDv{a>U%$lIGo?A++?!fK zX_;N>e1LY1D%FbEu)y0fy}TQ@oeCRBWM~eFe%m!1mu2(Fj9;_)Nii!4*UP>=^ART6 zG)`4D_+F5HNNJwp2+H^kqw=-;;1c2$b#(n{&#;gkub`=_F6gd`%qY$Aqj;H=N^Pw;UHnwxXFx9rS5EsX7`_)CC2FHX2r0yLhD?g?qN^AR9UK7tP=oBNv#0+Ex-)#<)3^ z2;0=8;~@RMcc&H>VmR2lVL_93;}!}-StZu+S)j`3X(f1z@N7kJz+68axUR(~zbR394$cE$BqhW^_+xaoe@W|-JUSzGd3 z)?0beWx*fj_=XFFQ1PtpqCF~Jx9mv_p(19D9XJt_)8}VV5sDlgUzbK+n zOUE$Owv7(vrTFk6>oQ|uUkQzvI4+aB{HtO|eahO4G5B&fIe+(ld*On0R6;un*h|IE zT*Qv$ars23#**ypaf|5b{56uzzwE>|d$3rA{(g8aCD8Q?ncmdyvRd)>V|}>O_a>?z zNrT~D<1Td>!hG7K_Z8R#NyF~9U~|8moi8`uyT+pv4>~~BUYqBk1pGdD=!A${hB`Yv zot`5V4qH3G>dCdAP(9u4y@kgubxkaJ^yCRwxmkP5HMuN8oTJ82oc=!U;oFeK-{P|2 zu8HZGttI8QQ1{e0L>$Gy7V-?m8X9gLl|C_RcQ}5*N2KiTY8cDy=^n1YesXN&$P?m^ zG0fH9A6|Y+*UlmRJD$Fr%Js~g2|DAhfkA>Zt87X!H2AP1od2g8cA8MF1;<|yM&nG? z`8Pc+p+Ar>wsOb_ZjCHW*ZSzd89VW#I12}4UQqEHUG*U=&DPATGbeHw+SAc1r^C{+ z)x|wRx0IUamq~CTx_l+WsDFYG$@>^td^#d}Js-^6#lK%qP zE1h5#NXdp%;%wz?1J#^jS*Z&ChBWFpsMrWxhs_UDs$`~__#})WB^q2v47>i|MeH_P zcF<7sRNBA*C4M(9X4YIE=FFg?(Z)T*`wkm9cVfG zqQG`2Qme;cGhJ1797Vl4a$dwOjOG{REmU!J4;m0>HHBtdyvDJtMiBYSBohMS8tc46 ze-Ni)cgIn0IIW_IY?h3bV`(0L)cw%U`t|ruinMch49(17_OBI_n;p09UR8O#3kBFC^{fvJJdKm zt#azT!H3Za0o1agwf&SakOpU2GDc^ME!utRVUW2?D@h|VwlJusT~$~UW%h3v))bCa zJs1*8UNHC+OZMVQWyeJYvWMp#8I=2(43mSIsM(;iwR&bJ)+Xs>hmlOPsKUi^*dkjZ zrEyqE-3G$q>GQ=KLHpV@A{(_tyZRa5TtWNFHKMbDU*ylRijauNO2*?RWOV1KqfU6Q zChr$vyqANn%Tx=D2GjN=&?77moaj)CpVN2=vGqr?TPW-SskfBSI>((_+VCX~lyRz0 zg*19M>YGe{4=^XiYfyholl4gW%f4Tns zheyiBgJF%nU?SREK(FB?OY+@1jWaZy~*KP2>t5x4Z2cUUOcNOKUJ5|{^USYZUkb$|~0cNqbwZf6LK1UF* zab+`wb1`kyX*JwbX}ft(s|pTOUrynr1vLq!`5i4I<#nlJmc_{js zRzGaFnFp~&MO(er(C~Kuv__%i!oc3W39^CJW~8QP6N?+DwGDNTrjlLs_&WO1+2LEg z+8x0IKTO%>q7)TX^>o6DIuQ(|NACWl6_M1v)CIHUUL+f>3&{wj#7XJMg=S}R68V^~ z(lQNZR~)AkT8WCur8F8j$chH8Fp~w>=ltL=eyY<{{(-CRw6TG-d&wXsUiQxQ@Cp;#pcqNh8MpU5)b2MNmsg(b2?+n#IFMVh7&lg`XN2{ZC7IZ3=*DsIw zV{Yu{%TcR(GTX9|C`f#mc~(6|+F;Ds|NWJZ9@1Wkc!-7ymhX@MekQq$!{?tIUku+E zO;l*<{U<#6?p{7S&)6tusV=cGmT{inE35iOJ_RRDzt|l7El6(p+mi#Hpu)ccI@9q~ zDyB(#nFA+XyS=jE)%k|3rEDDFXj*%1?cW2sTYUT0^Pkni$b*Y>DcuT z*n&hh?T7?5Bk*bdka@zSk!^qWY@xWFg;O{ZRDt|x@Wt~F@=Lmj-3wUWTKUXKWo*m5LnXGLN&i2IF1AJwMyC-K-sbvy614=zejyzggf*Mln@d zfc9^DH}oIGDg<-)mYqpBEgIN(2i-BSLIt9cW_O4d+ct|obg%__#9GQSK!vZuJbeN2RyrFp}htX-xjAWqocIc4?zFdG|rrA||a^;7OB5}qW{xwWp@1`yy6eH;)>^~%a zbXWlL#ZTSK*p*YifT|aJq;kl}<$==M88Vvdhy(18(Q8>_VAdxK3^Y(Y{ElHxNQu!ct>-4ye1;wVjUaUkEezZwtKvW#*e3O z1i^nz3=w;}x<@^(wo!JD#mt>ydb-*NHMctp+e)SWXMQ?h+wSU~o*S|PxVd>kpi(`Z zo#UA`+dCGZ@wIq)T;CvSW+EdyD`{N|9$^8Y$!SAjOA~JbZZS-MAOB?GUw2X1hCThW zLrLjVvfVzu$=K7x=oq-N%1OeIM&a>T2SdlRz3;Z1NzX?|u%F|aEuJ^;Oh_6b9A?3H z>+_IA+#~7y-MnW9-}UQWMxOUUMN19r^_^*ZVam3__M0JH$sbiNnl!(W>7MskiK!z~ zEVlvJx!KG>9**hwG&E+m46X_yG8%A1@u4(RVWK)gcDbc@Uf|)X0+T(!d3S+EO6shw zm8mB zhj2=Y$)JgP7+LH6T1WNa+iMZqE)EtC^}z{wOmr!UdpmPh524^iV>fUory~-}!0hsW z(1wJvI%wD7Eo2<)@dpt<$(;42LANDkqN2uC3%s zDr{%nEE;BR68a60xgz-s;6e@GriZAivXG82D z{OJ-Cmgtb1uR2t8Ww=w+g?wq1aKD`4zMh`a8QT`bn^uT1I3Ua|WXgXi(T%F-45YNf z!i?3D(oO&QEAA4QC?7WJL_#+nQp*7!p(_R?l%wkEi%es%`5M?L6XlZE#+h+%1|Pwe zJu2%)!ag6KkwatsDmrR^JtRCFP?`vE5plBiyqSYT7s!lSrv(EId?|Zys8Eo33FeBGC8fhrB3cA-^J#V9AFT zY+F(J&4PU@@Te&3gOTx2*USNf1^krkm)|(gcC`Ibh6#8@`Q1iw8cHe+W9PUy6EZn) zdJ^S7Am2*QIsdYfUWD=Nn+M@Q=_v`}aTid_rJqeIV@3$7m)he0c6rnNzg^z{LjS>y znm+w26)XLwP88ax%r?_EF;8FzCAPqEzf$UpBCl^=0$H*xqD}4BIWu_-xfF6H$*J1u z*@l_&ZRXG;k|JnQxD-%kk7v%c^To7xy!jDW^Di_&X_Pp?vxe~qe1c4%`4>KLer&d>amROl5w_^5#-+gwxw143Vxj@egJ#c(X$b32>(#Fgm)ta!N7jIMncXi`Eq)ad{ayW<{xjg3YjSM>6)_ z>^%-@S=DT5BsNmciMTm6Zlc_){mn`3?lz&2n(QAg`&9y6tkdiK@SU9v6PfG7qtT7V zkJ9Kpz8>jA@6zqMY%ja#=an&3vuWoFlI}?TFF((;x**DHYlzHv5it3v~B3}9UpktKQ=OC$DcsKcruj%^Ax{5LqjEsaI99%84Gb;cqCss~% zObl#HC4F@X5hvQ@2gZfw2c_jzDbuI_7`vdNrYGl?W{2(T0M=U$5WSD9X~Os zHDjHf+@?aj0qe!1NJnrb=6yLvusk_{iJj#assS!ZB59gku9%2tI#`;aHF zl+p*3x)lY0A{t1Ar=p7vJkjJbYmujic?(c_4y;9;b)BM_24)!1^pBO0w7!#o_Jg0l zz%NAUeWx|XC1gj!SueD2r&YO_-NKkV8w#tyCoOdtG*GuI;*9169{v3klPt^N%d@bE z?X0Ffv*3bYW#$AqLmbR#$mUdhJ6*VmueKoOe-&RQx)TZb@r@C<(|T2OxRdf*v2 z*vCnP6t1>k#+UJb%eOuc4elmKYj2hY>XKJj2GytIM^Gt91GVAI?!K@?F95*G9JP`P z!(SO~kfZbhmAPuAmY2}o;IS7NH+g`&A@%W4urU0=K(3jQ09zo6i0*k<)D$r z?DZAKdrCU%g0xe)oys@Z!_f#H9senjKZ z`UCw_QHHsOyA{ij{^PZ^xirld&6k%4sLRcc*qTUIW_!k)^JQeO*ArHMA_W0H?qNkp z&i{VVB`~m48(eWX&0KRc`F8vb`b{|-b<&~c^7=FLsSy!LIVoo(m)LOUt>sC3l_#jF z4z`Ag;BdO;>iY5A!*ey=(Ygpyz`K2LdPlvohBu#uI|gYQxY>WRj8a6{H_7YEHQYQ% zbs)NXuUO_;%V3??AM}W2zPo)P7cC^Cje*@w#YTQU-E>jN5su7mhTGl}fHl-VUTxs# z(ZQe1!X0v$X1?jq^Z`r*_V#UuGsmf49t_dv1G+O!+Cw11>kX2Sb3pn}4ySEc@mEk9 z6EKpZd`6w5DAD>|y6TC#nCW+A3XAjlI|v+8+|B=Ii+s@4?U?;nWAe+XfAu@U?6R^7j;wbHaW87~bLgtkMaiG;Xf&!z>ojkm$&NRQivuA*kdx(ZX<$Vax4+-o za{wPb!%ohuo7{f(l_&UQ2iGzr{Ym6r55o~=d5BdMy;PbpU;;_Hg_LYM;6#*~>=t|@ z*WA~qi8;;V63Bkx6wOA~!mAeNZl66?U``gA0%E`$p5t}y41A5Jh~Og&r*rIMo=h2# zB}TJ;AH9Gptz=J6A5^f2bz>LU{J9LIWP~c_c*L6H)9PEX6`a4zjv}bacVLS>3NRbf zEeIdIqh?r*UTX#fq;a{c4c*rAEfL{;Wwit6{SL@RD4B}*YJ7nP4690|!U|1haaS7< z-1rs?bon|D4x@i0W1CJc`|4Al=_>dpcz_e22=7S9%t;wJ`G`5;hr>Gve+ob z1BDWIhWv#Qk{eWdQS$dVT_SNGOVpsvaQX)f6jj%> z5dzDv=<+bqEK~xU2|H%0qNU@C7jXgSW?!UYQdE_RC2SiJ6|m}C*T#%aX(HXq@KT)4 zC_LU~Tm@2(iV5a)-qQsP73OW}4h!qVUA1?W$|8&-C^UHC)UvMgoygNl7ExZOh6{*W zh~Ip_-(u^*@H>ayQpycE{6Jf>{;k>nWh~`_HjRs_Kq_)1CrFK`CC_3JE|rZlYRYwF@AwEC7zLI@bjBte(QTwIG7JavLZPi= z!dS&oS@!;Jmb2%`x+STVNF7t%Es}5B(Wr@)sTO!?cocU_C&Q+beE-e5%APV1s}m<+ z5oBD6K$l}e(+cN8BMTRLD^>&`7%IN~uX~d3xfz(3N)s;on`Vub4JdIn%psO>Z>35W z>dH!+GT11cQ~No&8xE(&(3%L5Vp<)zU)&@;lju~MzzX9s$aHV6v^Gmr-MhbycFaZ- z1Q$#7K>X)XmdS7dlXxqKG$^ap62lVQ1wL+d^eQ{2k;DIIm?WIS$ok>&|BRLfdZYmK zbVQ;us)#mFe+^gxqj?n1qpB7(0#s zXl{r7#vs{f;?*E)h*#UR^xi-`i9(rc?&r7;u{pW=qYYSWQxcI~5vs8Y+2qVDDr`bX z2z7N_*nWFd_;O{6DBW*_R>tVCQcOI7@p3DowQXeg6ciqsOB)*1_~P8dQ9x%6R#!56 z6Vj$gRzpozHcL%{>nKV>O;9;Z?2@%zryu50wrak>7L%5ZaOnPo#2qY>ID%=z_yC&T zEIQUIVPhkC)<(f;32e$T%1Id1s+!4?3f>&Eb*KZ>MJQ-!!G+Pdti6|Nhu`Mnt`ubo zpcYTvlS)@^5A?VlYUFP}=THn%$}viy?+(T=6q%!L--o_VS5GA3+72!N(R=*eq65~{ zBttWvj~0J$r`W(eHs_hTrc9l3TE{ZX@_J-6-(c#5#?JBAN&mZtlfvRU$n_fdWmX2P0w>V1#X?96QmoKy1B-G7M?doG0X_L14vpss8de~bg^L0t9NCr zb@)Jb)`jieGD?H9ON&xsy4cx4g=&kOGjki#etv`!gAyE#jVkLaqCSek`dv^MNl9^< zIsh97ZL|!e&E`nA2deaL`IgB zHGfrSbaRi4yeY1wF@!01qIh<_GJFvQ$U5d9Mar`>l8z(6T8W!uq9!CsNNN*e%9A6V z>6#dw1~+9Ahad^1wMyk#9mke~@YmdhaJ(c;@Y2HU#IZhkAH-8VP*qnWf7zpJ7_Xjq z4HX=o#8$=&Mp#UZ;PR7}n1>g%W$ru*5!$Ft>hl;`#Abk?@KUNzcs=vY4+9gbaq%pg z2{;;e^4j1-E4$)mo5V&3a4}V}IVv}m*&6qMhm+%B*#lQST}Jx!Np6v~Tk|ZACP?X# z7bf&(8XZL-1+8xI$Q%sW*Rj$0pcZs~OX%R>mi)XPGH0q z)ABkfWPD}Oi(=3e+@Z8Qp0Gg2L~f7I^xg(TPBYc}{Q=&Uq3}W9ANE#WJeLb`=AO>B z=_(%&$7Z3w*@<26@2_0gHHQ5Y;-Qw7RL|obZvx(TFx1FCL%Ooh<98LEUVhkDKRvAP z5}scU^$ogy$t<71@Y1pdCf#~m5!W{Q<5BDC8t4lR)i_+`Trc@J1q{m*L$1vS+<{aB|Uz=>6*;M=r}~OPI@#D z3)OV&Rc?d#CBh?Lxvz(1_P;01WzW|GDutz?#>3#dRP5B}&q+cmZsy;uYd4Q)cs*VI zf8UlNjdiycji4yV>y3BxhyYR<1uQ(~eh9zc3uAHoV`AMT67%dvzroBYT7r&OBNVsR z{|`5s^q@sTnKMpWLJ>h-&`GUHa&{$M!cy}~e^;>@w#2*=s+5R73Du)40bAnGUxV+A za=iB!hpdij{eQI)1*s|T^^#`YG=>&*q2z@1qXgAwo#T2*0jWCxe$j>th!ADcLT7hS zN7yi{gXIhJE2H8H$k6&;wvUldEv@}Vr437AFP$P708-%jbGnlV46@An^Aj+P;f;?3Ir_!ak3b)6 z>{yU~xogcAN_R?ZV{`=MZ@41_5ZGCmRp-RSi_)zpz$my4^N(eue42m-Tp`M*e?|E_ zKeJzD7n1Q=QCM>u!dePi8Xw5ysyOmb1)jweG>e-?FRv0Y|1ZK$lgaQAw?W~-lsp7} z5o8aOKh$-U_C?Ef?#^#%z3`GT|$p|s$~e3O~bc4fme$xbVRr(&0p$gLX`I&UZ% z@O`m6OTtmzw{mE5+Vj{_Tau87UForqK3ZIa!dB*pgio!rp#~ajMT!o#xV;diTl%0A zTqbj1WBkiL6hqFL#l;+nl!h$L$t`*DQfeBSrizVUIK4Y{^GNi-S4+_Z#<0mIYO?-_ z5db|zFu}^VK*U?--X#ni{zo|SENP#7a;u}Dv$NjFcoQ{iFF}u%`dBGoRIottCy12R z&VXltCQk24b{_B*Q%V$8ZkC*NDJ}^G5lr~#!gGW2*@QLF$fv@FDx;x^66(SL18O$^ z^rr50Yi?CPk6XD4@T>k3D*A-_Yar@~-G2b_Y|fMGzeEbFsDz@?94GQt!^~h~JIU%- zlGxzhc5YV!)D0RAb^euj{_Nv7u zBWaP;A3VQ=GUH_|f2^xXgObR7Mq?(vvy+7^N)zykTVxBcn)}G)sFa#)=9DxTtYD8O zupUdlCegp9-x7pjlKZTMgt0k6E_UksAI2xRZsdVF&mjG!7q!3+CfP39Eq|33jGz!#Fy?2v4ThXwc%AKuN5J# zp)Xp6{A&0@gn5=k;6`dU5z$F&L&q0ALaR<%sYCcg#;5{qJDTfJVA3CuMXTv7iENsi zA0d@aNF&%3_%wcrxE1B$y`&D(h8x( z?~3jEg^iEb8A^m_tGs;!$Dx_FWbu&6nt(M{0wUT7@Q|#_bclbdsD@|H&4CkC4-MU~ z4xc(a3Q8&hqpPqKm~@_hq@$tPip15Re(|?xZN(!8(exe{6xeQ8a>m7BjqqukQ$CJE zYDqQX_3P=t32MeY8BCV}yRC$eL+i_b{xfud@LdQY3di&!Pr@J!{=zCBSUyJfO9_fq z!W``9%j@@o#_h0u@Y%I4;Qt;MxytK1~WAN}!XYcU^bf?7I#NpUSWza}C>CmV%}W>9&Aj zNdsBRz=Bzb#?%~7r>Ml0fO(e`trao4^ilUHWyq1j91n}w@`B8d*qj0zV8&LR7vGR( z8E?I)#5Ng}6gN(~_R+~1Z+oetlCW!3$*lRB6c$dF!O_S9TTp{dBN4Bx?lfvScd@Hj z0|~4C`hu*B6tZ2HSmQmCs_M3^m??c1`F;|Fu0A^hu+zmhkG8{5<3`8Ilmx0}{nXH0 zZc#Frmsa;9pUl2ENXAq)(3G=tVUM0fOwvr5TToLJ6Jxv}yin6zRyNR|7W$Td~ULjMZPu1q}%TCn1taUo%(yZPz|JYzmnbtG$b_(B`l#O4) z8gp)tQHUZJA`Lhx^GrZj4Udc_r{%@`HzQ3T&{^x^AvL}5joyY{FN?s+wv3vcJv8Z_ zVa_Fjwb@-nd;Qz0Scr7_X`Sxbe{YNT%5yCedW-*=L-8NDGQ_KGCoPu{aBvnE_u#Yh z+Z?DTp(ZCt=)IsMWQ5S*Xy;oTg@vTUuPuen*7Ht$iiLoaRK*Oo2^e)PZ9hbBf($Boiw5!f0#{98FlOZ~mOL{eh+973Zu%S!^~w{=%MA*|}PC{5uPTFN;Mqg4dR3 zv^Vrc6&vHh7D7xHSzm+FmUlrQ@Z|-b1qW7R-ex*)&LC-v`KU2&@S2@RHwO{dw`-K? z^0>?_pi21hb5wOHvkFFa*1?x+7!cIoiHrj8(ilT0^mu{(IDXK=3zJz8F$g&%79zeP zN2TCQ%N<6T6(>74M`czm4_Ly*fw*_pf26`cX53i&{T->Gls2NbH(Tr6H=-qx!Qe3g z2=WiiZ6Q$3fs5j#zS}Qs@Vz_W6Ylvn`e#w%41WIkY!`8>%WGl}OaiLQnQ%Y8-oL}w z>-PUH<-$27&w0HVG)}-@7tsd#@}!7xcX4;V;pdCX>>wwJ@A7hSh-lF5^*b|{9ut@K z{q~m0p~qXs)Pp)lVd?$-o^89+=WpK`U2{rFXE)>w+d?}RnpZG)?)!6fUjp9!U%;fH zn_!+bgP~Yt=Ii;Av>ZJ0zgxk=!abuk+XB0%=f~e(2`tPTv#)YCcOK5EzXgXX#S@U? z=sa%^G*;7XZwd|?Zs{N06x#5t;>^Zlj~eC}9+W;k;pP(bt_}rzXe!=}pTBkby&x#I z^t&cmT&Hq-d{VJ~wA@~y&SUzGsv(vntfDBWxcw)ym`SVuDVV- zAgQuN)O+HK2w$O}v`C?(LnvnK#Sqi&eX>fQXF)dgMHSZd!fdu)MRHpCu*P{!8`BS) zbK=9b4w0*G;}~V=5>D&6Y>%Ki(jnpdB`cNIE79LIL&W}mHk|fRf)leSgNnb}stegpXr9 zJq}>0M;`4I&C<_1f%By0(wSfvMt4VA!4ycIC=ZxytZST`ex610mO48n1Qq+#W}O!5 zPfR|s@y?65=~9h;?+&)~+`~NoZ4-tYPaEp=urxTP4-EzVodK!B^voFr9hwut7J}_v zA2&Mo`j1^oB8mV5B9Mmq@hIg(TOa7zLdeL%e{(oSL|lh#n#ecMt$`_(Y6qi?4X}rq!PD0 z*|(+&3BObz2sFDMn;D`X3@hJNa&F(C1wWMhM{& z#UR05$-{E;8&kdm#uXz~hDh^IAvg=9!c>w7iSBQtemdgrgk~3#tltHZ1|EP)9z)?F zcb5av8GEZ`G7G;E4K7~4H4zorY=)4h>V<WF}-mP)bkbF?;|DjD{SbgP_zp-8rnN|GuQ2W7yVMTV> z4&{`ZO%R14MeR=Ow*F{cLYwGHA*pT&cIjSQi}_0ffg&m_r!Pfr{dg%(7mH;s8Y)Z&_ee34sdUoHRj_sD>O7Cb=60 z5^b%%HS;>f;0hCUWNQplgk(uzMj*u5`dnB`K^z%oY+)*@Y`{SI5+D4`k4|_dC8E3Xn0E<4*~d5^j-xIJge9WuLlRO(o^?y;c7RJ($tEH<^+QUrncKBhteZA zI=%kjV>91?N9nPSscD!2#e#xS)dxxlNHqHgr;rvr)Wq@eO2hWPp|)j3CfYXs9wh)%z%BB940#CdE~vazQU zBMUn_c_!{`<~zGs6=jMz`=JhfpTKN{5FlNOl(SnEl%a#>na@y~fExrRSBpN46POcDnGrKF%kL5qke+xSMO5tL8n85rSq`lU%+a#6ctC3yUc$-HF7fgV z7z?00llr$NCFo_F4Kl^&K%SWOHVarQaUZk6`)1Ns;Sg8;YGKXwR`@1a1_bBjw`Go< zQF#wh(N;U;)t96MC#l(P3eL8;^^S}Y`my6jj8%Xt9g3UVGV9kY0>DhwRfQ$Rk>w?m zW3d+H_-nv3aA|W@YRQ)JSccDNr7cxmZAfr|4qC)n*mMn9aal-kr!(0+{7vL^FF6&q z%Rh01O)+KmhQX0}V!v1xHGlx>BHMo6YDrNOWYiDC-|~|z(OGM)ReXI1;h~G2gIJrY zus%1q&%KY04pxqtlBy*>sn1>|vSXCSs?^0S;PS>RCr$ZQx`UV{;j$pZ>e}_TMED z+=?ze31bUXaS(r9Q}W+lk%+ke+`tzUj;_gKniu3t)cDVbhi=_|?wK{Y8@r{;PcMg) z5K?x}R1mc0=~bCg9%Cr|IH5py{oiMCV%S~OeVI`v2EM7 z)v=9BTMusXQ%LU)9#N1vS=!RNLF! z-2W{2f1fe@Qlrey#oPH&C!V(_>~c>f4VdINpPTidOnl62auHdTf9&?df2w|OK46$o zdb4%0_uJE+J#NoXNNN*QN&)xx-LLK)3(%cO3Y~e0LD_?*i)F3faHcJ1S zbe|r=fB7hWTDcLqRJv)`k1L#a@h9|nv(~r`q8KgGyOXDbMb#25Yw)f>Y$#LB;@GpXqi@# zz$p4D5Ga_)IZ_s(xCMISkNrnzm}SZ>?TiOO+dJh7YC5;Vin*i$VJa!_N$Ola!LJ3O zy|t849DY%!QrIV$_u9x*@;?eW0olPTnNfx1tzdZ)rZTz%Of_3kfOKxQoUa9UD5nDp zZW33-0oQlr)x!|6s$U7VAR+36CH93uElkoE>!wWAi9^-uV3RGM7NSwRI_~iScD9Lt z#}nRbpmZ7cuN12R1dCbk(UhtCs+Yy`KPW9o?J{D_LmZ}!e7k&YAy20$EBT?4VdRjO z?=a^az0E=yi#&(f?dwuX&6JwXM=DkA$Q(AY(#714{cG~a1x?TYsa`TK5OE1!tD3h}w<QkW*t4( zm|`mZ`lcI{dt37q=8m?#{^qI|OFdirr`fOXf7Qq^Gj&q*+28xGPf#}fsV$&QNO_pH53E!_w){C}ft4oNZgO-654Z`L`!4M^SSL><;Qr>6g|~TUb)2=WAK3 z+>39H1Zj~V(Hz+~MyuV346-uV?6KGH|4lJ<4hJ!)5q3EBgy~jB;cWHi z3}iwyQMs_7qcII;V~hca$Osj$J;nxdiPONcK|Q}#Z=Uat>2!VU^qTts7;kunRZF{Z zOcpvs&bE9+;NA-`37^|FvM{aM>GX);YRh+I{aWC#^EvlscOOb8``WxLAGjot4dSiEO6KcczUH6LLYa-_Txy9$5eff(2V63uTr~5qs&z;EWxU!kc{SdVr z55VPi2TioiGqP?DcsZCOwuQ*g7Fd|BhqCTy@sDTR=IXWI;*+))`fnKN@$UT?DZ^HF zZ$uC_sxakX*{#OmEw&40liM+*>XoHoGP}tAmQ}jczRu|m_Z-WP#r*>Iez>~U@syvA zs+!sV0rpe6^i-RFx-Y}KBByio3@ANen_Xyq1TAvDe5&0!v9c!C8KnhP*G}nT-~s$f zkmUA;vber7xADr&?N#&wl$;P{6?gha2kzo{K~bGx6BO4L#+2pr@AZK?y15Sw_2bEF zf_H)BH$246uyGIHd>C?zWB$Fw%`dZ$JZoa2U8kb9BPy)%&E8mIV$KqmsJbF+D@vNl z7XK)?cSMj8MotdNqQ%AfR=DUmSn-Hpa(w7nl?R4qAtCakR&4S*JSOdvA`GY%4M|n> zNgh-ap*WfLa65(JJ7GWZx zX@4%6Qj6Ik45MbO&h|1r+qdqS~#H~)K?lV4>Yn|oRaKSj8|(#n(Fc^3d@&wp@t z3DD{KjQ_b~j>nbmni`sg92KLKD<*9xx`VDQ=A_m zf{F||uu}#UM#mO$(80V9UmBT+5-ejCIcY*D>&5|{wiOjiPfRuvkxJx4sWr3ctGLCw zG%zj5pdZ}AQt2$Eo_X=~=t7I#r*oLwk% zc{s%aIF?>^F3WYgYlHx%xR)LJ(_4mKf5Tbm=06mny7T-e zb{jD=Bkx}JsqF91&E;FXPU&lVal5>(+5O+njQ#E>;rcL8tBCaXruDm~@8h<_@o0@J z%0dKqJI9~5eTK${3`xO?K3>P;UO$)fZbt9T!OPKgH1v1ckBRQ?4ok^R$dxlt%b@1B zJ3m6Co43g6NCUP7I;-qu{6BWVjQT-WPOA5+r?2jh^#u-h^2LmVlRFm5c=h-Xv#N8G z661S(IKMY18E(MRA^RA&N6xw$kqLSU^Prt;HE(6u^S5N zNdnJkFw{znI}dGP=1u5P7eLZpr2AhQKa|vwJsapL2dXL+IhO=%)jFs>4S;!@yAjSUmXsGdZDjsk@zO7<_x`d^7bOW;l}Gp#JZjS`EXd0%LmTd|yz zVA`#$gSy|S<6yvF2$Y5VnP*ipOR+HycN6&M!zCGd7p88ldBr0A6V>oF9sCm)PDEfy zvdPURNvb)bK9Zchr&6RWDkH(!31Qr1aSlQ_45By`g7`M!r5nhMttg3taD3^h;A_N) z4TAt%pr~<7=^VOjU0N3nLGDkSz9#W#3Q5soNRkqogpw?Ft1XiWtCeIK9C@*x*q{P> zKcFsMK)YuFC^HmW#MF}7x3f$BKXFi8=@Tbjgd*ju@Prcu<|H{?hpcaEi6_f!<#A?A zUi3+)EQ9p=7A4NK;YWe+k>!o(i=r$|3q2F!c=f|t>3qt=b17C{OLgf#)w_4A{NhWr z7TGc-H9U#=g^M!TmBnr(?B|H1UOn!QNF-#q#R z58(5Vqd-RVPeM;P2xeUloJfE&aoH^pj1pJr%dM{p3v2l(vPz9+N%!-tXS6Ws8>Q($ z=QxP28ppKsp&nQGj$~Ev`pLxnoy)!>Gc1}Oy{%%UDgp?86(F$#y>F{o$eel*6*Evk zCJ{qoy-=9X0_`i&-bLJua_j;Cja-PU?~09F$XwJt^*xE7Up%WvpLFzz&xU!H5n_A4 zSasz%4{?oBOd@I)q65^lg}HMSn%7WgFC`91h`3{|EI5lwu5IXrT2ucfMUQ4HlaxF3 zv2B7b%Q$b;PtfQp&pA-S%O^-V9CV8zD~icW1_= z%~7{f!+xA*>*t>S#7A%&1Mt6K< z0dpO5T*tZ8x0nD+C}(!t>%x9-i=&f6vzr5ik8Lz}^lgf4{s|~%-WbAbhyQ(>Y;dqQ zT<$IV`pR$Z*8Xx&XY8%V!P?i;3rQ7iw$=0!#!U=cOGzvl!8?UOl|e&jWj+Cs zy5iAZvpE;y&%QFs4?z1A+#}Q$fzP(By>l>mJfR+rYjk*?Baf?MbbP+x1eD^YTTUOJ zC7|?y`m8i=2k2i31myI9n0wR7OcJaZA5OTjz>zaU&>1W1@cTs6jVU4KZtN^Pmg}^8 zCY?WDJ3jT%$mQ_$hqB<|XX21iGRMAD$fU**?mwiIXSX{B;~`z&AANdvcs~DfzvA2Z zDg`&6#AW;Ky_;G#T&+wEF4jryG|HEYC)jDbXlK9t6eemG;SgWfc^F57cl4u{&g*h`VfS9fUdP1b z5x;)eevZpIyDX-Bg0Qu3W&>p{9P{rvc0s3keAAU5Upygpj){v`?ra8yuZ!(*;4K9= z;0H6$E%rAFm@Tp5j$}!Y;QQ^0u~R8IBtV-MlR1rDT-jz4ixio)e`e@5YBp;K{*PSReM7Is9VDc(Hb zh(=3MmsU~ayDhFHM|W3P_$?%52vs&nK%UZ2I9W;6+L08t<@rwwU`e1+P-B?>aU==L zgE?ZIQ~cLBH|R;zNvo9lEVtCiAmeN|cpO9ctg z1Di!d>zl#hIP5Pv$u;17YHyQ~v*Lx_#MwuIWg#JADCjvs<^I_31cT|YD%kCB#H`ZoIWz@|uLHV1z`JOjYkih{I^k~yf0?w(Xz(*w?XTPp3L&2m9n{u$NW!VM{+ z0KE-B<;E=NeMOia;TM9fHkUca8(RMD)!rfWD-wn_>i<^r6XG0miRVE9h_OzMX-#?@ zYuo1*b&)0>8Bw@Wpu*mRjYK@`oPN4aRk_|gZ5HbAbPq^qBaVxt;OAQIj#e7`e4KzX zZhI#kUvC|_PYWE#>-+as3;0Aa3V028$6ep|=A3_Aor-k59gxUhZ5x>S1XK%n^w~YzTLu}L?pyxgx5V$y-n8!h!{+VpsQ2&VlPzbH z&VwBDy((4!=96@WeEZ_)-bGYM_4`w8xl%XkANO42E(=U?fO`+? zD1>y1z_S7`k(!D(_(v6K?US?gGmb$h7LnbNy9d?#!c5$e^U4cbq(a?k@PMM?&m6%# z!i+x&;+ux5N6>8LA4wE2%oK6wPu^2j$wX4>MsRQ9S$1S?AzT(N#!zt+$1Mxl5(T-$ z4Yr(Xuk!CAf|tA@YZsAMawk{3K{KB>6sd|4$Dr?2)rpk^4>{_I9)Ke&7m*hTiivh5 z?k$n0#=+Ot@%OwKQT039PEOsw-#db+ThuA>9!At>?GB)nok z_9-ya7M8$U(uG>#0g~7k2rbejjeR1UDDoMt?aZY>OCsHM9kbZ932?;#h~CpK(WCPP za=#EW;A1>@Cwp{@5*v_B=q(A7n=?lPLqZP#j-YG_UwK^P(G|UVKL~GEbTVI`DR`^| z%SVSJLqKP0(;0u;F9uIEX6izg)#?l}kv(qwq{FXlewV?gKJX%rgOO9a;8v`lgePgJ zicWU#3ja%m*|8-%W_@x(m%7BCErnxSb3Z99uJvJwOmDDmDnxaxz zRI8YA4IK*=))y$}TGTj_)Fs9EFN!zgr%&eK({8GJeRT0zo9kN-;dqO2XQy9cs4B{W z$5g(b$@~nFN16XpTq+6Yl)-F34G%TdK9bdi(eMlE@7N77*?8yx__sV{eS-J&S?YtsS|gHZB$v~eWN?S1aR1Xuo5Q;8EFifSc~(50Lx zLVIGzj_g%rbTkdgnHf(a`F*~?l?5$ zd5w&EMgAx% ziQL|IMRqqLzKA5pu0J$H5x`yT&EzI8bbpFmgs?Oq1O2z1+W5$d+EKP-1aG2@^GyEH z5<|}v6TKQdk%>k~#Wc2J^rwWE>lY0avU(=UhGnpM0?3{eo$zpINVErOmGc0-9Y>Io zvd(z4;|Ti@zbldCPj}Ig=3U$QbgeXdPiqhMe8{Fo3HF|;A=x8f{RWzODAbX#aYrzHf*3bRl-n@J z1_Vp5p3DZqZ#O1#YA$4|GBj`7=e;tgUR9&evUPs^q9%zxv7*B;1y#b{j9`KdE}o%x z_taK5pZLaF+%AuI&|N1IyD2qn?JE+drQmF8`3swg6@62OVXNz6QmRZ;cGy$2DzLPRjA_9 zxOslp?4`1O8G@fZ|J^A19KR&sBOHFmOMtOD5p$DU;FpN{sZLwZ%o)U6sk$bYTVN>K z@~IwYf6ts{36j3aexI&a>9QubYu0UJR5U$)skcSyQIlTSQ0eIzQHj4x;!&(#rfaJJ9iU8( zkNrA3{eIpY7rq!8&;u)NQI422Ozw-lDi9^V_*Xoo9Pd*1=+SqtE~CnOpcp0p1FePh zPCzvj1V17~oq*`lfE8_#3a)ibB2lzJe(^Fs`Xy8Z+dr=^?O*|F2yA_j%PaWj9MqC6 zC6zTKL1#%(Ul-FbC&x_tCh^OfgtxX{jrrvCn_zBAdrhE>lKjcsSC2K0kI!Sc%DXhOml3&PVZh zHn(qL^wlnE2if!_buWzwdk9bp4&)tmRgZH}G*dxCi*y z-5rMhnN=*7K*XJQgHxJ88R8+i((jvi!?Uu18IdUvcP>i3z&E%0`l{KB>OsW{XI^U* z@PYl3=)pc7Y(NGgKVXj<27sL&A(#|W$c(6bZE)e*!$pjV_x<|<-En24;DHv|+>;Yg zi69+uP^e^34kxD3pH=P-Ta<*Rg@zQ_%E(bwjAUkjOksErEjz&90~XYj^(s=LBiQH$ zE{cSfA$)g~=`NCVWZa#Md?ldhH=fj-jf7+^G1)pyiWSE!2|IacyOLUpq-1tT^K{(( zBo-2n@wn^Ux| zuL}mh&%yVP-B*Cm^DEECQ6Uts|2K%f{|$Th=Ldn``>1c%*9~EPQm4<`NvhuA?fW#L z2FgQJ?Q{UEg1_hC86O z3is=7FUKD(U9a;#DB^b5=X?0uSn%FH=87+T85c)juJ2@*QXGlnchjuQvk{l>{ouo| z6y^rC(H*Odu0!sYOxbl6R@?d62l|ry$-9N-5>v&gzi1l?gDqr0mtL|JSgK+OJuPj} zIS6o5ZO^p_m~iS1ME4kq0tYA)$Ey%C$p{*y1cd@h zZhaxqSom!RDsT{Xuj@u$@d)nKv>F+Vgjd?Wx&w4~a^)dDj_^RZ(Sq z9NABdgGKUrW(`R(03n1dO_9nFN(NpKvtAJCTG|aY$e02EJ;83IVB;3aeE?t^t7IKc zx}kTSss?D=D`Xv3wh5823aTDMm8@a7sZh3QT&9&Ka32=i*M?Khcq!<@pQXfX(1j9=v-MKay8x_9D-E zg&U;Tqc%G=f|)nJPv_N?n780n&ACnH5LZ^g5K{G~RSrMP;MJM@IMt$*$6#@xm)>r$ z%Z)X@a$t!QXp{KPv=d}X?RsSGR4cOPkG=Z^k+F!{H?IRD=SIx0FX$NvCxQX$1*>aG z_xPt!QRZ8NSbBL*!=EMf6;22~CsBd>SZXSruT@!&{4pbm-9YxfE~LMCp6io1F6KPr zK^8EtRb5274Q3m}v}jC{91W$+T4H+Yg2AAxH6RI9gR}uK$s(dSXG*RZMwu@pZDWZJ zLxWhMNYA%$Bk@}eZovVO?1zmOaVMc|ByG^{8L9N~Vk}ka#Ek6d3t6zt*%BGqab@#e zX8Ws6kBqUpqihrTdpi3Cgs5PMU?d&u1PToTLj0#bOd|b;+`3mAsjgle+(Z`omZtWP z2U~o>qabN%hr%Nlsb%wEXJ6z74NB=%sxs>d;J)_1$g~gWlLp~UJF!Ve#xT2o3he1* zmJO8m5fN9`Rup(<#LW&%ja>A8i${a1JW}uq zY#Mqqa6rQ-~{IbDU zik`eqy{zLH^KktHW;m-duglb_h?LbdxN=Q_sM_UE$3$wZa)M7SObJJQ#^eXp6lMAs z9$}V&7t4=p_8mFvJM$dpB7}1o;-5}7h7B;81?2_1yoIkBls1(2s0b+uQ`tj>kSIDL zFN%b?1|`if;|_ z(l$D9lig>*ZpAab*7V!D!>%KSPp!SSZd*j9hDsgj+2LH2$bCA_=}{Dmu3xOf*D*Dl zn!{;t12}`Nm}n;t$VZQvfXuIk(bRMr%1TNffit1kmUQ~VQVs>+^mPobH#+^UgJ3e1}Z?yPkt#fSe4dr-mcs_)9 z$K^Wgu3-@J`edy)+s$gJM|O`ywcF<&&A*4gJWSE*Z={>qwq#mUmA-!L8g}{lByamU zg__ID-R^#h_&iP_{5f$t=k&A6;1@eyVDrJ5r?0h$KX1^qVNEeR?_r9J zo1fSWKd~ z$u@tSU=T<88TnYn#O9)Sy@z4vWEQ$xMDLb)@fy(rWYDJ1Z|Bf zs+Dr%L_h9oC_=v`oE$2A0+j?7e zdQ4Q(Qwtc-4`>t&@pl0K0vQb%GD+0j6dQk_S+G0|F;`WdWs`TECRNp)M`xE&T5S?F zUB`6P#XsQZ&x=&LGz3vl!w{-m3pk9u!(y2nA;caNJhcIW#a zA@9X|*!TuH-oX`B{L3X9j;-}F30~YUwIIqeN{fLDv*X8Ze>XU}2n|&TYn>rN<6t@> zRI1=T#CJe7{FQ9T0NXPm5?iTH9Q&2OA}w6=yu62t9Nta|!jfmunJ7|v;*c1&i-TQF zB;YbnZg7ZI(0!E;93El>2dIL&-K`Me&Wu6xE+lY%BK^KBk{lQlz~zwy-|8KG2`&B; zG1bRMjEm%oUlmDBZYcQ@PPK=HS#Ga#-nFG%C{`6?Xm?5dDz+LD-b$*Rj*{O@4cx$oH97~}F z;pxsHPxH%Ty?d+sIjZ}V?M>;i{LAK#6ZdlJYp2gUF&=kydpC;V_oHiayPean^SXzx z1-wUoOtz!*WBJ!{j=cN#pRw&DkNw^0@Xt3(uWz#4?Qb`SpI`TqsCe7la_zS|hwb^j z2Ga66#}^i$@r*Zp-XB1^zYds=8FTZCS);DE+I#i&d3WaBuac6GCtEWJzuqoL{QX{& zi(f5+O!<8tUnsvXv*KQ_%8x^=7U-XrZkPSZ(yKT>lE1C@#QdH=^S%a+zqdu7bN2yj z*aCB76QhWfagAr|^UA~8>6~k0BVG)jP~+H|jEhJokH4r`T&QybgJ~KjMHAP_sW=B8 z!;|t95&xoY#t(9n#5fCO?g$HJQVFf*{+$o?q9(}RFAiS_EUU8E!&ey6K+8Oob0{I( zZLOk4vmN=HkTj1hsFDxGG)QVB00{V$;BvCT8N-vVdAck@r*nLHAn+~_ti|CaDFvvtA$uKH_O%C}9 zOIbvg6?12g2|j#~YntI(l5*C^Xw)4%SfonQL=!PHMaLjmMQ=2VS0j+tF#Au@lO)7^ zBpzaY=iEL_#x_dBGM2Lk*0Y80PQg35EzCWgZI77c19b9cmPXD6ECN^BWEasQQS9wn zDCsPiTQiz=HY(nR$`##Obtz*_fHSHYK- zPy}9;p|(+uW9yX}-1_hZhqGXFCiacg+TfNpsJMhWJROk}IA_2UjQ+9bOV~>B;65fR zJ5^6mJPl{x#IS7(h?b(kkhQY9->{&=VA{Ycm_8B3ro*b&XwMkzdo(GrvpVH0Bl#IK z59pciy%PY>ory~}Q!`ENwKzKd=02Brs!h#Ek){zgJ3sG}T=_0cuQqFC2q=%lG`FRv z#~C`2;cQbYUx+-TY?l|@D4?t2mAzni&3Y7odWIrZg_?!La3{7>_jgaAXr_?u;dvKgP z+ILdB(?%5S6HCPg;@Z&GOk>QK{Fuc%;*-}=1<3PnW$+aX`N5IAiLV<(=8Qzv#nCUv zcay6}MsqOGwk!dHS!{EZXhwjGzx*UZ8g@Z#>$!>ZR>_A)GKk#qDm8fFA(bzwc#58+ z*vA*2;4bZntiSSIc>^a1{r@4-!PvSER4<@w=AbkIc^t>t$$bWrYEbMyvLG&CeF&a? zoG+A~Y5^bI)vF(9JiLD5eE~#5n^!9)*8`kh9NHgEHGq0B$rv6&iYDx#iy4kmF$}Yj zariQwCo12G;CMSI*2$`n22Ye(YT}BKpb#azM5qsBHH}@}!+<|4uz6D61FBQx58lfD zQewx&2Eti6w=@pK9jn0U?w1FBh6d>08DRUQ&Hq3}aby3#K3Z%mkZ}N@ zn*seBSP)UA5jii1rT2wB+Cpkr^?5Ot-Y8SbyGimTb4P*+fKo}jB#nZ&2XYGkkY%I6 z2E|CCU5e@!Fhi?*Q1yWV!Wo!gblTYjm8)&;MDG_i$PzZtQ4LhYeSw!v-Ya(IQ+9M< zyoXZ z5BqxL@M;hymciZebcItr_K{^Zvv2iP*o#i|Kr~Z1^-5f>js=DU(PRjYX2PkkSY}M3 zGpvhL9x~F$a`gF6Cx7B>AZcpa8>inMa=A6#0;@Y}PBy?+n#l7I0iC1Kd2h{@eM*0K zB$Uo3yM15`IG^3(m6fD^&E$AOeO$G@H&y7~>T*uGY_EGf6m#C7jzM;h;dHe@venH$ zeGi4_f1uAX ze>;&CN7OZX*@1XVn`UZoiM$Oq&){|mgLB_9zP!kyCukQOo*~!$6p@*jm|tV-nHga1 zM`L+gVEZ}jaY~v`|5mP-hL4V(pIee;`hT)O5 zWpZ=r9}@}5(g0@V!P2P{Rqze8jIgepWzPE1%DBd_E<&k0{%6Pkz933prX^+QG*6WtW=z+upl|P zf&w~c4WzdrD=P@E+oJffyhg9HOKYqX?z$-cg{K1Pt%o_-iLP&4I{o@)2BBDx1TK6* zYo67NPf7YUtE`cs&UBZqzIr)d!FP6w1&I*`X2#W{IuJNu zjo!?MB&90~I(qVP*mVy^RQXoT7yn!b9!}x!5l*oFw)H}I*-55$zwCroQ?2&5lXE;1 z50~hvE)q)hxEhxa^7?y$|1QqmiJZ?nv5M5)3>bhzqw2DHhA>fd zUd9|tTipLK%yO*Q`Ud|-qvhPW2>-c;gfiM5W3_X>+x#Hu&?XwMRu0MG`$Z88?2zjmCU})LY|#-Qhq@cU_w`tG9`!4uh09Bj?$vlO zkC*?ott1!R4^pv<>0Fnq$adeMZy1{1hAdmat{sT~YhdhjXCw(tF~KsgD^bh1j*NPog?Df4v$XUT9n<#pH3cX-I9yI^y)T zL5|so5vdo+=4Fx=55%-5!i!7{_V6$a1t3+;Y_H46>Y;D@yG3pL-!hdl;+IfUMTD!X zakj6FX>-WevCog+yW8Ci|461stZT=s1;wpy&s_UF{=Mcr-n~L3!kgaDET8W|?~mQp zcAv+evC`N0^y~S!{3F77b?(+NlD_{~p1xlnR$SHH=;wIH^A05A4-9B8;2U+#-!@f0 z+|0==Fjx;*e!U7_|2PT`&)(E1XyOb`lefD+P9wV6JSI|3FT?vOgQ?d4SXUwZ?*4Dy zI9&U|KntqawaRkyaN$<%NUoX1xi00l&^6jtg}FgX^jnIyFr4KiJ1XByLqs?Ouh(+w z1;BOINVwao2W}3nK-rF(ej3ZYi6)i^7iq#V;D`ubpy-;si5Gfr|Q%bs!lMSv{Y$PD9co5Zg8|x<|%7 zXwFxG(u+98v7d1c$Fx9UyI@H-%q&uo%9A9{bvciE>6Euf@d~{71tl?`yo)@fWzWC} zmaS;fV$@cm$h0MMYt)PzkZFNemTy`V*>^-==jzbL9T+)fBehmHS`kH7#v9b|kJHEr zG$Fjb5V{_Kb`_*y7Ro$>=@?G|lJN8rzV>H^8zp^5$RG&0?8+@9SnqR}sA@j31vQs! zxw&MK=E|$4N^Y^&lj8QU*QD8s<{~!Vi#2KO7XGYM$ueEi=tKi1iAow%~x;gr{G8vVCtNkC=-H7$1|`Jn`L_1xTA zlGL!rFIzOtXxn5K*ShT4!dICbMw2%ilKNxVQ?1BCv)}OvG5BF|X7lZ-!s9Nis-GYW z2qE#B6hc`gVDrBY7A3hnisE0lh)c3kqLIR8m9FF*6CpZ90^#vv{+RNGgvAJssi_{s zde1bGN_}!oV*NAQ|ix-DCao`m&$@^gvKs7z= z`F+lm>&MsM8#PEh$8a05Ek70#S+Izm7%q~K{F14{Br*U~ z9sh2!R)TpBpt?WykpnxlJwfWPDSFj`=et~l&gf-~*9`UU0=9=s@R#70vTiW!00+d7 z4>5ukUa^5Yft8HXa3Lx}k7}Z@DT)6i%6W(%eAR4$D2B>TCai5dV+I6i1D4^0KUGGj znMW*q;bl1!jsHYYqne@1^=Jf_A-*wVN7Y_xqXSD(WUFNWPjTBq&bOXx%8{o=c2j(< zLR3H$d*M*(s1ANwSUJ*bAv#-zs#QJO9!LT*sg^F*8EHKBOBfO&B+g@3`*`AOW;1<| zP*BCD|J?0+WE$Z+H&6QuyxIqkITaLH1-DlE6;ivi$r!&2sU6;UBgz%wjE}Pjhh&6> zq+l^OQIpA0gm3^6P9Zgm$*cJ1psPvEA`3m;NKQSS{a1)764yIhDF((GC4Pa1yml;M z5Y7?5Ge`1U=l5bIb3qit%f~9!H*NaXgc*B%#&`Yy?~}cUwC@%)45(U$g%4q}^!n+T zHhEZQ-y$~jD;hR+zN*TvXh97f3kq_v&%S&n{mIBm-4&8;3@Bm+RBXyPJYpE0n*p;XFdbWvc@o&% zgaI2ApgMd6j?Xnz^eR$jshA1fd~47Gef^*DP%kyZCXA5=ILlQPj_)7v(#i;maiw5l_W+h5@&Y=MVJRg{F7dIrpU}+Pos;FNS7u z+eRll5JO87(dKVvHe#Op-x<7 z?mQAjm43_kXgSg;e#T<66O=d=c3y62r+diOEDYo@B~EU7NwIUl*Dg-myEqPRPC;XP z-oGO^@po-54cvkCLB9@d@&lC=RR079@24yCb3)}$>?08GAF|!2_C9fMhhlh5H#)GB zCzhL|PBb)2B{(BX0;xR52c6SX64~QDAva-ic7OOMy>Du*_5983fnV7gKh&s#4@1M7 z&haUA@8C*I*aW@4l5N6e@ejgaFx*~a?A6&U~jCe^MIiFO+7 z|C8fxx!Riq0gzw{)41`|ey0D4nb9Ze%pCy4mgq=<0O4>VKP8S{Ix*(6l9t z)@DG24V9eW;2RkjrGA}KK$c===xLZ)c*r1CzYmq*=x7wWTcy5+T2dZiwmwf$@xJaY zC%ej_YR&=M=|hSRR4`L9Gqm)ItK8Fx?6=3iFVnPFuZepWbo&T-7-e`>uupgD-Txc1 zGx7~y(<`!aK4;F!n@9J!8%_H z+7#`sjFHtYgV>0{2mLY80o|*8fa{;50_SkW59;y2KSa?uUt1W%rXS$`OAu5~t5*%? z2p7>$M~zb5uN7MCspIrUr z#Y#5;-McR|U-ZpgBRNT5VBMXKQ-PR|i*cZRu3m9rYrx2F5|&`DifL7ac%oP>BRP?T zu(dI4BPA7T@F5+ZmBHZh@Kc;CVG`G3HkOFRSzN*`t{{~?ab;a5wv@6r|9TTttUJ^c z`WSQ;mRUi7Iu6Y4mCyIBYp(xY$PYt^y0^i}t2&esDxO;6Jra#{aCtubdd?y5`7~=R z9F$D|z;?em9QQh(CeP(m+@aeRfr z?|uBM`}O9Rez$vgHNR(H={5hsy8QOuV0)V9?Urtr?-P^%%N-cMzYFj<&i?-4mLa#x zH^=@5RjL;7>KRAMbvV4B;qUT}74Un*)c1Y7)BoUo&AYdUnBP~=bG+~0zBv~79v}XC zp8f2|+_1x>rJYxsafD->uQL--u6-wxKU%4;C{*x_%>g6J|VCIFEKqHlP5KlOfF^D8vlTjzF z+mtAKBJ0$Wa_a<@EntCQ2t;>>RG7n&(R4>{os>$XJrGTkiYSjq)5j6CX@%_OG!LpD z7)Y~<7)e6OJp7sOaMW>v@M{4MZV4p{bRW~cYOko#_-2b<{z%@6W$c7Nz%+FDqzbvI&(uHjH{0NhIDI50WTHplYN{pYUQ3+oVZ;ELB=c6V=rWWIyMSm1m+#(W@lm~Yu8-=gJn5m5yzIOp71Jq*+r1YK#*msfq4tGB!{*ME zo3=uAHQr^F6;oKllQ7EVL6NLdaSxr_A}%dd7*Q#Y?B&LhhC5wI_EOTmlJz%-*6p`y z!vdo@b0c$?5ERN{!HKC-kpW_N;frp2vdQB4p~t~V*ffdh8VRekGGvk)H;A!I%*DV= zu#@r)2fTW+DVJ-hRbx7SxY1ButJgTyN8~!sn#e;aIQ%9w%w^G39*v;ea2R0|p4*Go zj%8cJMEQDb(lEz0$g=up57~Z{wX16t+A);*A;L@>D`COISa?|gsTq@^CpKG)K9;3^ z&*@8>7^&#KFo_9W4uAWXnZ#-#YsL;r3JKB>uRH5SjuBrOzE)yIdMqR{oe3w?PCn86 z(~*uhplLJZfrjf0(ma`g-2#9Q#BCPev;@`+{O8(@R%d73U`*O^H{l@9FDSkX()LzS z8?_#2{H6!Go&$Y~LR#KT=Fb)oz^CUl_9U zwyM_L{{>No)Sa}-!6@zc{A28h>SN*Tx<-CQzAuCbIM4h9X=hwMZH*mzJ@jk-zxM?& z>{D?xH29kl4$_i&7};P5l+LLE1eo|_TxDJY(NCM-LXO@*8IJrqwVv1gT6%iO*`}MI69J-A`4@I#}L->fG##o)6J+kk$uqV|4e?qE$d-QzQcwo|5p^<>(i`9 zRn7a{8Gn6z@78|%x)43seoinwvkvf#;BXW}H1T^wOJn5&pL=?T|MMmiF+r*F08b~0 zsR7_0MVJSGwO2M7UYU)#CE0d#`9oD-t`DYy@i-u_k*KaD>L1B^$E2?q0IZ}dEUMk9 zNQNR8T=egvOpA(m(2z~SNLO+$=FrJ;&65>DNm)J;LZfcxC1@%c3;&R(Jv@*@dTHa} zSr)f8MknNBLcZhuwWl7G+>x1{A;x0N+h1B#9!b&D;MUyz38XSm!GXCLWUV=Gy@9CKQg z-P7j+Ph0mN=yT0ZW=z|#rkQHIfTPCt%q}pGW#l|ejfBp7x=CHhUDhe;#t1c6w7r;CmcCO1^0Yli+o z`Ot9D(3$DHi4D-DIDB)%PfmnR2A??uGEP*ON+6@R&TsWtbX=u|* zuCx&a2=5qM57TOdYCLY^GpvwKPKE6ex0|QoCF#i4aBS%WR5*JGOkt*2BZwotFAYyR z$D}aQWXRneN^%yew4e{rJLY;|l(bMmY|p56Y;jiJR+KHBlHp-x&l2N*%18qAyrvpo zah%e@wfAa<`=@c8X#$}B2*0|V8XRdJ5M>=Mm%zfPjhHzz%JF;swmrFuOCrVPa0NxY!>*v%U7;&05o$3Vyf}x!%XO(f|nl$kptOTF} zT3kCVZeBb&FKB_|9a67s{vabO1d?jD9?>2iu86TdhwEiZgej>T-ev#FY{>Fc#}LT8 zZaVh$z=W9q2&%|k6sqK+l*jo3^iTd{?A8@&A85|0WvpotU2Mk&@&F;F$$&Q+9)l>x zkRbVzrx1b8kBH#%`UP~eGm^(Vecr<;`E4>Wyos0?Prv(H->$a@CS8U`{OpT;_dNcC z<~;tRLaJxYyu2BXs_xH=U;4bhBaQc^9?w@|U4C9sSVSFz=0u&70C~H+ck}Dp!*F-c z+g%=?_eJNghdr1d$og0SUFMv(JhYtX=EoI_6NGiwQrzvf4{!)gh+}wd8d~1+g9Lao+jYw89F7ZJer1cUNwhhCi`8{FoB)DlHr3g}g z&&mge2DxC$>HqNcPSKIJVfW|Tv27<6Rcxzc+qP||W83MVV<#PSjE>EUZQJgtZ|0kW zS^u@>@O}=SgIe{hweRcN`?sZ10V2s~aXec%GP#0h9Q;LY-ORTSqz z)}$%pQXbLI#YvS%AloS>Q>~J$TE1i_U^08 zWey2GA9I(iWqm=kC(>Yox2~|J4tuWrfHw@bShRWqrP>;)l#dZOSigJlCrphMP3+u0 zMhG$zgfE;ua}upDnRqzQMWW;wp3^AFsG-on@l?*@)0{EXR6ChlQR+t?y9-!-lYDxp z6zDiAw$4T=w&Km$I)us@8L%daFLB|?>F8sL(M>Z?e@V)sF}7z+oyGw!p0;o-%it3t zSzQ{V%dzXkJxZ{zVt@B)&uwTh=7UX7(`;AOVxSaQ4Ox)1sygzgEx08s9tpk?Mf5NB z1julU=G**G?u89aY=&F6<$(iEMCLE-XI#BoqGETz5@@-l3U7vGvg zK+83Vd%~n}5*Ist#GDb|R=fSBFopeoS+`q5|W4VQYy(&+<4McFv~OQ1A7VRm&Co2!b(5VG?<$v17sbbxL`+$x_+i|(vRsF zjQK?YiC_ygh_#A2dl6H%4q0#OH@T0*62BJBvK<_7SKDQJZ}v3Nx|eGbQ!<`^A;Fp7 ze&k)2y@%IInh1eN#3sK=?E_uiX5f7y;uXohyP06Ub~$?GR#>Jt`Zq2mTZc;Fu*IE& zXKry{cA^co77@c1hsxWMLsa*r-dNxN7Yq|`L-S0vk>j`5Ty!$Aps2( zf|h62rD;JtYd!wOPJvg~boIOE-CA%rE#N>M>uqlF|>^;l88gq3_( zaTJ31HYsO^fo)J&TSU~6){)IESG=q(`tnA-gB&>%qo6?4+m`6=Mg+r+jn=NF+{rfN z^w8o>GIES|dT4YmBYfYAw#JU4vjmPb9wEqq5N0*KWwBx4K^N7`Q4yV>cUQ`e5^e*X7i z&B7PF-SRyk0Gwyy@w?}Tt2vz+nVDZAxY0PVcDrOR6+-L2(b$|5zJKF+Mq&}@p1gUW z_{0PY9|d-f_R*aeiemN&UlxP)Sw$%`Vz)!|joPHUSA7&CqVfGr9OPnrIspUwl}0z= z`b$=m*kn%Xx}LTZm}_^ImB&cW=5*z_Q0cnF(oW`tpsyI2Rmm&GNA3-&+#@;iy`%F%g|c;N+ErEd^RO=-D6cq;BuSSdXk!*#RimToTX zwz1z&X=Y~^;px@5nvPp5e(z?Nz@d#zSi(X$T;ZUa?m=yzxAR9r3JV@lBYaq`<@Wa@ zg}OZcky`+bHDT7mfHQ713?eG=sHO>(s>|OgRCeN|rBFwFE(+{~J>y);?{CLvU+)*) zB`ba}MMw$8hd1zb8(lLm8wderP0ddUv%-Hwo==GOW9^U>80Ul=q-Rzj_T?hM#`BEq zP^m0^p~=~e@532Oc-h$&4wq=pBm#TG#Y#Nh7er0vTa=|`1^pQ&6qu^od~M?=9~k`d zwXg4t{4br$?yFOYt%SERg^+rT0xOo6!QC84Zp_%!B(6yMAHUIIPy3qdI34KW`zGoC zqp?7muHs=B(tT>9W4T8h(j*CQs{2+evjAzWr$bryT}JzS12m3DbTIc;?}DhfB)lw% zQyG--hXV;#gJamxHkT9L*ZL9zEi#r3hsLMG5St=?yq}&2-phhxD;Qolj-sj<4SHy= zG(ik6DXN+RrjQ!u-wiEw#&NWC-0;dU79pzM*2+Ja_xNX1`xadGNXW3tsi?SHiE7v5 z7jtZ8;ok2$J`i;6RDz7~>NwR=NSI`<>?MsXSr1t7<76}t0`cC?zG<;iQoLb}K$vHw9SozD-2rqjNB@|06B(WrR(FQfhyzKx+lL2@1vxdM ztu-Vk|481JA3wirdNHfSZnnGFM)wBZqt6KY;bu=prWe8l{sU{6e|LZkE!>J}xm{*v z;e*7P?c@6yAu{c~vDfhLV9T`-b3wP9uP()=NBGCrz0}8U?6c4PICKnX@8zi&*8krg zJgHE-m~3vwP@(46%N}cQz%9C$qmiXc%}=mxD0bWbE2}Y zQVeU!c&73~o{Z`In$tX?RhEcFKb;xcr%bRsB$M^AMHHJdx)Sh;3GlC04%={|} zB0A#ZkW{QconUJL>*iD%ux@%*vzR@mN8m2!KaUsp^H)h3X34Em=tn z4L#rLWF9Gb45Z}?v)TlLDA)p`#?_Q(3FIULI8?$B1k;o%Rn!)+#cZ6A76)Y1ktmht z!4!TGB5cTL4#hGxb{wTkb0UX{u?HeqvlnR;fK;P3UR+@jZ(P-pwroxao;I!Jmpi}? z*N?}$C%x1SSsvV<`{9iOIJd!ShPTN>Df8luC|oo@^Mx1%;(%}7a+blkyb_{ph##Xs zT($tZg5YfFak_3`JZG5xo;k~Ujls6o=cvV3;q)*0T7$mE8?W^9v`G+G_V~Tu3@6k^_g*GrNNK3Hc zBF{ENVa_aB#qAukp4ir(vL~jx#$;W=S2QSOQ{Q89p<^sNA4ZdZ+X)B!Be8iF(zO{; z6RpgZkJR|_D?VhEWdYf7h4QkG!x6P#)bHb5|JLb_%#2!Jcs`5mFwtkw(0}3r?!tx4 zbR#29BRKHCx#E5-lW^!17`xp0r`=?y2)`6`woA{5$Xu6LU*w;025@rnKw*p!sc24_ z{jW4qgg){B)M!AD_0P@Qgq4{Edor=jFWN>%m4!}>*`o-lV9xhYuO_2Ec?K!V4RISI zo-^Dm^Nu52b9k7ShN|TY;*WC9u`97sCx%^jQ)pN}!Fw*k8BzL;`=?zk%edy@xDqZ{ z%VQ38EFLw`rL4+N&X|%*>$|7a6-P1kP<-S_j%E_X;;*cn8XG4f%x7c#mb?hFLU)5` zYMXw;HrXU6xWqS-qSJJHJ^^!OMF} zp&v%X&t@5P82NFpPLup3ehKs5xp0bX|C^hK1M>lDsr>*wU4FQ)bA6etYi_Y{4UP|G z+zoTsB5t16-IZ|-#gzQV&W0gqU6qoAVI^apMof{nu3-^dFrM>YEnxPKt0S!L5EdS$Eea#Oh{b*C;rua2E<>U#v%Eu9;R-xw}~<4o$1gr7K`@me|C>M zTkj(pfJb!{8;4(%I8=LQ$K!^@n=AZ!W{wW=mFegzeWEe!SPPjIl?)ikKaZs2mLgtg zl_1O=Uwrt{Yab$v9TQ2Jfg}IV}7` zLs@5g*bGVj9_W3<+tn=oTBv(WxiTYrOI9?s$OgRI8hPNQUYeN`>h0^BPohBKfUxh+|{^_1?l$9lBpx22{ogR!X7&C?YeJc zN(nXIBL>~Cuz-Z1Gj@^3oBl>Kd>;t^tGhFCQS6*ZI56a1%P~oBGo*6bjS=jDAquM$ ziD;;X0^kZ0eL%22-~2QAm{kgmWl%@0AokaI(`+kl6-FTusu(D0cRl~6F5`hbwlfU zS+(F_nY4~MPTI%0+_4NygOb|d{N~vqfU?Ohp6%iEG{d7apdw9ekPfzDfDEmUjB1EQ zS(=p{?F_0U@qv6&J(ZnVxESaCTn+_G%t81mtRFOAoh!1o`j;!(r#w6*L$KIo%E zj$soF+N6vY7Ioo!DYX3`3Oa=JyR+_u>FJeF-gvjSr50Z=Ltvi`H?zun$K8<)aaLfJ zll;UXMaEn8>wr}2>t`%#7Jr+Fp(tEXz^hQu*Ij_n=LIAOg%;D)^X+B%v-j(VnCV_| z#c0$HYC-oDX@1b(()(i>6s@~Wspr@ISTCRF%XKK=ClANUWI>Pj&ug&vXAIMhGLqK& z>i}mv==B?OL6E4VErrxD|I0)s>BmnZP^<78aF;BQg>yQ%lJ)r9nBYQM{Cg4Hp3=}NmQ%3Dc zWBB?j&Z0|-XmZcKq^sV|DhXvun`!dzdME?<+e)~@FP5BL*NS9n5yeu;=R?5*96FUS zj$vY#68d>-ZvXx~bST|@Qh<2+L9LVWITk5+N{FIZjS=qK+k9o^DSm~jaM)aBJU<~O zO@~C$Nf$F21Gjg-aG*Ytq(v%cqlduz$a=6qlcb9t&m|WF4vA&1At>b1thpOe%u9%u zMBSkN9+t9{wQeLNuN3WP^N$)$$4I89rW_#jX#7v1>OY4%`Ry;1i8}z>Ou>ylE2{+E zp4>u-W_XG+hPZnMsY^RX5#msZCT!{^mV&PXn3_SLS``Y`WR&GpVdH(?<8P)il`2V# zXo`w%c(0ecSmzHUVhsxl)bl-Q;xm2fvizZy_OT_>N3^% zljFK(QDztr!&Wm^!tqpDfL0%pL;!BkX-7_U*&^~bpIp~C5i7z_0Sy;0)~Nf1=Kkx%+Wh+qy(gUssyQb5LSsMIQGTw_dayKsrxYJ!<4X1* ziZJ>fg;uZjmX3R%X_82znm(bj(`ANrKydEA>mSRf=YOQoKKYhx{9LAlMNT_#o*~%x z-VU4d<%fZ0q%NPPMQc!#lM(EEXg>rtuWVx003 z>v=w*?r%PM%5+UhY<~o#eY*vyiUW^U-g|?|R-qF8F`r=nVSKNHpVomz!^t9JY@sY% z3r-SXe~LDeP_t2d`hh64W+0xiil$>FXMFo@O$&3B@S*%r8?Lr|z$I!mTHzoN!#Awi z5UFsl4WZs&PUw@Hr_3(FzvN%*_0R3ETO)xMFdfK}J!rx{DZDb8ZqF_q&?bc@H zeY63`=dK#E(*=EEHSllT^0VW9ydeK-ixsz`VMZFqV2T!j)UV;lENjk&(^E`kiWlB>>x=(G!e(^Pipsma5eT{DI$W)@a~!O;~sK(Sa{yn^fFQvfvzafzK{aM*&l zJmXY!Eb8Iv0B4V{f7%RFJbJyWMOD2fYH6>(e~4A0()~O0m8)lAdSk9Q0zrqhj)2Vl z0X&YPfz|GXfu-W6<=G48Fqb2X^9_arh~~kjfLCVZ0vNz|tO(+$1O@6F-^^0IX-=~@ zx}?tyXl3*G<_#?8|Mq-!IGPch73S*lO-LByT#GoezAPvSG7Wy}fzRQKJi*H{cDBur zs3V~x$T=k-D);h^$uD%_dxJT>JTdPfk0sKl zzuG>NwEUE1YJ45uP)$0m8XvebyQ&rbR~QPnK^L{mVDKB<2c%1Cg)@eX3%U%jrfS(v zV2}Oob!chx*-C?aJ4bj=z?osiyy_<{CDKso%VFvSi9QMfF8Cfla>wqt(R$L z1G(_F)A;nKXIAH{S)rW{|M^ZcGqvKDwjbT&EJ(4We@H1lv>XDp9S00w%q{)yJrR0x zM!d6gMt}&bl`ZI=RdCI^hx@M3fD5}rhTJbtHZZ6${>=})MKsS!w`SSzL>*9f$6_Cl z_Ga1AR4;lx@RU&n7q58G$FH=?6Oi0D2Hhc9W=)z?((V+uH3lu2i2@RCn*Mu1-XUd) zpQUSQ{|X0)B~))kofmHZ^{jL*Nk>y&?(_DFNWHAo)Yj6Mhblax{A-pw-tMi;n$W1f zUv5mvGwbHx%c5f7!6o*X4i0t0v>Z7aYgfW>TK3u@C##Ep39jYNnn>Nnm-ezGW=IkvA(jEcMVqd%0*UAfZ~hXMpPUhd%L z)Q}3eBSsB!bHEq;qRjm)cF~~PE0Y=Ir_66|)E&;qfS;AT8&AmV>N!XDB)l3}ogfIF zLbnpHBC(`HKKPVH@t@^XMF#}UIxJ47vCigbSZQk#pa^44yXjq zvT^E8^}n&8 `Kb^#}~SlQPlqlOblm6^?5)m-H$;Nfm4$Vbxwn1>4*QmOgmh~mE!>LBmi zZy@@6ahXl9YEgQbn0WSiJ5}SLz^!9^y6v1Hz1drZ6(1Q=CMuuj&ii*W1gqcWosC9{ z3l13w27ul^X`bh#yRz-*c6)ohCyjc(asg7Ba8K?>uj|||`?07#uZQJfFfc6JhLu4D zL5Nvjtw&(6tkw)_qpwNSB4PkT!KKNSH{rx_hYlZTY`h)Zm%7aE(;RjiZ~vAFs=%L{ z<-=8cHx)2|-LEJ>DDxGF${908c*ibjh6Ca$tML3HtCa{b%BA|w>j-7hiJ8Jk#-p~3 z@>J5sm{znzhOiC+ypELDo5wzXBOj&k89CMw%+{ zrzq+HG4nm(s^bB;v5b>GcjGeDU>gd5z~wE;QYx)Dtwm;QV76%-9(H0YGez4kOkWY1%UQ3X@& z7a65NoPg#JfpL6?2vSyF)uN_PIE4q%Dpml;aQ2BkX-KNz+=(ImVrmq_=1mcI4i>6< z^i`OZ9Q@QBHIIV0d4Ae2B&X(f)gr_LN-d~UY!Vp>1XWq}gR@|FsMlJV1CF6H!F4|6 zJoQTQDrI?BiyhRn#PRVMT1b!KAU7~4ontm;gm&rM zA}>YIdo#N%m53JkZ=)K^oGC*ZS9w0}E`B2l|4=L8Eqt6_Ab~eMkVG(RMWofAC1dzw z+GSP(w!R%@_)?qI6^+e8>bwUjTiNFgeJgd%Ncdk} znwn6g-wA86R)r`p9Z9S>)0L>@E8b2~)9kBoP4;LdIy*_`AqFwfhEz;Y9?|fQ>8AKL zaaIY~K5i!3l9vOF6G#d_A*0zH;lP>m`Lo<*YFa(wBz3(#9pea#SwbGae<6j2xcU@^ zL*&Q*g_w#VXoe;&t)Oq5DGuC9cOl55;p)wD0?hoGhze!{4igYK(rLfa1U{Nl72fq8cnT^yU%F zq=-Iu84$Yq&vDGJQmCwKS0An~55@m!sQiC}?m=t+r|9|F#`k;3n^{lc>8@jr$uo=a zrYW!fwquUOaJ4tj=xTdN*nYKN_v323+@17 zvkAy9lRFsx8qb@KF{Z#q2SgYYOSlgMblKeGirgeve)1%~y}jeeNYT*h{={V@uiYb> z@3c7kCpOXL1<;P700FAuu%UJgoJ%oVSG0Eg?+4};K;Tn3*=Bf^06Km$31!5pN-mI! zcfO#4j5NjUBRVk!9g_+`sU5bl4P7}19X^>l9Kl8{34>2eP*h!=Su!b4k*XS{I3fNs zS5ig+@LbR}VP)jscW+g2`x-mr^K_xs<9~~tx!tAUp~QXZc264u$zyCPZ7)w&uxYeE z(VB2GRSO-1nb!4rhZ=hhuC{V@gFo15is_fW|K^A zT5$&c4bK|J=fEX;!7#SkE&f_UfrUQXywKHYwU7d8B3vVUXwLZD9$!pIcD=x_H&4TW zPh>+s2gG{&)jnY-_MJy=Pcm1QUFDvf$VED#ljtK*KAxi%jA|*i>tAzW;dQJ2dQUy$ z9m>8*G1zEqo;MidU8X)++L6&QSavO=4N3xiO7gbRfrl%bP3OYDO5gpgNNJSvtPW3P zI%q5(X>0;J%!J>G1z4WbP7CWx%MskX@SnB_a)-XJ_@4I|2B&8dNktRj%KXP9#I_Mo z@-ntKSYm#6)1Aoc`9%lG*ZVLF6@b~~9BI~&TpI6tZ5=naoY81Lqh2FjNiB19T4rN@As15<70n}D-Swh)A11e*e9X?a{S2} z)N3IO{yZXsyd7wQ%0m~Nh;~N!R>CoZ8QNfRcFwk84dEtv@j8k4%Bp`v%NnA>%BSv zNk#%KD=w9egx`nZDTas0{R~BdVJXn$?VE&FxZ@5BikAhF;+L+zJ0NCHxhpgk%(dJh z1MOACiIxzWBFPLelAXe8M6qEgdGPE{RGVjJG)(%twcjN#~7mi zE-!~HSUdIi8_b1y|3bQ<;8h8&UrB3Q_>Y1D`+yqyH;4Lnl|Z;#8H&cDJiKa@LIF8R zFFm1MSKOW;-`L)-BeVRVCv@FPLMzKPa0Os?I|u{Z>n&>BYG1!`>BVm%)pkVX4umGbJhRtAJ`Lu%7TU9wT5!P|lUnZn?K z&vmyOX?p#Sh8X#;^-QPROedk^n`8@hMa?e%V}-AWLn;5)J9Y>S*Ninfu(rDXngZ{e zhXOU3k=$-J$mp$nwfQ#doD`Y!PR-t|88Hc|CJX9}?EycRDrs}d0MlDx#%dD}FA2E(wR6k-*sp24)2A{j4gT2T0nJ!)eWr}<)~G*hPP z5}~4s70)e|>RrwN@G_yylP9@xOS%dc(;82%)RH#(Zi|QR9ka4vvane=x+vcpqZ;xi z+EpZbFPhIFjA0si8!qzSx3bzBl!hUiNsg!Y7>%Nz|91MHDqTOEB4)AT9T;FMEz-pg zFF|K|e;{rp7d452j&U5rB_pEVQvb#2o_{*aL9Vi@+RPj1%R-z*M@Fj=#x;^TD^J?r z6!6$%Z-B{HEtGo^A>DWekgkKH?i5Pt%D_V4-ve65(iAI#*I=~x9wt~`)TirnK8y`m zp5n>t1d5t!XwaL<>L@g7OZ6b%!8w*>$wz4h?0{q}Zs-&vLTMK>w9k9!xY~5~faVy9 z0JDythwKjWM2x0S;?QbR2zUlcrhC#D19s8!_LS@m`Qx+ll*kHS%}CH7KaSw5P!o>l z7qy&AS-0e<26V;&Kq{ zXOV2fU)d(uZGHZ<(ge!K(Io5+W1`=L7TN4NAPm=|?n+^N$;)W6JIw_iYCU6&4#I5= zyN&rcWlp{n9y02(2~3N2#NnJx+UgB>2e)6|Q;{_~PR-p+2es0pxtIXvreWaLf5+V(ye<3ux>>EoMRf!|GXS_G^`&ZGXNBRD{%E!i;E~{5_zPe;;cd9!CX+3$VhMA zYR6~}NEfJ~2_8ht^72CUs%vncj6#`od*U@~tCA~VSuHe^Mm9~P-TE1o9 ztBUf4SrcpmjS%|<*TYJDy{7fY#IV{?*LS*UQy5f^*U0HS{!$O&HC23GWL_U+a`l?W zf|zedTgiVbM7edKHwtK_oGoxXVmlwtAtY`KPByS_=5`58>XGIj9qCE6zu(Ym)y*g` zph@}{l6GTCOgb#Emh%^W9U&D6b&hu?D!RRWP#!bQI6p2?a9`KDeC)w>SK~hz#T9?* zLpcIryi2msw~r<650%Fgpzbe*tp5M>4+6^X2}@GFIOLbPbG?_Jl+nDZe(?=i3+v1_KkQgy-szDl|cEq-3|(n zZVQitI?q4e_RqWCZv=oq_=5~?P`%yvMB-A%1C~ExQr3j)zbrmjJOJnFPxZ3`K5YAt zlVjeMJF~N2EhZo+G`B-( zvlZI?Bsv-Hn)@*T&W88P5JlCNBiYrH8iMA1*z17)=veL( z!U7ZfK#3q;fhLjVS)PHW2_yy*3;RP_F_4@)vXaU+@8HY0i{$Y#K3<;X?hedEB-hK% zKw{g!KHLYT$vGjO;nnKaC}u~|UooOY`SMeLiQe;uKK7a1zFZ=K!kZ?8N-g+z&+Bn7 zL5}Z*jGxczlP~YYM<1U|^nuMIIm?WKE9V#GupmncY{@MI6z@@%J7r^f_z_K_1X>2< z=O5bo9tk%8z8tGAl5ZTlzkkbI8R(mjV2vee!P{~*p z;@7IYivR)1FZ?^ZCZe(-A!QwuA!Z-HTe!u`+$HE*sHr96GT#j`LN{hB3|ug?cga2a z6pTYftV86Fr!oZRGwBvY@z?Y_JT>|>q!hn z4$a46N0wijP~?MN+rf`K)$f*%mA=IK+!qcoGaLnvmHr`&&UGJeL|>6|ko-@sYq3(x zZ<5H#^gx+2PwiEnn9<_M8`vESd|;xQ|C1|yZHoYoAmML~mIn!DXS92Fpq8n!V@rBw zhJ^$|ON7ea`9dg{@}sF7h)IU#pc&Zl$%$xZz`BG}>>&(M;=HSE;49d8A)WrQHH|$; zbC*ypx~F=!t~`;O9XJ{Pf6b>;;Zh=m5luu|_| zQ#VVffQXV4T~M94g&Y_Fu$%*4c~J|OrCtkDlgPuDk}m`WfSBgaXx3C{>nlrCybh4hNDCTA;zs zs!eSK9|eLtf`vCsC~O0jW^n%oXWsNlp{XPaHha6u#9p>;#`H<<{v$&kqlq_fa>FBs zQ>fdk6I&3F_uLZ;-dYyL6%&$_$U%5`iZ*-&GF7Xt(1A z$%Re*1f}sGhkA$6HJSj>)vn`-GGlrg$$aGH)*3QnjRYQf050@SR#f)CY?J?0Cv9qn zU5aU3ij3uCH4d1XMnX#?)WTJIko!r<-!?Cp z?j-yvjcK1Uc?-N3+1ynUi6zx^8P19%Fu`sqXw+cjEQcJ+N=4rSh^t#in(Uz1ry?bD zuNB)gNvWGg2PF&6>53hdcRR4ZeDCX1#*(ni?MRcd?WWfZ z=4VaoPGDQbaOfa(96RDM&oU#lnxxmPznLlf7bfxRTb2Gd`s2t}m%V#C|NBD)Lx0~? z=7Q~==ic|E?awc7uzzjH5c{EF% zc~=!VP`F6Xi|hXuhRys`VEN=002_e*@7TMn&%dE-@7K%ce|um5cso$v>TKEVsVwn$ zvhP6#{41tC1qM$MANDg`fn6Rn|Joc-h1VM6d;Knv1Dibv>o3-0lZy#06%C=nMktWg z(a>POQ?#l5DwOnFR{oLFeV=dExJQX|p-nUZXu3?^Mb(Ell|jH!Hg79)$+wNCX-Vg%}|2~NRMJqL zN-SBn0w+!jz?d5ZlamDoZr!xnJnvD!mG*lVrHJ|+uJJ9?hELf#O+zbC3buSpj?;L$ zS@XiP!~Cr%x3{&(hFf}6qa!J6Dds{!#}tY6wYQHWtvWf^G?diAF;6NvkxQpU0b8mP)f`1>$nMT?RFptNB*{*(=(`lGpA0FIt}6Ri*ykD!~65=F&CQZL`UxVXWeJ2-e0I7%}oBM}O|UWCT~! z<`loIt~;?XTO%OU*WEU_Vax|7L-X}w!bw}uEiZWtzZ>ym77Q|~Gg`1?$t~#v1Ax%9 zRz~Szo<7XWdH=OdgcMx0?9#knymT6HeOO203$J}aW_`^u*?l>dV+ZwuQi3+D2F^9F zE?jPhCbb3}wOAua5W4NwM6sfZ)nm!XGXCNE1>qAd7ydf$*LeQod7hli@Afi=oiw#P z!V#0R{j*T($jaVi&dScNhm(~JbTOrI!GO&jL}NFbMB`_F+&D{bKOT`^%oZ%~d3(y` zJ*#TfwDV|15^k<42z>0Ku<4q$^@L9tF~o>(_o5})wON4@M~Jt1|7%^iX@7|uES(?n zla1I)hb|+KwT+G~Y)*V}r?9DtoKXRdU^O2-yA5t;YES{XE*)Px#_Ttu?4V8tEl0lw zvMrd6q>r8LEp@zG=bJ~7a8e`6b-6BQq5#up!o|~(U0BzPg@_9%>C<%g!fo)I(Dfx? z15RWr>od^sOUXJ)l0_#|nC|<_L?Mb4x(~1Gp<2|?OjEG;_jk#}Xh?+V+l%NlhRqt| z+Up~;y0G+bu77h9riY-cYwHA8s~ssh7714)0^pH704i5wKM93z_lEJGt~Wy1Mk9X; zlN^4%GV{2d*{Pc6Ul3FsuKu~^x!+%gf_-;EH183A*1_yljb#Xl9go+&*cUrNs($Iaby{JL4d`*2Dl4%S;2uY>yfdzfHw@9^|9CvJure2-ME3lhrR90Z8( zqmk^VO}zC;0Q?Ae>jr~23H}6@rnD!|m_(pIsVZ2W<8aKbRHd4to^~ww@oX3q5Xxn| znAwMt<{8yVle)ml^zY&az8E>XioSp14(`ZQ=|W}dlT$YSIhi$49FoIT z1;eKAjKGP{lO}cLLQ$jx9)2pn`D&ERfi^5mlUek>RtD%<+QJKAkp>*c19V~A4rZ>Z zve8LlIm9I#!}3Vk?G>2BQL1Iu=+ev+NI<3Ops${ZE2j%mv*u`1*%jNnlv$I9?PwBq zRWr)uJd}6_(IQ8ht6wRjDVszGR>1ImRkNUg`q(s4_mz=LH0rd)ZA}TSL~c7o=)9t3 zNHBNv&0?Hd;L#ltO61#={E1aoI*3c*56ygr)Zn7h{-srLYUH;iCf}9zpTC?c$1of`zKRN`{npmHitDD=b8Ndxd-R?4 z&)3e1ot#GL+>moa^KPRbh7ESZGycFk)vNF4rPIHNm;rrpI;;t7emPXdCu9o|M66lk zpBI^x#FysrTH-{A({2DqQOJeWsCkS5qJnU#enn}1=%ly|JeAl8L81p=;^MN=@o1?@ zWESti4i~Q%cpyS9)BUq?3}P{GRr=lmjTlDq;F^NpO3N{t9}3aleZ7#?bzf+W!OD-= zOw3;>?>XhZ_6{T2RSl(>lV1Fre{s6KQWra_@H3_ z%gGfWX4g8;DIoT5kYRHm6=~AGv@$4zM5EZ(pV7l1FD?PK$+9hdN`v)7ood&yIBvqh z_3Db@_;kc!BY*P1*5SY9v(J|{-kfG<=4RwLog&MKoI1`YA@Dj2cK3iVEk4nHz3U?kARZ z$J_1>VO%vO0c@{w4R`?N_qtDqQWRhv=h69;s-`l-KfxJ(^t4V|he5FJR6D!N=wY_C z)M%WZPIK1MgV!PZ`|g$4alHx#HJ~I40&B$&b{D8o6eTBupE>-cq{Pa?< zfIQF7G5ykS8DYr{Vii!heqjJq4L_WKr+MsPJOQG@Q(-0V(Xx~2`4VGpyKCg`D=`xC z188k-Y9peS=<}3dnvVA3UuSuHptYejTd&i>WP!)UYif&N(1OR#HK+ZHU;4ONI%`nt zcwCTj)84hF?%lRl&OIu@(MMhcFlfHXGCQ8zHX-n&LxvT+?mQ)p2v@>W?1Sfl8QRB4 ziE@)Jn)Pi#jO&xg25}E z42O0-BWRS7$HAm%`qfC6gBA_>h+V0UH8v)Tu99>mXBk2|c55mipy1-lIy5kXz)cDe z5U9O%Zon1#IIBpos9;ZwxkI85>u&cu!t4=lNli``f*8EI&|V*k{sdjD^#q@Ya0}_K z4{bIXIlq-VB|-Z%1U2So;`Z)6hSEL~f>LeyX9?iO4b9qk>u9Z-qiO>KE}bp>U- zdoiVCXAWCiz|=eWkHo$o^ZI`P8nM0!^!mmG_4q}TDiu)DuH>y|P<*{Up*mkPopVi- zyKx=&y>1hNp0774*(j4PLpi(J-OlPEK#TlLw?XA3hpQ7t|EA3T(W@BLFI`xh+N*Jz z{j|&8C<_63$U8Zqv2~bm)|$b)E7E|t(nT(fp{Dld+$X6(-At*w4&iYZw5I-E_yB&{ zlg$*VPkACvQ1XNQICZ^(tmz-p%E#~Kt95N3g-E! z2uweGIjO3q`I9=$|KM3D7k~MJ^b-Pna=(7JSYsx8tN|#bsA-l6@?nfL9 zJBA@sa2aA=`c^>8udm@?6Hc|Y>*-BfbBoa0Pd|y$YYm&0-9y_H5Cue__`{}(hcC~7 zK;A?bQc{Fg7Pa5PS zS8^50K1*Pj!k&tff+aAo^HAyT{ zhrAd{j`b%NfAgo*t2^!g#nm}QM;3P7x)IxU#kOtRwr!_lS8R1`b!2Fm*JVFlqk#`Nyn&v@iLSjLBcJ?FCj za_+%CVu`SRtsPb_jJAm5>=dCxwaDC0bqq`QhU^WeRJXq;GZ~Klv1lp2xVn#5E2o;k z1&f|P9PdX`*DRsCJF`{2Fr9BNW_S)}+>joj`a*!q&b3Yz#S7v}ZmC1g0$9?|jj88` z*|uZGJ)LAZ$62CPhe(GY*3Hp1A^d+RvxqT48hgA-rs~D>Fse$U4QLAJ(UCP<8g16Zy+>& z-!%q)A%4C9_rwtXScl68iI-ErKw3`0?Jd{+Mvvd$ZODb5$hsn(4@l$!hLF<{dP|ni zj$bff4pEx~^M5C%&*6%#6Fa=hVzbs5iwz)56H~I)nqX00M!+9P`2%6)60Z)nJ8vfUN*4*EDz*!jQaTPRph02It>{a|;A?RA%ne&B|PJ#--7Wa*yt>erasla`=dD=*_hc zF6k@#)UCtw3n*;J1{;HUE=VpSQ^wkm$-z4d|m?fs>QLTb__VGPg8w2V15(o}|9~a!NPB=+RPYEyl zhVT$$)5Oh$Q(cLNY@1gwZu=2ExWxA6R4o!d)5#iEWOV9cZf2 zN>AUN`SSo$Tj!G7?8l<@JTIG3~*x2+Q+{}86W6+c|cZ%5j5H}~(0R$G} zn!GD7f*gqQORO%je9JiJI2s~?lUl&&X||2csm>=nte8-qRgxpk*tm5DQvDN{LscyZ zt}}~`diXufVxetzDOJq#*p!s-L37MI0tRd~-$Pu`=x***b{LRG^bca=%f)}RAqfs> zcU6;kpa26|YxuvpJZKs3qW#E@2GBj!f~TShRz&#b2Sn|4oyo>GW{{`k?M0IbDB#ab z2L7avTOi$Xgz0MqM}%+^1s%u3tMDcPzz@s|3T;GIHohc`tF?k*++(iUcn=R2ZQIed z4=`W(Tj>r^-5_V}q*`L_yC<<^+G)i4`Q!Z|K7qvQCeo{b_rkaz@W3i zPdjbPW!T<0d$NhK;o};$#V-ZByp>~RYOj!02#g-LHMpF63Vyu62pM*RZ65LNp3QTs z>to{&x{CVk(RqE}@C#5b{LRI!GSrqhWAamkY&G*Mbo}5uff}5G-NjZzdc2zNBAX#X zwySqu)%34j8d&e4ow%PrZAP~%b8es+=srv@rs43J9>jw)y(bznhK(iKm}bRGOz1kz}@<;({NbJ1?%COFNfUV!pp>Lc0#W(q z%nf@;zz_xb$m`r2Sa3$id$&)!H6x!bLj}?uA zPJdhn4;u{3Qf0&J!SqVXrFbqC)haxFj3mtcF=;(4#K&-H0s56Ktw|;;!Nap~;wae1 z!y9+>dd7f}DL?GYb#6JycA>s4!7-;k{iDIddvV!+FRsS~;6ds5V}_30oN_@cWj1!b z+{fb+PAY-8n4CoyM_aw6uOU~OyGt+8sU@3{X5p>L`3}?thF`}j1GJOx4 zSakg=Z^c>F->m=JXE*~IU4uZ_I-PI8hHUuOQ`BwEzy|PA`h73=Hr`zv!!($DD@{1f zjCba{g(k^qi;4LnWwHh_Mf1-lynXG>3`A?Q2 zxTbSeA-Y7JHkttrD*{_X<+Vt|7Z^ogWP&m$G#F7q&qPXFDy1Dk#qw%M-Lx4^tK3l< zAYBPVS^gIg8W;Z{94YhVO8GcNd?`7P zxUVEqZYcxX&Bu%U>Y|cnESlvle>3Mx?|V~fe7`;5n4)n^C@i9i$qwe$rCPAgmo72m zjh~wtp(m&?^Ho9&&CzVym1YCv+^=|71jqlSTlH_qZhSTOrAn1|m@v1c%zw;*(`jmo zn{z0ozhE-67b{FWbx1>S8aHv(qlw?#owjE*9UArL)%#}SaBt!f&ERoZhcT9^+PjwW zb_#=rXE1@Eq|9DMQnQp3hD0oDnc93ULs~W(db8+Bp304aw2u|nz$0P= zzqEt11c6<6l6DSBT2b+4e#2L-+m{|lNXcg&OCJ-M;X+ehP zl162@+j#<2L()EvuF^?k6B^8IiDQyfksz0knN3Q^qBJkHVJ){8Mh9tzWWRbMcioNb ziMys>kzTugQMN3S0FTfCrsJ3sHhzbJiM|8ljw1dk6l z6MTI4Ntmt)b{99z-hDs0>xnD$KgWE$FJZVCtJc=2e4cKsc8~Y_pv$nE{v!$r*-xuslAq%rUw;3_A#?-l@ZYH?)6`N?#YJpUaBq7LN+6QcE|hGWsc2Nd2JDVR z)Js{}FaQOvYqEyJ2{TQj3Ysa}J8bMdMH@S&OhsnDvJ-isVEbD;2`u8zrltt7F3Xih z6Ewhgv2;7!hK=7*rEiiaYn?w$PQ&PFBHQ0t%UZ9@x3Q@**Lw;5xV$t^af=VF58lq#CbBImy)@!r5rR-VDL zRzcf{R@E&IC5LN*mQ8$X!cDn6*+Z6IHEZeR2dAGF{(SLf>(*H-62})`eX)>W4Q((J zH3I~GJ#sfe_nP_tJ$9eID0cHj4zTl_7i1p#eZU_8NNIiqGIv`N3KX*;06}wW0%ZMj zo*I6>{`pJ!DsRg*<(*ck14*cyPs_J+;;2HkbO%SGsK}Q0?H!b%bj8v7)`*Ap24A+9 z{oINqLDH?c)>%Sy?ugz}%Q%EuP9iKO*H|Hu+z3{U-`ak{=!0p1zOs#;Y8>%Fk<00h z!QPYTFu>Wd4UR8nbjbAf|5%vaL@1w(4J6pN*~491bwII7k?r@3?8nbu_p?Gyhmr}& zYylGol0Jnd_T!OjM>Xv3{nG|9S&eoSkMh)T^?Mn;2;;wFWI4=Z;hX*;A>{lj$J<#pWyH zYC}M@Fqd`mLu~wFI6~?IWg+v9aA~~&5pE{-3XNk?4QHOOTt43z2dbdlzg-o|h`xg_ z;Yo2BRTP9t5n9@Cj=#LS0rSopB|GS8;Y#9gf|J^!`|~QJqpW=%Ar0EZHJ39D9-IK- zy^w@@BG*b>MwetH#2ZxmF^1XUAB&tR_LLaZ?AO_YvoRPsj(3P4QuoBp>@dzo1{ z5-O%2QPO-RB1;g_4wcg?zm@T%tjv0E^l%wkVCm&KlJPE;G;8=a)8uXZO_>uF>W_typNd|Y11nXW&k z-#cko$$ETzj`_hxqP=qX@@RzH!zKsxch7SIWG5pkQigD#D`uwPY*UvO&)o#oxPXDT z|0BB-(Zjf%n#U^<&Gs_ctBGD!c_`#}qW|nXOaCt&NXe zC#bUJOFIikEkIM3ZszLh@S4F40w`^vi83<#idr{v!J1IEw3R9@WE2bxB0J5VDhW~( z9MX%$U00zrpXt>td*)B?`+(}=sOD6|q|tcErlcT`c`K&N{tbjul%p+`qgw*SYM z3VI}?-Oj1$q;@?sC3VGY{PN}VK}K9eeZnD%qM9>1WJ&widGWYS97(Yv&6m@X7~?_L zo+#=EK(D^6s6^E7Y(?;{(a{5ir8GF~@C7aZJd%DU<)=AU2@M&BPVe}94~*iiX!b!g z_b6lmj8*qg9*n{>reTUQo~*tM%BhCS0eiXfMw-HmF)5}%c&fW)@+t}yc{z`Yw66hz zPCV=ZJ4Lc)>AY`PQoF8*cO4TACfr_ZX!JBDI>xcEb~gU*=@t0@l<5Y*yNoWA%P~Ns zNX@z#HHl0j!;!6xCGP7%&4Y-F(L9{ITtnW+qiU_7^;D|5nj)`YM5(YJ&K{4sz^yAP zVT9x{6wV%p0o%~|izzgH;+yZW)&f^sHYm$Kn~E*$>%>u|`s80SnM#D8KP5)b>YO{R z+;G=52M<8DlwKNatv$&DGZb--)u#KqL|91d4W3?@OA77^xOId}C z`m+fw;+#Mh)(Ti+=seR76~_CmSgn_*#^r#v~Ar|Qb=csHEu(cQoudZs0@TR_rs(C1-<9bc!uL0ZZLgT}g-5BrEw`vSG z|EdibTOq56TAR3~LcQE*!@%Csrr#sL?;>Q9QT5~iPKg8b`m>8LX zbh9&$lyAs4d|w^u?fD4v%yfA?F@w(E^^e0T-)Lv18f@=9!}DScnqJT=xI25o?(X)> zHM$NOo#K=7aotBjuDdwieFX4#2BuPRCEQP4)_dRX!8rx~4d?3H++W@%y4xA}_rLN^ z(E9(g5UWp(R&u&oES35^dhY|C#Rm#Uu}xAFlao41i}o};w+_y)CnLvYm|R(eW`{#v z+XRe9Lh<6XbDNU8_799D4KzY6DXPyKR+@Wweo@eX{gWP{l4zmimWQu`>N_m%Lx$u& z!q*Q;2W?Qa_ukmBAUy}VZy4WqA-Y06tuFkqQByb?l9n{SeFMKNgyjmJn;&0eTZ4ax1SpNgd2z%y-riZ=7bdK-o7Sl-Rj?N&#|APv?+;U6r~GxYAZbS+fPkIA|(6wuw8~R+|4^&hW)M+1HT`^SqAQiGYeZ>qbqBWypf}) zxCUa^E4ol)N2eEAKb@=@9P$8h@w4+=9Mad*zIar}G}Sa#&+dQ>A)@_(3^#tBj{evb zJ0Blg#OFSoosA<~MFnhESJudDs#tDL9XUgP>M~2L?sCU|=+1PUt|%6CNK+=HAw43d z;Q=jR2lW?#lo7!{jCNTv=Lf`*0VagD9qtSNQ0F@sQTq5HC0eVh%Bb%Ys-Q&~Zms>X z&G>4ck4yT5-t67e4@JkNzi#DJNeYWHE9<&kw=sjNSa+5K~&L2Lcoc1=DxI?UYa-SYi znJ83+dz(-#@1wUK;pIU;*X$v+Jpzp^LC|XW^#uwlB{5N4)tBfmFmPh7KCmRnKfSU8 z5do;s*kFVIPtC1nwK*qv!iN&8m9^E8P5`}W+F^6*;H|c1y*Ht-(#P|PuRlJg4cDMa zSnU}m@86L7Bk~*v_uxc9{XTXcEqC|jFzeS&Kbn2q%xz#tIfmY+GyVG@voo^f)BrRC zv{BrqSOZq|kCt!W+l<|FziV6UN2jMS(J=`4%=QO+JvxM2uYgNj8An9$A{C6;uXazp zB`x<+a-(|Kzgp=ee<{%5MPB}m@m0Or|2OTw|BQ*M!52Fa_TP&k3!1CRFt;-aa!XiN zVuqYk#o?WGA&b77x!$Oj>=0nY2K=ZBCk&Qzrr$E5c@ZxGz$pxKu%q^ko4*g5Mk&dV z05lXeG!P5|R>jAl_x3CzYKw^mNU?^i`dxqGI$mKxgs-4rI*OR4;%2SZQSXauub=K7 z+Q!9JLwYJka7W9-AbF6An@HJ*K%1a~ARyLujveAxHW4J+sgjb=?p#f2XcGW}6c}!5 zgtU{%6|~XCZ9TbzgBX_O>oN##CE!8^w*X3+MpLu{#qobLC$fw?8C zw#xMRIyTrT02c`)64^Z;ytf0(JQ?Tj5BnM7vI47rR6s(TpV1i!b*wC05^?H-L-#^A zXIm6kTYVDk{FwoEP~HK5A3l`^nk`4Ln=g8%tBpR7Nu)e_bo=Vl!UGU%wzntV^DUR` zoqqZ$5XFCwR`;T=ypH}^$CtcUCJcukT6q>1ONKq1YU-X*_L@}v3WJ5t$v@0 zyRInq5+nVdqs7)<8h19Q{!8!RpqZNbEQYj?BR4fhn5=0NR>oC0=}2C@6|JD;knHPZxXgtXE$18EkpZlGZdMpBo9L zb`wal@P>g^yeI4A){f$zLY7ec@(V#|cn$eth@^~?^41%9lFrw31U=tAKxOFbs-*{xif`-kEVkoDb}R1mS;UTKVYv~ zn{mNtlW6Ls3y!&hsPa=g&8+)r)|u;D$dV^(qSyWNul8mNHGkhPrs$(v`8BG0>nv&X zAMTsdv@PI^k2FF!gDl=y%88LtfB&258`r@?Ut{Kn!if8{#R7Yl?DLvGC8s)DXK!3x zG(X;7^wWX~D@!$weYaP7`2*(7tl?e4OM(yY5OgE^o$CE_@Ant9S)Z`qVzY{w04_y3y3JlG!`V%=`Jo1cRLmOn#?ple z4c)>#YPVW9reE&onZZerx1$GmI7`nD)lVYG)Y8bL0LRbm8`AAeupOhaFX5UAw02Rf z$f&uyt1oaqJAsH+eiiE}k=>fXKHU_Wr%T?NF(_PbX!BUY?tN(WrughV>9>VL(A=e& zd#RQoUipxP97NjXIL1lVVIu8Fy&Op6d=AuE=q$~k@KGD=>6FEW8P&0J5K1Jy0vwj8 zH2xh$$r5UTDxJM4A`HD3I8huv-%1_$zRT?8lz(`;$;RL7mM--Sa{fG`xiWYKu4nWe zO!O>(!KeA#fju)$eOr5N%ga9Z=MIK_FIiejiuY%?K15p|$x>Xv+mknweEol!T5akv z!2Ry-TUg|}AW%vmf)B{IYcL`t1H-SBXE!HDZ~m{^o7D`u*vg zFficXk7cHy-A5-S?~eygY$f8utrjP2{DoMZY15B35E;0qehVxOnPN3%e#*Y~sS1|) zua5+IxywFEe%4~r`6wymJ!{tPiOpzq_t^4WpW56NCUMHebG*hr$!^X4F^?{Uw9FTL z5vPHPgDY*QiApbHJu0s{y`DDy=MOJHm?chAJ3i?Qpj{*4lM2v0turkhke$9jZ18Fk z-quG)EXKrHJ2f`1k1wr;ebZd4`J*=it!wLFQ93FMaQLI(@tbwoBCV0qsn$OsEh4*J z#-GK-MR;a96ZyfzTTUTfh|y?5h|yqFl~7@WVymQ-PFm@qoZLvp#|5MG)x@0gZwlJE zqHHrfuFDmqsVNMPgfF$+vgrwhC1~)LsMyIIaUa8M@B4kw2kQO;2=KBx+$y! z`(hO4THJ*fR#Gu}*C1pAI-VXS83Q|kcH0aMyflfgS8#!E_H39Irx+R>YTI4;N4xRO z3Xa9S4N);Q`n0+l#i4G0mc16*ERkD^X}NnuoaLWu`Q#T~JhMmJ=BjOF>Q@1Aq>A=J zlE-U3&9$ov>)Ac-v&5Fp`&17z#D!+ITn1`g)`YrB$0xkLW5=1B-6;;zT7}0PkIe5uqZ~ONfsn8Zc5){zVbTW_?%>Rju{fF z9o>>4D@2OD)7%t6MpC!zM-=q|P(J>lJ2XxTMzkozcc99>^af7jultgrzQb4p(D^p-~j--jP5;IPvY0y9;rSs;VD1q)F)ze8HP6D zwj*A?Zhf@>g?-;{nT@4S=C>EU{U+Fx1-az3KJq?VOThikB9zxN{$o;1ped=YQAf86 z>I5&>__%PNJ)V9C2P3+t4~_2HSbp=H44o5MVLOoN@iD=VUb!#2NP(Gt zbj z0NCz}hmN!NqdEaIKM=^>p1E`ApeSC$m%pW%sheedY?Dx2&46cnw!#B$s6CVR6yZ#Y zW|2NL_3y5Yig_rlYs^e-mge7>zV+a+ni`~r)M-4BdcCemT6-xYB=5 zU$^Sp9ZhrF=x~o2;{x3rfN(qgVrZuCOe$!TwY2&UmS(B4h%S!%H>m3!^Y=%3VhMyk zSSWB+`1@RAmY8dPmhty{&lvj2!Tw5Y_9f z0)*UY;vPD%{-W!qu|X*M#T66L=)P8_hP$OcFr6=1=J}`TN}0~?*^9ZiSn|ulCj1D3 zQ>}@y8_#8vPwF$cryWy4#R@~`(Ut6%0jy#JDfbreH-^=qn?B^SyQBkmy&Liq@24tc>IvIHvkF2uKL94imK&qIJ5v#>!rKqbOTDXe1MLy0axz#r{ad8Z3 zm|0}UfGa zimZoDZdE%lJP}CVq5G(fz%wH=xSSQwV!kMqyon+q;`WV#kQUqH+wH4qiOZ9?We0l3 zwU~WA*Dfxj^xib8R5mQo!6JffH;afo0}@@2nzWWy9Os8T^&@GUh=`^FvjoF#su!io zLV@UlH0LH8g}XfVuTHA`8s6}q^%Vrt79LLgr3Q0<5Qf#*a>Z@5a7OZW)e*^+g|bC# ztl00!QNw3s&&JTg?=Q`8-4hOe3pHkQ;Ge&|G(kFUyoZb-2ky-ETzlV5*${2@_1{x1 zdw<-Jl?!f{KQ@8OJw$*}rkoxwUIaAy>pA8TIdyv`*h;JjOo(#!k zr-I@tS!khwEx~-m}NHb4}G|S(<*id!mFi9uH;FKFe>B7F6#Sv z-AJ&m%mEkKo%N43I-!npu7Q;3oSWg>)TJ~rGP%WcLJ5nP>0g29^GA}p^_&+&Co*6C z+v;CZOy;mpGH=|ar~6tLKWadb+i-xvF2ZPH50biBNW$yVlULiH`%P%a;%xkG40B1g z#syZ2vvansMtDV+&Zy}!oZ4mDKPi@n7{{Rce3eWk#ge>y(S!(MqD8-ZJR>*8Fc0(0 zK>URWxYIzoM3c(>#h`QajC57a0BhSw=_M(CEQx$}9KbB69c@;}7}#>8O;M2~cqAsC z17BEMNACWn+9w!38E#EmKDg2n6m|^myxCjjAll%Y3hffQeb~}b3~I@^H@ez==kn|D z+2x)k{@C)>96052y1JRIzq(aoa=JSjQ7{zj=+6NUL60Zj>WK^X4hc2z-{kT)U&D+X z14hq}k6$kz6^K6X*k;wAgZ%n)xDveo9l<(n@gF=oA%iC;&U&M*y+^vmdq%gb_0U}Y zUlFlFfz!_g({3NJJiULt!~BB6&3sw@J0Ue$qRM|FI>j3Q_ZeK>A=Up7q}Q1%RHMF+ zEGKk8oY6fM6!aFQNzq4xxMzyOGpb! zDmyFF(bBmjLb(+G>S{FVyM5B61diV6FHtXwsRykhtIBx4A20xX0J}mnvm58g^axBn z3Ti|vZw;&d1e_S6;2+%qRRfOn(~4p{lR;WB2k;L-VCmP^UNU-r0UaAl`hFWkv+ob` z@h{G=Xf^iq&d$F8f|9bXHA1ghh3@Q!C?^hKs-_}w8!-pYcC4lZQHiUhw{2wVyAiCS z^5W{ux3DV1;*$`_9t|r_D)+NU+(95*0{>G+unO#3CfK3x8r*VD-K|xK;eMX+8scmq23Bf1`8)$EP zI9z9<7{m*bcjGm>CbF0v6*M;)P;Wt8;O&kt>=1Z}ucP2omvyWNd8mR9O&W>OZZ^5@?opEO)a+4uFTo(f5i9euUQUI)9q?J za1VW2uqpTVM6z>~Yks~jqAsaLp3%P8!Z;>4Rmh6B@T*TYP(%UjSTNh6rR8 zWKob(V_Oxux}ZtD{by@b$0gUkj1F1^DTA72cs5B7-Mix443hLuln%!#zx8HQTlBKv zSFVI=@Q(Wbw2Vrsg>jqxQqwI8@x@^uH!fZarmQabTdt;0zJ{_cWKDdYI?|c&w1L0# zUDD3UzJjGDM$_V)|2oFNAr?i(S$F#yPJcL1nh{~trP^S02#fftjgEVrK+?#NyLG9I zUSs)Cz(Wlok3!pfyx|UMU|1tAODgfp#N`MaY1MtYAn6Kp80;Fdoe`ujQZGG+`+m$+ZlO6tTQzIj)hdfpCI?mq+$Rf3H$rjqJU7MFMil6czVJvh7aZ~om zc9i*hbeM$L{*iS!J3fXGilZ<{ZB$B@qE2~H(Nt6komTP)eDul&QU-x9K|*SK#kDd@ z_x&>(3H@L6%nR!vWC>mFS;s)D5L`}r)3q%q(Q%1TIw<6rCYBa49ci$PWccjt9KRR1 z#MPAW)%fV>^Bfx8*~capza^cuv2QrsJh+X_jlkiv2@D&O4GTJAluI!$=}Zl-(I8!I z4-JHNz1*E}_WrZx!=4SCI)oQ;xgVr){PYhgqosH}%&$3BJeZ#20r~ev`e`xVU4VSR zF%r7w8m2tK5iKdNn};`KuyP&&Uk+?!{xh1TJMksrW!R532IKet%_3NGWm z+T@or^@fQ&rhIu^GJ-DaLNb(ac*N!pdKH3Z|3qc}HMSX}I9NMtBR;@r z?>Z(kbG>+H`z%mt37@XD9JZ%;iZ+q3I1oPugDM2w9yYF#oMa11qKvO{k#*ko;9DHX zE}E>5L-Mz;d8O`fe3ChbM9Ko1f^PuMs{_j*jIoLoeYM|w7=}k_;yRv^tOCv?zmTY# zKg<+7Nu9i+e01Dz`ylcOqH)y`h;m=R>>b4~<{x2qD9N-#(p7L2h5CxN4&=CqjpSO9 zDO)Hq8@5?Lkz}e6sH#b$UlwJ*njW{5C8`jM*($VuDRawF-w!c4;FL^S$B^_7&P;@m z+JpC(VMswqIhPSHtNv2`-K+*Cu91{^6!-&2&lG;xd^tSDu$H`sAKcaX8e$`OH)klw zUm5fgA~<+^OwsRjk7MfHoZu3=I=E#j_jx=Zs4p-$TDHRW{+QBnG<=VN7YdkuB^Eq9 zI;{70f2Q}UFW9?kaccKFbwdKRy4-e!@^^bC>tQQ7Kixaz@~}?57N57feLyG?ZKLS6 zAz$Ynz0Fc__gVq3g;pmsppS7Jr%g>dqbCMjDgVk+(;-mGo=RIPpsecT*C;-hHyg^B z7G@@L!xzoh=xh=V=U=bMR6h=~sTTay=Oa50h_;96XIjGGYQ!@P=7lKN`+aZ2e`#b< zWbaH-G98_`_ykekTIA+Les5IXczSO7hE%4~#gHB0&?w%lOXh^XRTHov zsgB7PMjC{WGSZZd(`}3ss*y}KiBO4uS4rZyW3*zW+_YIePW?Yiew*#tm zL(LJA?R81~sYxjGF@xHZ$H$bjGWwbV&F$w(taMdyyu94@daTt3!Tj&w>UpEjJ#j2UaBo6kF=FhPzwec% zp6H$A%jq(BIJ#TK{3P3{+jqj-n_puK>$s(?Q8&sgF(lZgn1U8E3(uLzb9Gj3kfiI9}koy`p}XIgZIEijemSVYaPB_+#R)smAGYjPNNugLaH zRc)M3%Sb4~t73TZ-YhGKGmA~E3EljZm^%-t|G`6NZhX)*bqQGoUSmIiu1Xak%a$(+ z?Vf)8yi-0E@U?vYEzpwolmt0ovcbzN<2FleFvRu%tS|R4Ml@^6Il;v%?&-?8U4`Tw zTb}1-SFrj->DeUwgHghgT5KGY&tyf{)4q*6%w*t7BE?CfI)SmxAn^&!o{cjM8|o<6#;COh^M<5@VJ&EljG zVuxtzp&%s2mSb;j_A#14QIJ!bR-Z8@#szC^A%cVRQltowx}DIlvdC)BB=+wZgL67) zp#AllM*6Y5FgZjgfl1Savb~AjmR88rSPBvNhtr4hB)%bV7P8KJd z?7QB4iu5bfZ$qXhgjwdx1N$}WE>Q!ghzMZHB_I31N;Z#3H7hgE)WO9!fuVi*+V#Od zZw}Lrs|>oTzUNcN)gnC^XIad14DLDkb|^>A{zMaRgQT3%yCWE3Z;8jMf@D?!?`=2i^y*-gF?a3(4fi;jOClvqX!J+p>&w{DF52DS--U4Mu^2Mm)X6YW z6KL$jf~d5g?r`~qw-8cP=;_Il()t*US*XJ$6E2VL15Cfuz67CyDFAQy@Z+)%g;m1| zG5$<&Zu-&6*=XqdGN#Em#KdmoX!yflmol|0%#N)iy6Sm;!BF{scL1lwNVSh*vO1uy zh&TuPtJ6|oDK*P*vaAc8%0O_T8Yg&mrq+ew@#6@{K~w~r^o<_uqdKK9F6^U2%cy!% z=m?J*`*Be1?Q8o-rtvvFxI~Pe5Ri~R5pIjf1u}s#;%hlmHrF;LCG{yi@I8MHJ5;lr zB$YyQ3(M$%mwEedX|Wr+f{&k=Jxm%;Aio_eB1-ib^s<*!0{P+4Jp>JhO`hVl% zp}SU}ZohOT#5cY=a~0=IR$3z$*T^V(lqXktLh@)hny31ytfDI}uklNAYOwt3(El;N zuV)vwf0J&jyL_;~VMn_={}96DwM8hqlD&j2^Z6aCS40BnspVzKZ2?gBXEa7 zHNZufv`>maV97~6Ve>{Pf6M`P!Y5(0jwLT+$(dMvvj{lFa359uoh0qz6~i1-q3Td^ zb=)?Vw45z2TbtazI3SJz1>?+HrY>t<2;tMpvqSaF6d5JT5}gKzW~c6( zD6M)nC{qVZ)xw!uLJKLg2uBtZB3%JTQOBQJbL5RiH#qJfQ`7*6&pq;>@f>%y_2Grw;o_2q-Bpi4x@-xJQ< z2+sbnX1(i?LGmJ@7|Kf}Lq0gw9A4^FU12D+;mp1Lw;EQG17Px^>|O#h4G*KpdA+5Z z!LUIwavh0lpf*%rOsT0BHKR?$%i(%5+v&t~G`*!_N#pI`#pwV&QTZ;Ia(6R(w8zG{ zxgo|80`x3OTSqyas~1k-+^9A0KS;!5ij%)J!*mO9HZAyHEwF|kx=`osfnE`)0~(y< zzz#B5X5pDYNJ=yZ`qHqbDRs~=!d8!8J{H<)%4nyd*U?0b$4Hnj(yTT)#jpwaPlgu=q6X#%bov3= zs66i$dt2VU-M?EUI2}GT#_RKWB%WJ6-%l;7fp=U$BgdezJi7vy>q)DPKIcrT45YjF zHL33Q4^*Z)!o$;20RM{*aeaO+cJ}Y8_opMl`XCLCBB$FE5Nz)@*LWr2Os;-g_B9uW zv#lM6(8a~h*~ColhdXd;`)Yr>{QTAO6J?tSXD27Y_vN7Ytq)Fq`MQ(-{o?Q8X?4*3 z%70d5Bkv4N|95h%PxS*}{3bS}ak84ZcVZSBT92#gc(n4$y+=elXy7;|+jRJ@V#X7s z-I6L)S-V5%;PF5}&+OdT|9cTAbbfME*NSy*Q!6^P5r^EI(WHLNWSw2#-@o+Zxh4Il zWmR->2CU+i<%y1Uk!8gITma&h;VaR#oqxaVkVXybl5tirobY*(Wl2PDOa7NS5Bg>m zwk6|^VBTw6dT?INw!64?q=4Q1rML{~+S=|O_~v@RQb;{mGM=VdgiaO}gG@y!5}dG- zq@2YTJ$FSe)ujxE)=TEnRW|lghX~w0xem`w5cpJJ2Y+~mLGhqhKMc)kal{-2XC%Oj zd?oV_xM*-;1vq&yD%NS@WSuvuZ)f&dpWOi?uo#2UX!Z0aXz9c@$HORe*XS4LO-k#C z7zOLZDJLfw<0whz3gV`Xiv|s39 zIgyg~_GN2wFbf6i%u6g2QxoO8`J;YK)1RGn+TdlD`dRYj0R5*1Kk9L}yrbeHm45B^ zXV?qgAu0^vTjOnsUT=s*a0N~Nsbj)jeNVc{ZcXx8i?p;R#3^;N4mr9qfudSwV{gf7 z?WKvJJUSsJD(fjuyUPE%22FKJkW=2{l~`Cu2{o0x+R7VJ+;OE}`*i3c1(VP<=)F>R zVB*Hi#Am^O3bSLQg@UY0zTud9BUTsnPsb1eOLA||dLkJU&%a$39-d1Bofm?y-uR-s zMB5j_^qgvFUM(amN6536RJ#M(^ynzEBSVOjkyM*6MkWfjxQ{(QHgdG%>69B;apq?4 z`0?G-1b?Vfi%C|a0G<3Li@S5FnQ`1qmyqe@QI9;m zy_LNupm@RUAwh9ofSvTmX@>$|*we#By1*dHUiOS1PR{!9#pvb5npYy5Rvim#U+^x6 zo4mt@?ENq$RJrBp38As6X$Umaw()WK@FX3MUcGVdNFjIhVPu-AuEFZ_usBqW;>K3V>)pi3HsKG=R9vFCuk(XR$oQw z=262fc2JX|rIToL-4J3Zs7Z}}yH?=+scIDClR@ANR*6zKi%`)KmG@8M9#3&bP#BTK zOK?!;H&o$ykvv94F^aOYrtMAA={pxbfPIlH14K`W5M=Z{4QIp==)OwAisEI-&z_Eq(1o z2jBRjBB7}s)3gJIONfvD0@3Bsvwu*L7+MQn-u_{3QEO}(^o`31HKL3c=Y)Pp-Utz0 zjA5fzGl{@nQs);w=;;l7knCHVNl3&H_gE0Ao1dxVUWzskrq#GpJjQ!GBs?@&`o^uk z(r{j`41mPCUJk|sffwr_?1GE^jRdL=|5JJ)|7TpGg15}$Hm3W#TLz>nV$)7Q@&Xm7 zi~TeC>}=3T9-CB0(6!U|vRQrZ$#g)^1uy4xos!h5cSGndqQ#%bQDuE}VFf=Ji}ZFNFjtBbG`QFyVr&UutD%T1^nL=0Q;JXhn zn>vO1I^N2|iL6osZLn!03Un`?Rru|Xq9~c0z<3QZpqxhbhVr;=7*4p;mN{>*72>Nb zw)-&r7v3%kQ82%!qTgNDpgnP8iQ9F(Xu=T)=n+iLoG01SjC_}K<5hN+hoRIH9IsQ~2dJwd=_7fn(|2p+^cPYvCzL(-u|EbUUfmU zn>j+xpCB7hE+1&st-$SYZF!@^BW8VB@c1n2`}@rz7ASuWw0JMo9{6gOFT^{w0F4bX zc3oN^bU0lprr-4fsYI;5w>kvR-|Yr;6Y?KbNOL{9;$h7Dn@xw^cQBgf>~X0b7-okVf@X9UA070P zm?mHv5s;0nyId9L=-kgZ|M6=rryosf1OB2xj@_)|7_GS{!x*b5zSSC*?qXYF*^CBt zkq9DHH-(Qd&aXpIuoS92{G1f@izFak=+4&aPj1Fe-bGm146D01T|?ab82iQ-j$73- z#Xl^cX3#$8qNvNef+w^YrfKcTC$wyoOO(p0hl<+K-;rG2qTny1 z>+dWa3**hCT5o0=^ZdQ+>4XS2N0Eu^kKeJ^x&KZ;F$VU=+fhB=EtKQ8dwrniZ~sf* zHZ(ju9lFo`uotjOsNDsf67qN5p+18y_IJYr`i4&Jq`Y75O$;}9X#7`hPX>IhHr|8n zum$%QQ)2o3UQ(E){|y0s1J?}4yv}1@9qYo_`0%*9>QnBaq1!(WEe!>^r;72nU5`?5 zdsq2}D-$ACo4R87yc`+-H$uOD0JidrXjh)5z_@nYZ}zWh7|DuTxt(_h;tsyI{`gu??aOm@0HcJ< z`BGafr@tne^<8-!98aYp$BV4OTq_U=7)+Bk@A$4~lFFy~3GL+1i zFluvhD9J3MXK)RJ>vuD`Gv%W7h8b znvqS1>0Yyqmi}ql`X*@V9bs^4fq{uR2F4fY9-gIlWG$WjTb89!9y~Fel z&(hvM!kX@SHWx>5ydsp7CBEEl4CF;;2v0hKdE6oAX=?~i+d}xIEs$T@r9A8iPxA27A?|+M#hs74xp`!i zdtc3P_q&~pG#27)ZOPJA`n<1gfw5bl;9$1!kRu9?M-&o^l}8X(o>I)*B-r{ZG4l+@ z+$-c?G#}xJf@1KJr{FG6!b_1Ts7P%7#Z#^C=!Lm^07fo8=sLJzn$QL7LKlJRp zFmm!i-_9Kik(cm)zx}{50Zh+q+Qr!H1}5e<(AqmlNB=0p(<+zrenw_C2t$a2Yc?=E zyNUU2dzs&|lTS{3&GB!(WoUMRmi|FT7B*7dH$~gv1RZ_DOir)m;>`zm$YQYc3c|w8 z4@);OB1xD4-F?GTX&K#ssYfs-ssTht3HBke=sNhI@9K|{X8?xI{@9A6Fm&@n-N_3b z7e5R=g0KmQz)+?Ca0^D?IZ%N2)_##VtNvfY({T^`UBTfbjmJR}hi_C4UXfYCP@-Kx zl%N+e_mT_#Xct)`?qTV;C{uBb$iOu$4UsYxn}8@>d&_vuq;_(&WbO!!W=>&u&;2GqPSm}kGw*|Hy<^)Ii<0WxG8SBr`cq>I^=~Pum zl9pmkab5t*a7R4+E%1@Lpp5awPGo?MizzNHX1KUm<0E#!BfttrUt^rbmKa#;p<$pQ zIO**@9MHAYz{Ji7ZBt{G=xU*5rh}QC8G2TxXj|%F?qrCKo0;I(*R#~c!pQ<7YXb}| z_0cia#?V9ub6YbE%?;4jQ^P=S1M4YU%85 zW_ogv-P<;D}f*tND+B>90@kWzVN0 z?EQRPfYbAPTIioEpmj8b>W&C1TcxxNMAOh0MMHlSbpz4#%;hn$t%j-Xjf`!nVSH;X zV_T{j-dauTOdics*@Dk_bx#~s1Bq1hsUUMW={3P**2+mJ6BASDN%Cq5vBhE(nJz@- zdkTp!^C!JFMDR-&cg6}TkFuU*O1gfB+NIq|tnN*rv|9y*lPT;>B)2u1l-dX~8Y4+l zHLe>Y$Zd@!qamEErYPdeWkO^6|I>R&)7^?C$&y4!0fDM)pKLWYK|bGDuh&( zN}@tZRI!At#%Pi&!bz@F2uhIn)u952R(Yj!S`x@>OA_FCaeESlt??8#$BYo$Au!5{uw(~nn^HJ&VkZyosU}mFCYKN zoomOredQ}2-ua#jXFlbp?+)_qw|lvN@3a8_9^F5~i$|Av{`5MJ9$x0mSG&3L{SiLh zKESrA8g5+ti2HZGba9#zxWM%cT6)o*+YM4J>4xe z^tRP7)YZUPZzBz*nN;M(QJ4`0N_B1= zwX4%;t}LXkFp28)NQx4JNR_)2WTQ)2QUKGlO>EphM(211!|U6a+%rUAn1k?JS0Z<9 zA`|Q=Eb^eJ#gF(pN4$!S2&u6~R$)s_l>_S!S0azLz%||&JDComAZ?tadN?T6XgwgM z3Ew!7gIVMS_N5FI;m@JunnC(V?&22X-3?C~tN z#Ub4k=L8e<{XRg)?L)Mjm$JDrl!w9Xu_3VkB$U5L%F#4SvRl!*We*2=Mq zG{8050!@ciEVq6amn2*4V$AW$aANGEDmI^Kp?E_$(iSJg^^Q0fn_-u0LS%0csbgUT zmfMgr8i;kgK9=DI==!h1E!76=D1DR_Hk1sz;*?^HQMdsvr6$-UYmqx>Pwt>IRuS)0 z-X)@;LBy`vB;t}xi70l$CCQlJGH0^OLs?kc#jY(QoIZJoOWz*k%%_|A>7xaHI~7}lo<`2@Z{?eXB0itW z;-?+;oY~jL_q$uU_U#s)JvhUQCzm*NbRFl8PIBS+EMI>*%H6-hF}(<;7qghf{AbPI z0!%m57B7Nn)ol?>FJ>`|`LC4dsncxw`p&;O|F5HZqi^M7jIEyq`VI#CS^Yg$nd_l# zXUu#0OEGjc!YA4rdxan5@Lr*8zPiJ(laQ;vKame5j+&`#PGuucO7ES1scm zjTHjOQ8UtGg@GpTtonfWwU_f3t!2EWzJh;Pp~0V4sPUn$9%fEX7~9+NhhndE2(;==5(uuwzG*Z^}ILoDr#@bR+X z#DNLQGJ>(S(m^Kk$IH(HH(y6;TXQL^jv^u1o6PJG3X7shNfncjD5AA0g3-Eo*0#m4 zV>FS72ye<7+NdckAul9^v;c210{n<_wjfRHN=BHHg8Y1>VsBDIBt&|9k{y#scjqwe z)0=4>+sVlG<4o>8#*TwuF*vt}mZ@E|Pwt>?d@DV3`{|xL!2E%4=%3p|L+=`)72VJ} zKz-K;BQu+6?VF%|V3L-eQ91`EXl(DNqj!{+u0dLRN9gGtqO)(3mcAjT8uIw0IGBqq zQG%l5m%cC_w@Z225yGRkAf9yu^RP9Dd(8pdX$s(WOCV1=L%7fw%%Kbq4pzmG7wL|T ztvM@~>a$$K977imjO^X9_mpDl=!1iAC{`X)Oq~1#DDCVQij|8Gmd;*Sx&$B%l`~$M z#QrQdE>`$)yG6p|&LHkJiMiD(<=#*XSNbFPsU?I{^}&486v2-pdHgtE$ERcU$XxAF z*D~ULO%rq-JTUbP#=>2JgHJdPl5nh5ZfRA6J3xuKcQ8iofta`lV(t-yOHdSUvUse0 zB5(?d#Yqx_nVS?BX|(V<6__>_`C#hmhnc$=hk#IQd_#oqrD}nT0zz>QkP#q{;PA0; zSlD)e!N~;%C+8TQS;zFcErN=pYiNQs>$fw#Zac$kHZVTFmFW#T8C}~ek3OPzVv7E$wG2$JqhoX}ZG+PcOwKd0W`A^2NYIjIOgUmSP1)ZqonJ zvR2(URE;Eh$PlS~(ZMk|1Vs=Kn~i&D3fBIyIEAF(qDaL(EEPL(xB!z~RPA*C2tkpe z@=gaP7ULF~jg#v2l1Qw46vFFWq=^K?6bOLaD?AhLh%EeL^6?H!#VH^H--tAV5)1H( zNW(QG7Fm2YArWEthPY$lYKVKV1D+ucxcS=>l@Ls6RW?bPVFU-6QIO+LVS$viEPvd5 zjPVL|ATcurXAc{KLVbvhlj81agT1o}B42y#JghKxG{M@%0zGpbteh<{urWZxL=$~0 zBXrG;SgNIlnt?X@DrdgFmH?hD9gQ)yHNxD<3|$KyOzq9lG}gwz+yG5IO^nS9(KXOQ z&sYZ&Q!UKQwDA$UBJnb&B;1I`BpaIJO(}>pCD_-PFtI*$xi0k829l@HBVJ~TuctAd zE@tQ$sbS}!jjf3;26}oJn`vQVX^xS;2D(O?=ouMeY;25?u^vXIdYD^T;_TvxTKcJF>WY=ik4+{I$7o_Zjydzx+4n|8-Q?E7joP){h3+adepN zANMn}qk*A?5;`ZdX&OwVp+Az2(Rf-%RA5?3$7BYho2yv6rx^6 zu@6ZVfn+s?QrH&zKR|SOUn=E&DO3%q?x#`KlR{~4ve2OZ9VkbWRv%49LzLi{&To$w z9xLifB&S6MkX4BlJke3bfdY_DZ%~p}ub`wSiK6a!R`+MJx<7@2jyMY1V+AdU3R>s2 zCX(M8N2bdEtok$RqsePc7Bn6e19=p8rT-6&M}Bh@*)4CraBUu zY>Pb6L1<40#hT+6Zbo3ZIgRb~r$?HoU!6s6YB+-(RgCsFFg@JO+R;vG3R9>n zPNKakkCB#gS_`6SP8CxZ=|aB5jLzI3x{H;x<%d$2C!@PIpO(rjYV#AQ&558cOG#;R zFfl$h#QWJ1FL$N2zk;6edZHt}35)e0r#7C{Q+Tcv;j5kR=!Kk^s%SyWs@QSy`Gu;~3 zBpbZb9I2R0%Sa_ zSRC)bbh?EW{rcyxxBk5zu?YrKAOo7c~;@#ywN$i zXTIFTrBgfka?c>&Y-!~D!A>rJG|c6rqkO-$k#qaHIDcS(v-|rwv#*h2OmhpkUKL4>>Vm^hfTTu)PY z&2j@Bmg}iwU}J>7jUFoum!e~>fr*O=%MDlYzSdGSO*K(BSc!p^K8DstEY(@X2U;t5 zS8X|e(OAj*sbnwtFm2OsjM6|4Beay9<2Qj0&X(B#7v>c4xQ^)%5i(M2ltBTVj1QhWfRLAE5v zdXNy|L~^7HsWBd;#QGqUxL|3bgR_GbK3?`XJ6d9GX^fw@9bT?FBt+X1Ei)rB&=Pwq zJuDrq2n%&ZCb1{j&z9ZuT?}^Q5vKGYJtdTc#9$;Lj?^}$QdJvEQnDxU2_BRbhmo5j zBQ?d3hRO)qszTW@kwHynAgQ@IlvcM;92rGvkT=QB7KGVaqja$(TPY?lCW7!le>Q$dcnz(6-s zG(%5U7xU%uoUD{_rz3_tU6DNOQ}U=SkVnmdJZ+cqygQg@-N8I=mvFDqj~fl%LVNmp za|kDj{5V`JV=yO#ARkATtLd?1l_`3*Zdj?Bya8cYdq}Wy55m$-g0-gl{@Kld90c-Z34<7P3xH2LwYHHf{{lM1UM;M-*r*CA6@wMw1ompUX?Rq)}CzzPu!o>Vm22|jBdOd44?qYam zJyYv8GqZ6EKb*hF#N0eBz5NWWnWd$Fl+Mw$wDwQ_-hv;UX6Nqx46NOZxwi}(u>xaJ z0A}t%I0i;wCsyLCNThReJr;gpEVK7U-91S7K)~8fiiW*6+D>9D+{4jR0ch7Cj71W` z#ck>##nL-O7>u;?m7`_nft8;UkMMNi=qiuJKPF31Y}iW@G53iS)E*AOaoC6>u=Y{n z7LtIiUl?AB6kJ17@QuyGCMXV@fH3TXBCrpP#6y{kS6Dj!F}e6eqze$*H6#I_@C>2x z?X66}KRSbe*c<}m^Y9E!CO9S&MNBmE=s;Y=wgg0a;}PtHleZY(HW=BMqOPxn zuCYF9+8Su+>7u5y3KMHRMDFG|I+s)N`?m*#jAdULF3Pcx=CQjcVXDP>7kH09dT zTkS_xvIRLYmIV46Aa=LH+EksmI2&9XbTHO4CeYs%KW`D{rUvL6XrpJKfuW%mM#kD0 znP{M=t%0e|3Z$+d&{}Ltb)h=VWmYs6+EJ5kL`|wOckbN!H`kMYoh>Kt5Hod}m#_Zk zfab4_>Uy>9qfvHzGQqZwhS++fmkkFx7+GJ=;Cv~4Yl|3JS3v(v7TuGnbc`j_yEc=N z%_WR%s$^zY8&f+Pm{c{Vw^j+jdSp`t%@Y|kPo>i^o=Wp%CUqkz0+_BIOs2dyQP6s* zTGYkuF=W=sNv;SWrpO0HjtFIrh^Rs@;!4HjwkRp-PM~TqgX*CSR`(`QJCa4?c%h*8 zDCth6pd*2-rf_oG63J?g5j@nY#6-cHzOv(o`1TbCH znM`48EF~TBWLC+D%626t$A>JHlA1GDH z8`-mKfv>+f#Al!E=EP?o^U>iQ{CMg(uU=l~^{+R1^WrLRUR>eLv&;O`%WM4h;wHbn zyvCd7H@J53D|#E#nd~ZJ{YWY6hboxvDPg#ygz14Q)(+LMdAfy#u?jX!RkLHRf%)M| zin78e%8a14G=q-%Qo0&e)6q~)ZCN&bt(DXjr_oiD%V=vE{dJkN6+}@HVMm&$E)`Ku z^cKtMDGsAKM@Dse2xW;<8gn9O$q%O?S3z}#f}#X}l0uwG4{;_ZD~z=}Mo5VlBlEK$ zHC;+-Q5cE{XJisvV&x8`Wx0{u?21={4$-CNR7{FdG+Gl>YlWoJ2H$)`W)D{(%XY*u z#t_?ZO+@jgScd4K9FGG}~#p+?JgOUpH{Q~`*pOe%OfDqikkTZ zqAQ&U$+09TQ=gJyDeUK-;h_gjm>WhJ|4haomn96mDt?}ph^?5Rer6i7e6VPZ! zc)thEMP`Ke_>nv=Be=>HMUw|{J^py-*kKT;g>{4p4)K|+Za0*2Ke!_U7Y`7 z2baIx!Idv}aP{k5{QTuE9^L+tYgfMF>o2#nWn(w%);6(zx`B^(^m6sb{XDsOf~U7W z3CYx(ieEWqKNXsJV*w)R*zr@^{fP z*Atr8I+jLgnH%$gjwb46CISF|OH+-dM!MLGy;y0i&-)tcEZ5cN5AQGK18sf&yh4*d ztLyNgwjO$V+IV?5U@x-3+QkxuA`pqcGg7GoZq8c7M7WR;a7lO7`?Ib4LVhdB;T1|&tgAs1UB7u&FVp^GgG z-6SMQsVIw~qCAF}ICoZ;N72xbOl4&x$;lp+l`1GIRFa$^roJMA*7^_*ZmJ*8td<4R6z)T^odJOshKOzSNt1dLSmhy=jmE^ zgz1ldV0Q1h&r3w;)9MCZ_ zWr>;@+GZ{|cuR$Lw559hrY`=%K%aAf5_|6uY&|7di+r(h@VeKl#Oi*?N3+-qXP&N{YvG$V-&{=iv|2wa8OIvx#gs32|L%{E#*VJ8t zm5=JY6mu11_x_jfJfm_+uVc-ItsFjng0Fu(O?&?UOkp+M7+XM z5l3eUPH$&PB<}JA+++#(D3kD3#NivBgkNMDzLBZ;N2L%D9*;aqi6S--H;FUBu|Zh6 znqwt0!9#3^wMd^pr3n83Ym^Enyu1yGNfhHLw#HrTh@aGpw44Ou(xRwruf@#SMi^(+ zHqpn>$^=bg9n2gpF|aX4Q>E;1vcOB~gPn&XdKL!gn(Luss)Mn$0S4weXsH^^E>?Jn z-7&T@!ok%ZEki9d^wiPP(-Krbt8{c&sl5VQHw!|-yzua{#l%z>v9lJPDW>#fnb4AK zMoE|^-2AZ+Z+ zF*er0Kwkr6gB7@nwDI>dz{X$&ZszY(m9EWXy#;mo>J%sHQI~E(bA}$R8G3&en6BP& ziT^wGD9>L0`fnclU&-%{>0!2gJi_*)BWyc5$ilvMrgzjcw7#5)%@s^-ZD4f$Y6fPr z=$T5RYa*4Ag(4=lRxz`qjkUX*ncmUNnw>55&6f#-h^>>E^v>tgHkD52Ob%T$MKp|N z(>R_f9Gk{-X`aZVZa9;owiwcCrKD5^kx=eOXtq63MINNr$|&iIqh>f&Xj}`;>%lY{ z#&hVHEv8{So93x}Au32+KA0w?xF?aK?idQY;sg*~F_cE-aJq0T?2MgTk?o>*;RKDyCO1o01 z?9ZgAJ&B6`G)g*Rgr<0YqmuYSPckc|l(a+$$K1LQ3K|p?H%AIl0qc}vPimVInVV^0 z3> z$yL7pau1W;IjkQkW^SmMsh$Fcn)8_Mt7c}Xf!X0^CVMOCZ75*VbS({K@#H1R$WIO> zJvM}vnj(5zs;DeVqoF*9{`kHC0%B7(j{33L!n#i>ycwO0s<@@05_%?M`5^C4ss6q<4EGsk6kt+LGWJd$I@oD4$Z`5U-6# zh6%PY2G~WKU>u}@zVAwO+?U{&ZB0nMIZa0tG=CIE^FVz@ju_KXXBIZ7;Lt1Bvvd;-=i#<`zj@SgOAV8*z z$ZrMKN?k$c5!T>|ZKxq-<7pUsYT+O=B`D7Wb?+rO$C`8W${ba5NksMe5ZdX8tlgf_ zPB-Gmf(Y;PBfQlYaj_LCeF2CIoX`za!^n3PwlWQ*36{j>i74)ICZ)v!S)Mipbt2-6 zEr{>2CwamNuS_+Z6zX^etKsLZhqs3YkD=+Ud^ zclEhFUOKzT3unf8{o)cYJv7UuqvM=k>*MH5Gbb07+`RGc4?le2gD+UPbd7KR2Yqq3 zpZ)A-KmVihj{ws}#YOvITD9zh>HX|yKmR92^+Er4ItKjez#;C^(Bbzw`s(#>4(RY- z4`}m$-LK7k#^&hTS@K(rd(pNw#5>3jVVDqcSO6XpH?(baFmh52^)klLRv%MGLrfeE z(X!A&&)NV(I};8XY4ZmiP43at;dfex_=AoH_vmPHudXIKmPQ;f(BwYdgWRuwKla}C zYLKmGW5#`kdTJnjpOH%Qp~D{x^f+X0f{CkYh@2G$Hntes+4Ikbw9qg$N6Xw&-S*b8 zw#3jxADPSte~}{*k^btThW1l>c>PmRHAAw>Q{QVuVwl&1f-2rPG3oI;+ zF}Kpi+tZThV0Ypawv=c1Qk3dSeyT6Qfwn}3xf3e4A}-hwiJuj6kuAs9x;e2qLP)SL zX(?h#%Oc4y2qQZun98aIYU|>uu8pL+CY++85Gu-I>28c?Z8o3A`b&=lPRWAqG; z)6p};$i#vgR*%oEq3j>0e`Jc$$r+S=lMIbdve{a~^Np&ubR=K(MDp!O0$=tj_`F@n zr=2P|t>E)+IbZh$^GT@DAjAL#u0jQF{z3Q#$jMBJW41hn(*=RNR43w2cPQWVMDR&h zIA5q?bPS*N#qeow6kiX<@MTXZpLYiHz3ROV#&f+rgs1v5NeTAB*vyK9x>gw4xMSxZ zgss0y-;t_vj)5UY=T_+* zUtnl@g{j32=9ktP92(*M>!0E#io{hEsUFm*`Vv4A8iOJ-9#5f^07W>1(@O{<(>P%1 zi;cMraUubZu722x!U&Fzz{XFEsfP^PfC#MpL)60&ZB&1sG#U#*C{})9I0eQbO)SJa zGzss}1hvY;DvTMR>{+P$cFfOUPF@qkTgX2nbI=o}}8Jjvz7yQFIiNs8Ax4!ih}{ zM-nAM9xuh(!wes(15Vz?_(<##g}4zJCm<_FPGp=nQHcTqtA2I1ysM^a`O(r`Z{ zaSF`bY}LbC%^j^VwX?w3))Y$@E1dn^)Pq`83J(vFH#Y9}>V3x6#u!@};NoMCx6l%yh7{HpJY@09Ow?b%R;YL>EH~Jsf@P36Q$s=4Femqd6e~X7prO z)1G9)V6Hb+;TBXxYO~s8!)BL14Y{^dB^!~hutMNrjo8VYIGdsC?zOrmi-la{F*I_8S$ zS+1mW;TJgFF;_~{M7|nKtNhj#eW_|FUD=%rO`N+Pt$lI^&`2|4&_j&jHR$W zoYL+H3R}X+sFYFI6hcL345jUnRCdKt*%?QLGM1{Ycq)`}nSc@euSr8xf%SxtL&HuED5wAJJ=H`1yG&kbd1bT?Ph z-=S(t*D|QAXJ%N*>_{sEtom5>?bLrSP8$q`;;#`uw!DkCRJOj(v{ zznGE~KUzD(XkG{>f7qYcW@iG6Oo(oEBDUY1sBTxJWtLP-h7n%ki9?(|!Xg)}BMoqh zH^(m81VhmwtV4B(?e!veK}y}RNZKBXr0Ze=!%t)~_gpsf&*!rEOcsSBe#F+=5LIDK zQ-2WEtpSLWjY;nmlhowN+GBNOj);+UIFm3LfT+=ij9wv@zK8IY=;9(ch)t+I`3upM zY(!A8kd8;V9eOU>L>7y&4%Wv|s)?yoo9VM{tUjqExW$>|NnheeeaK!?kT@wJWm-Yv zkQ8}?2dVu+GL@mklzNg{EFvn)9q%v`>?GPmS38h9!nL}hM1AzdLF-coO8z(nCdEJX{d&Y&O)xd^DJL}`W~Ns{5qfCd52eD zzR1&09OtDM&T;YKE!H=?SzPU+r8|jZyZu~#c!A4j$9dvZJ1;#l&MS}fbNN&+@4mFb zXCFPt)i?L}?4z^1{9r%tJkraRCr0@2(l8%in&6e=wY+hvk#`^Lx4| z`_F9i;j>41bgQ3dj*s%{g#})@u)q^Xhj`@32xm5jIKI^PcY*2s>}Nmw`Cm2v2rw;` zX6}P&)v^z!_p_h<{GS-r2mQPBbos5OHorNj&2JBA^Q(I``1O67{OZ1g{N|7*?y?{} z$dtEK=GtlJ$BV7&{YI2|60kl*eY6oM?oXk07qRstAs$qv3{PxfR z?$*-a_d43#rJ=#E4;Lt|?aHT6*xl_+SePo%#whKG;$5EvRs=kOxR+&ntM#1x3_DGPQX&)*4& zlQAMsYsAi01Ugw05hNu<5kgo{Fq!djB!veNEfx?amXTFaPy5scT@y!8PVLb$eT0^= zE&5l^GI8W_`j$^Ix$_`>^V_tKE~*{G?fnxBj4z<<9i_3om#+RXb^1qU)Q;(q>1En_ zMriFEV0dhXo`EqY2bG*`NaEA6biN#lJb{@fqM7ky!T+9BcVE(M<|72NESb5kkf zPMd^Vjegv26>zn|i%+|Q`B)jkb!8}jY6@k&L_t)z5M3h+G_r=Bwd2z8+0dx2Ruei)OGe3OjpS4(M2*WoVC;Zy?rz5qQW`u@4Bv zIWPiCZz)c~Fm*hFV$@A(6`WSJr&aLWFDyw7tyRaW;-QGgEhrXe6{J>aNkk!d%A>LK zlVj&6!_Fgskk}ORiz~>c zGiyhfS>0y&@E%K>yR01EK|fabb^(w9rlhrOk8vZk%3~e!i2axJK-x3 zu(Z&HlT3=PlON{33M>Oc(RK~M$XkZBFcM3FO63uRsfPm3;3WK1jpoP{q)7#M2B+X3 zm5U;!Os(SZ4o|}`Dhp>>JYJz`NRx`xx(`W0A-<96II8^9k=eKhr{Nl$hI>dlK9Sk# zZGo|Qgr=4vi_b?CorPaWJc5u&g5neKj|jy(BoI%zH;VW`q!GRZ#|EN^m*XmQ#Ytd? zAjlbk)D}ggJ6=LdA`=A2BV33}4?q&`NMNWF!eA%7#di3JZIDHJ;w|^Yz|Ih3dtz&N1UC_2$ZTZdtl{WUS7MMF(VQFWIgPWDwOC1;LKzp(U4N=B)r?`_Z zG9Xuch^b-=*4w?QPBx`B(VD_&7eqdm__^wl9ce?f+yWm@OG4!~)YnJ|RtT}Pw?i)R z$KS&df$RNrHQLcuX24LLD}#*|%nUlvP+>%7f)T|T=9HzF(3Is!dyd`z(8lz_6W4h5 zz0djKhkv{8zmMvEb>yK5b{`pM?R1|SNUxmiW9CS+8ZwWp)-t)-#KcAeV{6s)tAO)z zAtNh=jBVC1w$Z@S$xarIDVf+(X*?R4Ki107S}Bt|HH@s6GqhHrK6YZKjiL1h`d4b` zTdt;mrIP-YYLv63)Q_rQZ@Rj@oZlKwu`-(4!Bn;SLp4CLd$EMxVkMmvlHlQDWk8gfw8_OMtfQq>TG1JzlqU~O8TmEXv&nb*qKK|oHv!>4s@pb(UR;< zX_y0bN#1OZR59I_M{9mKjoAu{WBrH=up(Y$OJ=AGAv#eQv zq!IsYYXtdDn1|`(oMeSpx--sk=9q^bBy&=TtkQ$PN=NFBMo@P=0{;>-G6n{l@U?xM&FT4#?Kd$H0Vdtcp!0O{)j5gDe977;-Z0@ zp9T&B4V>akNS%<5LFt8V~iy>(YhE0X_MF};rtu3$SR#l81W{4 z#EY_>V2alw$eNZ?xe`ilkC3K`FeZ00)eUY}sU=RqCfJ1<&OSQC)#?v{L$=1#wZ@+q;tM5F-ix;PP z@!}ZQ-#y8fw;t!_n_HZm&g9f|7B8G=;*GN{yz@{e??2kZ$4`#(rweVob*7m&Pq*;O z$#y<`YMJ++In1jUW_f0BoU`*v9^dZf`BS63`rsVTot@_Kqm!Ij?`3zkWgkrMXFvP- z-#Y&YFdf}Avk#_K%RZRi&wlpvpDEfkPtkMkLw@-GvhTl-8cZKLsBSagr>DaKLv0S| zYjHqdhu_?PFMrfCz)2{@!b_-jH{YeJ&#yH#`ON_hHN^g{h93X*kUsYq>0#<@jIpCJ zrq1TvZ=`{ls}07^Ry<&;!#xIv_-9>RetqB&zddw_-)U>A+t3df>u|tW3r%w!j2%tY zU|QQ;mxCrc+@r6}@3ghKTT7F>H4k!^#sl1~slk7F;DGu%zk1*hzthy>_uAU%SzB_@ zSO-%lOMa(ykl$(RaKEk*29{Q8k85{lEpx+4(&8g9v$aCU%p4sHE6f~SIAEv(=eihJ zTj1>LhO?(5R<=e2`P-3~9zaEjh?odV;-fqe`dAa_XM;>=Mtp<=S&6=+Ci)T%czP*(SktguU#A7Nnr1Z^|N>6|`B$LucMOK0d=K12WNDMr>#GQM_e~7knp~o_XO!-tDTXE&>Fl4NvAvJ({t3GJMrm(rWwAY<$LmA+d^nM>2EzGF z8OZ0|A$-vr#wYDkKJ5zT<#HchZ;az|9sRSL;30zUdEJrF_&P;YzE5 z3pL>+E8MZLu|`wV6k}UY+*K`UfgDds1a{sMtlR@|7b@@+%5n1%5hj;2lpoE-x=8-i z5y?kgp?uUL;^RgE*IQ-WY?pAeO{iYq?oe>OJ%}61Aa3=9@=1S;`n`WSn#h%|SRU!g zL*na%u8}2&bgVJ3_rlCS2s=SIHhv0qTiU@t1P^JnI;y6zO2^?O4#(OzNF8^1tXk8d zdh8;NRD)~Z@FYAGDsOTM4goS8RqtOOg_AHCSN|XaLu1G;D5apVjJN-Eg?B%^#>Gp| zFukzK==1^;i|h1HE-*B+%KYYWmUd352OiF@ZL_ex!|L`i&Ru+x*WbIUc1`z;OfoPr z!_f2sV+)(~PcNe!nqqirk-^bPmR8od`0R6}mek-XiNHl1iX=3Op@Dv`yz>ShzW*NY zzyBfcT)D>EFTT!+#bt&XtC=2br?asZWlbKt8%netoiT9p$J9rLnV$j!4+)mS2n^f; zvG7)4=p@9#Q{~tWBOp2xzsOYlqBGUH4$t5;MA12jV^xC>qw$a@sN)@)qHav9j*%r5 z;T4jsK1URjkApZ47kLV9!RdH}W#Au^r}jz*B^KfnoQ!`&D#Gx10z$)(#6;i|BF0hV zhEsqol1Pc zUnU?>5r9DKj*F)io<6pCcv&HlxDyuYkEf><3b_x?P9``w8sQhVl|kqcA+`LnAUV7`YHp|LlI>@W(0Za z65?Y`cA}7+gaEqR!YRrLN8sf~X?8UE$$n(S88F=8z*wsl)16jqO*_%kVnS7kA!&)G zl;zuz6{Al{v@MNE&i_Lj(<;wu_3pcT`~Ckj$oZu)J;~woqbwckVQ#mXg=6h39`9jj zrA`fxCy%r+xznT`a5%Hu%*eV5G*>aPUBm2=PL@yfGqv5$(urP{PV}>ItdqH;Dp=jk z%#jYp57#ig)5h3#JwqGSYM4B*s)Ez126ep}Qa4THs+AmF3#DphNBc}Zo%0217+pV- zuJ%)_fV2us53E(Hqq^4U;c5m|?`ON7kpG9N={%HkDpz#@%7p@YSIQYb(#G&sJtJE!bS{+9K2u23cmbu|iInxEs9V$Jy(yIS zsPrF6R1c<6JFL=-6wp3fK+|L<6}|D4DWj?Gj;CB1NkL<%x-s22m_oCvWjz>2ZBGp4 z9icQ0CQzdcVRRsa`N2$f7Ao0W>F2@Yi#&LIg$pNV*_dx)ZKjo#sd|v{a#B5%L^ zFwa~%#@_Z6n=Ae7tPip_+r>n0F3lyuEDaX3w@}BCxq24Wu)2_$fkt|pis)-CrKLKX zyp#y?Qo>1#kx`ZvLqS?N9Sy|{DjU^6S_P&j2RazQVwJk8-Cr+JUwd zcZN$Obmt41sEwqnP)1itBu%+8y2>Kxsfea7Lq?+5mNdBwg|XgLB#5ZZ6jPTIOhuNA zoLFD7qJ7DY^QR0VmFKhT388nNyzmfvBZts zULm=C0XR#w@QOCUF;*KMfXe+%E?TQoF3u$-XzaG zv&W}5o>l8RzW(e5zPSA;PoHS!(d8U2E@txV;SydxR>kY58hPhj8?PLz<4@E&E`4Kl|Cwf2RDuvMy4$_uk(HrVWj>u(US7(Zv)87b6^8 zO>p$I;g4DeIbdSW?{tj$^&u_(%K=S(qp8PT+J^l00bPFkfF8d-pv(XDfEM={>0;() zj-i7wI@SiJLjdd+ssR=AfAoZob}V8S0^JrblsQF+qVM^z`)5Hc<^tH0M486SbH6K0`D9 zpliVWdb(IT*MID13Zt{Ff{BqvGP1*|s7Rrst%T<0Ji2=e=^4nQyC;X%)^zIY5-7+PsasYjw^|4a zky1ObgmV521KopU1^JT};6ahU6RD0m_?c?r?O=)6)sYZS7v$0a>f72WE2&24>PCEk zJ0VUcq=(5Ut*9a3gr!R)jdqer6 zN5WTw5q#DY&b1B&uQy0|B;So^%LP1I;K9R%9=u#H;-fYhA2)b$OubWZ2u}}%=vaWa;UJ;pGm4?s_BM% z^Hlkk&h`=OrAU-GtII|{K1a;O5BO7cH!MAkgXisbQ*{f` zM89(qdKSC(x=~FQ2&U{*UoOZpMTmy%PWTTTJps2JF zEr`IuYG^IrcasB#kp)npMrH;7d>(jOEWBE8@ePUs`wvc5WEVRDU(olJ>fc*;UeHt+ zsJXR7%t)gfnSCKFqIV)dIH-i(}n$d}UEd2z& zb0pvO*9sI=#~wqY2-=>AUMw*K!y9=C)WP-5kBBuS$4aW_omTFOfVe&T1l=E8?;4a= zfD2<2+wiV@e4+qGtqr_=D!1W{9b82rOZpn5JFNEoQ={Pq^i9KQ6!pOT;@);sq<7T?FpY$}zxp&QJYb;B95}D^hG->m09!)L%E2?#bomSxi--91(RxGLCL(8+%ZI7&Y|M_wV?JOD`kJ ztArA&hU`e6&dqVdi(5F;R)KhQz;!!?BQ~Lo+3{L5g{#=R*GvFoE}^AuYt-^MUMtQ9 zck9mZj0~)$$LRlnJqNm`cJ+@99cz-N&QKQ^6gk@}E*8}xgKS7sNb1aUX)%qA>4ovM zFdMW=oS1XF+6wB%WXo?2Y9|y*X&CaFsuYkDypo;xfO8w8fZq`fbviapKqYLdf+?g@ z%7xq+#BchUJ+bL@xYf}n&6HVD;ZQKNMW^)ePCE-} zG?9=E&VdzvT;Ik8YTh>=ajf>az{c1_m2czvCNjsOw{aYlmE`}4f#eB*^mnwZqZETF zcIMPLyIKWC%<(^DeD`6uX>^m=zNGNzX3ge&Y2%j+go--5$Mh1D1hJ&lVo=MKfafXm zW+_lcbn{{ccA&pD--Den_<_^E;1>rNto2!DO+X)~wo|8*}wD2KlWX21U?qVnYLj)-= zr(Zk&Yff@e1)osX|C()S-(eb-+sI~$_{n|w>RgO6+$sy;k{^WZd1m`iEf(=wTL#m+ zy4c^>pC)Euu~l3?`b`Y{wPlIP5vi+`WmdocAn}0{o12j`<9%Zr==QFrE$@R{_|w?Zl3*$f1-NpF`SLR%&2I_6f~4F01^f|n9JroDXC_v+Uimg^6*I0 z9B!?vi$ZhK#S@-9OH#AK0=eBBQ}RnJJbEFGz=)k4Ii1ae)3b?!2Fj?k4RP9g^Vlbg zh210x8DkoI47%o-oHEaIX6Q`7AziRl;(MZXdC-tJz9T*xl!C`ApYFkhoveio9_bhQ z$CVwNON;2Wjfk}*KWkX<>5%9F7?iR%y9gy^Z^YE2#Y(iz;b zOgLU%RrV;1YKSD^Qp^{-iZ9Nu3+OvKW+t+Y|1+OvWk4i%(vfClQ1g6b(DK6AFC z=S`lStBb_M-CM=b=RbbbvX0AOTQ zZlgST;Di`E#7TmSQ#nCV8$6H39VP0V6na1lKe_^nZD~X03xd)WQZMluC%eU@Qxd26 zsjD|$`H-%)!8`MKkF6?uA;;**+~V?De;%)o&6%*s)jhTF%zA;d? z73d77R7O@{X68|xU8A4avxZSKWR+uT@_NO6pu>MeiTm}dvHyLCr-q;6yzpn92~R`R z-6i3s`N@!Tt75*Xzis+*DFAs^k!>ww(#a6E{5ihBZfs;^Cqw8w%QZiVqw~4vv?H4N z`KKvR&FF}(zkf6C7K$e?h|JDk?AJZQ2p_EkQc7-#^ef1WGA;3Wa*%8t=G_wv&tYG@$ z;L9;QIytutE=b~lm~6K`FP%JCCHL(?5+!sA9x%>T6Hz-_sx}9;V+rmh)Ehr%`0+bk z=mCsQ#moz7)KSphEb&W+e-|}rEII`f2M=iY|DJMx){?<&7U9}ITULz6*GW=M+)rCo zJDZhE2TeO`rv0tWv~e$On2XvM$3Z7Ad(@C**24b_js~0vzUFku5>A#oVB1!A~H7dEgT$w ztalTw%*r>o`6Z?%i`C>4njTzoPg4EW;^FzwG}@jW(m)WSn|5PLVfnpNv*P16oxa$u zCVeBrQM@^Q{`_#dr*o`Gow;MH0cnL*^ChvTJi4|Q9>^nE`hcs)q#1JATWZ>x@!sHe zF4;s)ELCDJ2zw-owmmuQ#)P%lr6Y6VN8w(asfJ>{3yQt#(FVS(t^;C zz}e3<99|^ClYA1b?e{w)l`0xs@hN*Gikb8zs5QYZMToB4Oi$@g{$D-;aBFd@0co+^ zM6!P^{nFiBNYhHdprS1w2E!+#4};OOf4qKbtaE z7LQf2j4Sa614P$ygea+&;T1!aE>wShgqmB1CQ_2!tT0z3L;@N~rSl30?Nz%_)@LX5 zMa9x2)X-CqVZvdM;PBU{)-ky@5T zAD^#h7 z&K{+4gCJY(Pd%Wefz_XZBVdi98#4-b6f`@jr%+Twq}Xtnt?e=P&W~;VecG_{`10(v zi1V(@{UfvA96L}VV%a-19|D@egQ~4+-%dlcymbm}YiCI@mgmI$AMKvzo9B)LOzpq4 zIZo&1z%JFop*f}v5*9;VN6$x{@ zk*K>a&Q5CzJBm{}pZ%(I8?9_6N;_!s8z_8A>`R@`vwukEzaaFEu$zRjuq| ziz*qDHhxmmK7>?ECI4dC6n6_vx%^2RjlZ$H5tkPQTuM<_#>bI~8w=CJ!5|}$zvEh_ z7@PUtk-!$9zzNsAjn>hQdUzeaHu$X}f`K%^;r0D3F-KQq^cL@GaT8JQrYh+1bPsfz zClKvolKi|!p#y7iif?G*Vx66I#t~k&dP<~S(Bc`KREcGy>wAiuQ4r{t7oTVB6Hx}p z*D@}#4gDG+6AUm*!B4jK+rb~E5+L4MC<&_3detdRu|4(YR3MpmFosXZ`+0OC zc)J${pIm%+*K+=-zGAIwgL0|n3$@)w(>sgb>z9FkBQ@aW;c*oP5$m&2eTXJIVN}2n zO*muF-C~a4;mD3f!dVnE=1wlVTq8=}ODl4>WkGbTACI?4f*e-=x)krE+sg0gIbyrC zC=Y?IMD*;FT}tJrp0Lq8Q(Oe`;ZFX}Yt^}l-+CD$!}s@`W@$U;$8$(>?yS8_Im084 zs^dj9y`~#S?geL8S(AnVxJd{}z%})xd5)I)U8F9| z13OzFF1{zN#r>BoZc_YbVhDZ1f4g&bzk^kiC{OnBQ)4vE7(GOk+s6iO)yNMDr3TcA z!aU8;<9|{^%~y#;MtMb00^?-{)p zTCTdA7+0H(#khkkB^uWL&S!dH6Bd%qVBwKwg=x_lrWaNKv^4BS{okgHWVeKDccjH~JIm3-HxH$*N8Wp!LR zmmG|S!kI$~9#!2_N&iY5Z|fCy4KJ1ztf6+5F}*<4#ceb<4UkGUj)JxYbxT;oQhJHg z!_9w-fsX%Ez`r(Z9WTf_zESxtd{rIkScca^cKK>=g(h{gBW)&3XTzcjuytuf@H!5M^ z>~TRet$#I#4YhzzdsJmHc+Gx^EubXr2^Op%trmO8DBiSG1U+uSQ@D=mW^UM<+jYh7 z9GSdpOjzTN7g#WdE!1H);)#Jtv2q{s-19y977s9WCVv&Ffuu%nmtg+#LGJkbft$;r zccQ%Q-;n37|Io{>{?W;e!(A~i*V}&e%j;ej-^a%%!`J;FL%`P;rBFa%HgRun|LpGW zpNN~fhv_!1*X!&Hzn3edp09Jf{2lM~Swa7NMWMfm_*}bt?{TXg9-ml(J@?p-y?-H? zdOjd#^?HWH67noeed8CY(rLy}nb&fLOITA!6%n0XYIDEdy%cISou8cus}Hnm;!Ya7 z7W$rLFsM*on%Z_|4~4PtAEtA5&y1|wLsc)X_#64glEQqj!)Y^#tISK9V*8&}DF0?_ zXIvV&x<{4{8;rnISu-e>2{Pps9-F}ERs-y63(1&*M;b9DdFgN~n9K@DLmF1}e4>l2 z6mC_k`Ky5T00tC`GMe!9H1?5m(^E#|(k}L#Gy=erwF%xrD7!hVO8T|Dd=XRFcRKVB z`^eO_B$BpLN~Vk)t#3yFRu_!np|Dpp^479n^ogDCQu{?Y*47$xe0ZQ2Jpv>;G|Ysz zIk%zwcYCy?%rZF9=K02U6t;9oOxh!IPVQfiPTzc)QrMhnlZHnTs55_((X;jmu0Ty1 z2_X8RkTN=#xX^`$AE1S{to>Xg{-Ih#)L|ObOo&`$!I3dMI%%a7CES5OJ(lUmS{596 z{s1glO6%^n`5xnco4{UZ$rpA$ZdC*MIOn`DOgR>r7Uw0Y;d+~xwNJ}7z_CHFi%$1@ zlHqo|t;~lk{%Z7ZMW$Szz;MQrvY{jsCG)Kjy7Tr9IpW`>CVC3-GZDRdAz-z4Gvbgb z)BJFsEQVNq2)8)yezK8-Q3+(-x8u`J;yytI{2NhV@S^?rI7(@GeNK2dM4rz+`>cR# zI8L6xpcqxTRz9^wCtvQ_HT_5m54(oAieaj_su(ZUk#aK!<-!Iw$S{z0B1kJd!j-#o zYwQiUjmR#+I-fLPXGwsKb5GxkyL2AFfViLO&l81 z=EF?tZvHRTg?~c)t*msxpSjlHx&JZXxhemj-2c?7w&S7%i`FI$Z=m8@%1VVZ2^K1N zMR4!oTE*KY62^<-)cD)6JTU(qrm(k+4C-J+&RgMrUpG1|h^cHsi;!dg<^!Dth?H@|GN;K`9q1~Yyi2sSpYN__e+v0w@Djk0veNtkZL?eKo9O%K{&k+d zqGBs_y|Q%NhGKQA2;1^n93&Vx$F|SNU>{KGEaZ7%d*`c9_*nA@7vDTM@J`}G`ECQJ zmVzM$lKm!jP)yy`WnDK*A;c6?QzN&LO6d0TGRL$86xB3i+^@mQB+77(YnGv zagjV;7f;$kpK};&)Oas8Hk15Q6J5$WHMI3v>e#|2BiE|5w<-KNoUBSVxspM#u!A$E zu*W4F=0Vw`bZ#R{&Rv2)Jq#_yECww57Pr-A)a0PEHr>M^$C>!OkwYeTxvg?6qEnP9 zA4*kq!;>P1hpypcTv&se$3ozes22W1F##Tyj7nnAW0Tzf0?rL1YZrtb=Fq;Y3Hv<5 zZL9LR)$bv-VHOP(9S;2As(>Fvb#T4iCDhO zh5DfG_l*&B`ybfNPP6FekMe;w-YSIRXL%3(78p)km*@I-m<_71ZvAwj%54TR9V1OG z%QEBd?PweKz1(V(U$CRSYec7D?Ohz$W0n|C>Fi1UmH;EJ^8Ie*P-OQg!kc|?Nd9y! zyX(Wc;3Db&X1=+6gbctVAeff4X2kjNXz~`n+0ch8b`7>KQyl~4DMX~`)|%9LM!t4(Wo&Mv@h_t(x@zEBXsi&-wTVqG zA;AVg=nC=71nsT8PA=D4c}mbD4=`Us^=tjD;9vTmMb?VKW|_S`!k+~mD%Bs0ME6=x z8w#kQn}+?(sp+Vm(r^xo>uG+LrI$leVTbu~t0HqpYxNg| zvB@4Y#swd}BZ0Y>hw`>f!1+3k_ucjjZl-pDrBzN{A$<6VB_KDa*wHPx=MLaQc?`%h zGSlp)B)y>PCTwiyDzdk7j4hY7Z5k$q|@csZ^bsV*JG;*r#VmHz^Qz$sq6i zIQHFjQKrRoduZ*4?^EnsNDoc#D(8tNZ|j!*;TS0hrerzfKSU{%gd!t~tr=4!$I4^nlFN~E z!s;@;HVZG00PI~;nnAViTbV{SB*QDzSwKw?C`l1WC7=v#Ps0U`p(Rb>>r&ZXZquX6 z5W>MfQ_@al{=D~^x}5&y{7aPjVGwj27t})JOq0az+gV`g@T0DSD4f#*S1Zfd$|APB z4Id%K6s~mV^?MH7y(bBHdboWq^Lj)Dd!%bU1K+HmBXQ3JpxQ!a_N{fTU5n(gt(;Rr z&NrIN)Eu1>;kQ!RUu9aZ0-nLRND|vBliUjA7D`1234>;~I~7+KV2$;Ri&3M-P&Q8a zm}1f&E6dQ@TpA5*%JxkFdc9L=8A)*X0^GR_u!0`3yoNdae&39Cf^~danvzZ+D5XS; zj7&6Nu7=YC|Wa zPE}{kTT*KA@lEbU9Ix?nm4+`=mrH8#2}~S!z_-pQHaY!{7)}nEBD^sF@&d!JDX~@V zL~*fpoC}<)AF{_WXSxiQe&v}_K%^-GThqJdpDnO|wFOrz!wX%VPneM>mT*N)x9+Gsg1ZwZp!iY3Zcs58@#yT zpJ}nJzkN#Ad{c(b>g}FUw0ZSQ?)CGG`S<*3&k_0c7Lon&F=!v~{)H`6+4@rJw&_0;3yStZNUtj%jQeSuXlurEc+19qS8Tk5)5%8+uex>-j_gC@lc((2B@EJ?+ z{nWosuX_NNxO);D8lRP|@16-mNLZ+>DK4Xrswy(#EThc?(31ftQr`;MpVMTu@~4cv z*>hK-nKjC7csk~%uWfLe#5m+04Gx%qWR*9W)3EKBe<76l!~G<{q(J6q}$ zN?Q}_;^>DOzH0Gwjhwqm8kV$}2!uXI2V!#y>&B)ONFBz#BdIxcm~CET%*&Or_^Gn_ zWWq}Nxk$-O!Lus;-GF^HXUNN*9^)wrQB$Hip;F<#kVQ<~JO^i6;=2!m`O=WDQtlsl zl^+!2CUmT#xzq~q?*HZiSt0y8hZOjV{O=Js6C13lEMY;>OlI=I@FAqr*UE-6U8 z1N!-A{-JLtzL5?u1y0H`*M1~#vi+EH(5z0ZKdS&VZ^d8qLdv32$&do&DrW+j5?e|n zq)!g))M0k@B^dd}5{qW+-HXbY8h;ZF=m*yp|3eUx59eZC8blxrd)M-|*&{Lysu)W< zR4{ab36`>kFDalRKnVNxJU@ad_jkdYGPv0}kgN+F!+b9E(wC8}PmJD!3+HsD$&MQV z&J$b+`^Q4#afbsAP#u2IFG8maV>Ihs5AyUQ){D9>*o2Xn$^r=Oi+bC_Px5#xXC`NJ zkLDi`>}EBam=j0$omljdqS#YL=eE;kl>#a387h~SBNhd6gg2eY*W(~yMpd=(X7>(l z2xULdYCNb|Hn9hj_ShL2j~|9~zM;%oIt6gXStg{pzIkCK*kd=WU=6qwhsJS2r*p-4 z-ATbK)?(id%){*XnI(GW15S=2-n9*A%s$1TpCIQkJwsJ@@WtFc5#zd}5N9xddDMjA zbN%xlef-}*kPZ0O5pr6GT?A`D0bguK;FZB6w3$%y_B{-nsIGyWA6A@bfEd3*QW+byVsw!`&i(7&DjmLJ46X;`%abzs2QYu*)Gc)KivSLz`_mnh~ znI(w6(b3(?oDuVjcr!yzWOS+kexI7mQR1xQyHOAC_XU85CME7!O<7xaaL$&Ndv&8& zrbHKOSa_Lu6)i?3bzEsPNocWdh*_!l+}eVewE^kGpOu0^brX{dDamjZ zw7cNldGdUkw;|5cI&?c=jMo`{Mvzqm-W1E52f$F`oStSYaTP~MmY-f;mv=cP&h((Y zgDk-+L}61`OxQf-N=$Kw8tsuza?0!mo5HY%g?>vN*9xFE-VSLn#!uE!z<^g z*%&VHq)Jdb4Sj;AH4Z+$13t-ZP}qZmk!5V~l2lH)3=u4k^UoPNoo+!X?3CNJU2#U zdm{|Czm}QRpi6U0liFbBW>WLdGiqOAG zxxXKsmo=8tBcc={29alkF431AYpnD7E7xvkXla=Td@=*sCTj@!W|uaI*lc~L?1?P> z+#@Q7moGfqz23ZiMk%epE-VkTsO1ewu0Tk$C(0ZbC+MP&yjyirj?sa+ zx3hol_P_eyZ=Bi`?yt0DsACYyQV=|yU8588_MLdN+UHdkJ=ICucZ{td80{;^0#-hB zkgcg4gM7#AQ2g#$#;vcu>GewUew&WP2M(bs5%bf?kV1aA4=D$hhT19=iMo^%Je)XY zb|^O|w6z_*bl5oczR4Kv3^^+W0h2cK7kFx3vII3TBZ!pDCsHr3(7Kfl$-q)tZZ_2K}c*zk-+$>z@ z&-Y%TkJ}shiG^%}9>0*Ae}sv}orbvqeo+TFmh1jrS#Jlqy}}2zFp_OLfOQ-5M<;wS z{93uoM`mBU#LNRo`W#&2t4s1xqFu9-f!}zd;K;JfuJda@4YE*0@Um%5E|JCE5Gn%I z`*LT(9un3chXT)rw3!Z8FfKXqrG^Ktqt2Zu_w2|CTBdE0F>~t3N;TE5x%6o2;ToCA zgl81+59R~gRkipxw{Mm=_v=)|x5Jhz@5%5Zv@pZO||8e`o5%Bd~*2z!{u^9Mv z7td?M{h9lnyV~f1Y4sgHRO6_eSdHYJQ|R*+up8)_UEkX|ZkeyY_x|MBaX;VXce}^u z_uAj(_c{;j=kz2{r}vrYx%&^pu?Jkr5%^@E=XVWF6maOQp-E{~J7Z?up0dv_q(RBb z)1W+Zx6Fz>i#e}SXH>uu_Ed?dVR^2VX=mhL7Cx##r=4GIUO?WV-!xVF1 zU!&mOz`Hn`v`oX99=@&zFmf(S9&W(isAj{xqBgGTjbA=fumJI$){GaG(nketAWGt~ zX4=dY)zfEv{Up&@{1`*WozFU)urgbi@M)*BW-&;?2`{=FBjZ`lU9$7MpY*4uMIjeb7xwS`k>`T; z$pJy>J7{f-p(H?3u|rH`S@lJmT)F~0s> zzK}HvLMlT?;zzHU^XScoTnQ9Uw3WDb`Y+QJLWWE9Yz^M{R1E^!^c!Mcq}jCz3?KyJ zeWql=kDN%l6yM;^!p%K0BRjIdk}^Dx1;8d|Y&SK`%#SIi6^#KOM)b%avA{_s@zW|O z>VlMj!l#7mO_h&OS}POsd2fWgEwTZbV}M>fq|uzk8$ndGOMg5MBblGRz)LWtH45rD zAyt(hN90bAyFc}sJ3P}Ett5CmZAe2pvg%<_+c>x*{~O~Sw%3VHk`4nUqx{gTI2(Al z{M`}D!Q!NpJ z3VA#rT-m2NxQ(jDA+dR___Cbmw*DjZWxHlu-T$#pI;Ah~jKi~cY8g|QOsb=?fyg}tKF_!WNTXREceeqGr6mU{jIx>v6sgwahKmoC~!_0Npnejc0~!P6zNKC zzD0$we$pSDg4Q@n(zxJb?~oOX3FNI94D8U1=xSjAzs1oEG>om8X8HANcp5aazrlz= z=UP)|&)WN|Z)xhk1JkQVG?2AFeWrv6xrJ=hBqmxmkVJ4dVvXOCtcgEr=9!Fl zI;4OZcIWROnod5pv2nNZ2F@Qn&%&H#=xf=thih`!RO#Qjn^XqQN>$P*@3~!F5?2ic z`hC8WK>kp zczMatr0<@QNVZm!-$@Ls{Oo9+S_@Y;^SpE+A?TYEbu-aVPQ-KyLKlX-7DR)kp4>y&5QyPRthC}LFuOinIIl+iPirAg_%Vm z7SO*n2w+uVF1IYBRH-mo=Hs1RSkpr?pi86 z)G}kVbA@=aNySASk21Ku9w*jW^({3`i^s>*YA-q}jyP?l?y#JSbv1F~Xob4xGU`ut z03g32oVr!|tzB#=RRO-9owi*KYwGCOYe%i@!61j%-bblA0z~ zMHE~CF&Ahn>kCT-)`TWFYVpEPQBi9=Wx*o|x|`;oW6~NcZ5_@ht}D;ar-b<>woXvy z|410FWGF3YV^vMilO$VQ6R$7bvUCK6S-YQ9Rq-DfwYA7#q0I`bSfT zbF2Dl%D)qKoDMB9xl}eV;m2^WJPAL}Y5_Myk?Jjy>@X8MZ10>IL1@qzy6Rm@If)E4DG4RA zNGKE^F$mE<&grpbcug5am)JHZEPl;P$K=Q;c5OD?E|Bj&rv|=}xqsmnm8foHZ1DFP z^>?7AiLBQTzUw+pDe}6|QJPO2yP~xsf|T!W+lr=cxMLQnW;(1gJ+QSvVfF3)B8&g$)_*)F1pgs zFuvK7ZY9n!J3IWZIJ*|C=72%4G6#|RTtd^kL+Xc7Uu|B&kxK)iixbLqKd12Sm?na5 z=Gki?f}IfiWKx9Xa-z@YB^(_UthOM_z`_oRYgc!y9s6RpmfV9En!5kl;Y!5MU36(> zUx?ue-0yg%r?~XS4{OxvhJ4c?O(xfek!ro(ckKKfpL}AqKd;$_|J^0*?tIx!zSYlZ zZ98e${}uP2+AV?@1JANH;E_~k&sL2*SpHiG*Z6jtucq|YrTFDDt@wKOclLEsvFhRa zb}?afnc)nq{){B-ZvQzU4(!;O71};NAr?9qC3dJPZ2q2R*zpe2CiIr5>sjaYutMk% z=#zTERewJ}N_@Kq(tQ0h5uvBte}*FXr#M0IPaK!Q(O|;Pepq_mN#;rZ!P$x7pCr)C zoL07kN;5(XkcZ!^M7j2XyH#bxN%Ok^gLAB>`GRWx(7hHCo$3+)=O5G)4_&aVu8acO z(j_*t^iB+GaA?H_t!?HU4Ly^Ud*E=pd&MW~n#w(;H?giyEQmwWB@@=nG_x(J4nI$j zlp~|C71Eao$`2^1^ZOs6J*G-qk0X*X&E>SJaY@RQ$}NREx3@(uU)xdI9-K~LEhaIP z&}^p{!ST@^@So8k6>>2Ah?@JVc>H*2M!F&sX;i&XY*CB;Ue45n z&OYf7?G}m2Np*rc$MI;i?AKI~DL@0*0v&UNC z$DO|Qz^q)J8N%#h@#D^)@=!$2@{hc58fM#${)4V)H-PjjYK5Y6GNj$v(IlLoMkh6q z4@+FD5{P4%Rpc!QePqC?esMR{0&PSt80j8~{9Fj5hG>btiT9&v0K(K!KgU$=cCvw@ zbt~bJEO4YuhdaP8)fK$u<>`_acE)KFJpi~?C@$w9GWVwiLLRYmnz67gPOa(j_`9CD z$(1K+ort;E{?~ux5sJmVu#GpQ6&HIAAw;BIX^S=P{}XiYlgf=LExI zCBp(Rom-^~URKt3)sV2Sxvj{(0tM6cL~{pRcvWd-@FES)udsBeVPWX#*<+6jF#6rV zrRC-MbyXR8Rr)Y9emjBE!*mG~bOh?+&N1X5$qB&3rGk!oD~_X1M%&*Zgga%REA z;K`W0fMag=WoPnHUS@%mzVQ}q>ZVldp{wV&l*ZC}H86SxM;BL<162VvTsNIn&Hywkn=E3&l@` zwe83!zR*O`7vOJ`m6g`zP8Q&OP7+jhIl^45g3_+xc_YfKuL(-JJ!8R;yAR0nj403C z?3&qLp!g95u^NAIqR_gNO5^kz-}HA={Lz9iBUY4Guf{|=p~y!EXk@zeKZiD$dxzo- zQ1xf~TKd3Qlw@c1y%w>m%TWu+>p01N$Nx;Zimj-feZ8*~4?x`Zy<_`)Hdg`A<|F!A z!Ie|(t545~gN|P&yg8Tg_X*tYsb9~ecD5iK=z2u95w$X`n7#N zf{!7{Z;NQ?A`U&T4q>lj#mfUB%r143XEk@&H73rFeRo22nne$MROxgjUfA#W%>(*8 z{atzpqE3!_=+n*{?_Avvf7G$O;A@*+5r!5sL+JifY60mir+FYF4oc(3##Bi#AS#Pl zfwN|*f$!;`Xy^8fKO+q>i5IAUAF^=Ah%LuiTLuEY-7^P^0;A$&k5A`S34CACfe5y- za?=g%&HZbKMLvJ_9^YBQaoPa70s|j2(rIl8P3=Az#iO&gJD^o9-rv)=Q}kl0Y>&us z3(Kpcmmfu)Jli{LlD#$=N2mNDstB=Da%`+SgX78N+^%2Jze7atP?FHl@TNCrye;B$ zjXdlki?el`(~gyMbI0t=*#|p=IAie?+Lp&vMqteZ#79DI-?}%Dv#lktQ(@Tf>r1))8eZMO6k=l2+ln1SXe|}C z5-F$!ka>d4zC23I#7(cxf^u^yzU8GguTmx@l8bCkMTUfj^B0syfhkW(k8tjG-C{@M z*t}9w9gEIW9YC?8d2DMGa`>^%>-#2JF3HH|Y;=JUip)eZ_`$-&qb>pg<;LmxgA(*& z;ceHI90VbocCl3{-9WBnB&Q!hR@=ZxuO4MRmW)blB^wY4&DWjj_wk;*)$>lt)O$;S zlE*)|afvC`eZ{`4rlPJRV<1VJSvfx>K@Ep733vBYO2!k4VCmW6bZ0yx=w(pr!qe!A z$%MjG!!XUl#nLyWg~Nscl#`cZ=49;~8j`AYdGqaaTfBRD3$zrPSltcy=lJ~j4}JO5 z=I-V`n`te4W+NFKu_LTuXS_;F*0wEUyA;*LQs&xY2 zH7jZ$CfZ)VX1V@B8~v00`d${u^M%2Y^K~<;%2n9=7uxLKQH0{#UBsr}-zNs}a7dyq z*Urhv=#BGJaa)JakwBfkx2At>@5dvw(7#t6!$9X`eBysmOoE>o^}Rjg>4rPU$>8Cy zt8kgkJ4#|h-}LOZdZ&{`!~1bd;@job)wjLTY`=elggu|v$e!1F2Q6F%Ct>M^C+m~5 z53i;PPJW(o^LaAIpaXH%(j zsZ^y5bcw-ApnEX_t7+r{@`=n?5~^VTsXJE=^0`^e%CXo!VO4bWE31p2N?OMWS~ekS zR`RZSIX|g2ZBzxU=w6C`Pb4)G8QypKMKZMk%U06%0W97RUxzbq$pYj98bt|;v7D*J zbx=ncWDIk_j#cCna{C(5C$vLtQ~{%qUsH(HsPduS$3tzt2WdtkI&D9Ky17+&`K@>1 zO%DCwL?|Rvn8vLHvLX#zk@Cjhm!4r++3}*;7a>H#0ks0?E0*YEOiz6RW2jVTq@l{s zktXz~dhq66TuDU=fI1g30;~;jjrL?d0^z;LoD3UcJ(D=6XpT{a!Hfz6Mf8!J@eJew z7mAd+RI{S$-$@#qXsa{@cBEOCXgoxf*f!Mmz|~=@^{fhP6nY5vdH0omeqq>ua<*i2 z+mTH7rIifn2UKae_*JFdG})O^yy1UiG7KupTG@i5-5WPstNB=k}!jrp^Z*p8!m;dpWF+tELo+`hy z?}3Sbq-j=g>MWV=_x%7s(9b<)v(53N%gE=okPdfAVA|5~f1^OQ=EQRUAk+PsyTQ2F z$-kir!PBlc?E}*0(J=)aFjjm!yeBZ5h1|QmaQqEJ?6C&v zms`u90LWCJPRQT5$BxxMsPE5|k*4IQYk-0aqv+PSOgx$0TK~i@_dtNzE3AM#yPW&d z$);C^>Aq29S|zgNGd3=tmQ$ZNF%p6+dreKp=$Mqi;VlX+SIY!bt>c7aGq_sO^Y|MO zf#00;HCzT>7NJy9JDz%sSkck8@!n5r)|HHRIBd<$5#k7Ys8lL)@`0*hEo#Y*@4Ji{ zbrHdMC0s#`yrhFUGh<$BbL$El%ZiN6?;pYJ#2yw1-j`AoD78m-k9RV80?LzTVRAE! zX3lQ>Ny~*=*zd(WoXOLraWX`PwSP{nkh2foVxLati>C_eXfq~Mpx3ooH~1bZ7!%6K z)fFnb2t|mHQ^cjE9@#-wl|lJ&jAZy?Dt-h~PA#Gir6EhA7)c$J4%k_60yQ-BQe;3q zNwpt1$Z0-9Z#t@brjki>QGQsb4mRXu?AV4>C@O3Z)`YrZJU!C-qqq}6-n{Q+XM~yM zzE0uKJI+4gC#Qt^C6;bMGYuT!$E~=yx!|Sx*qH_jAIsKLmFLDSouM#vQYH;)uWF9S zO&Ne8Eo8?!wS~pS=9*KWD{r`xP9e!tp;Uoa*OOv(VEKYPT5^H`aF_Hcq-fu zEzVZ$4W{s60p-VgR5hmm~_^2!5!4 z6-qf0tiLh)+o608D4j>;PlLJ>F!Infr?%yp-I)8g*MGt(g3MYi%*Oo_Gj|oMiUEZh zlu#R)N%S5PHr1exu`CEfgy74mL|;BMQqRJo%EZGWKLWkW|3lU}Mb{PZX}@XIG`4Nq zwrx8nw%J%Gwr$%;v_S} zrEXc6jsBk5oo#e@1>1!Z7ic@hiAZuev1)(w1wy^N9#85}i8RZWoEP6^74h*>#|6DDH%jYzd6YYj3#kSAJ zp5D*my}o;>LG1AQzzOia1{Zi<*y#Q@65ai|nbiF;AI;}>LrmavLNtMwV7O+&<`gKlgqHeBS>2<9`EY z81MpS=>LiQMbQN_^t}c9dQT(x;iz9T|18X}r?lkw2_)=OrDj(Xda0{9A{02JbZgRv z%nfi7`d4f(^zVC>dc1ba_2{*I)!kiOUS-yFWq)WTM)OaBD*ibd`ccG6;qc0pm&4aS zynh+q`MY_2uj$u)9fKZ!%3X;#Uz&bWRegJmtCV;EyuUBt_r8ii&ec`zJ{kI}fSoJ8 zoQ}>szW|m#`)UI|<$5kDAGq^w7M=|ME+FRJEyU&h{qX36Q|NYiqp9n=!C~xqg-SE@ zjyyK>j9oGC3hb}_DbdB6jy+*f&6!mZ_?-u5|KxhCxR)-fA(t+{ZBPCM2Cp`J~9a^4dhmb9gMhOMz@c6{38YgKC9 zmDOgS9d4O|Ne@|Awvh93++Qtpjah}nqEkb{G>X&Dyg;svj8&UZRxuFRD?*LW{e9$o za2&RQf^#ULQcMt~#QnMJ1Zl@uM#uMC%OTA3o7V18v7}xzG`YCSfpBa@2|`GCS3LH) zuyF{hd4>U+TD!_Ju8?$GJdlEO-sUorwplpALE$06=u9C@wUcC&TLrq0%mt_Pdqf2j zN&9BVGXia4X3h`0X7a{`gcC3u6Da&hd`DvQ*_2!H4jdlLxJfHsJeda(qN3x0lXZ0@ zEfblg%#ZvE*M?NIz(Crl7YRVNdu$& zr8pjM?|_;izPNOtndBQX=7E^JDOm@p}x>_4_f<8S_?I!*| zGaJ4_(74roN&QIDEuN-#RL|;}yjdwVFpN#nS~VN%62{b+I%B+pD-5uAnxjzaM-)5X6_bQ0Ugh)R@1qE4jW_vUS}DS9q*f_ z-H)%T-A~)(wY^VNntymka{7vx|8vxQEn8Gs{GTJ|?Rkyp=dIAfUoa5floNWpv5_5! znAFeT?;o+h+gC0@Yqt*Z-g%iOu{DHX@WKsO4}_wN7S|bGRH&2%z)pk zdWs*$%q%0wR^_zwOp18;_wf*3Nm^v&J@Z)yXf|h+Ch?GKsw$)gP&0c0js zsq5fMI(Z^;5mMrqgOhN*Y#ECiyHW=qohi4eiocP)46zNfi`w#W#vzLqhH*tB)k4Fpw!9Nj3Jt-jEPxs*02&I+bXdNCuTb zvf$zmR(}U4E#3O)xC*v&qhkb$kCXS()wrLXZh`%FNtj zY>6hh!UN}+TgCn?@+<`V$pL6RYa}MJ0`^sbS>qsb5Zdj=4Dmf7{%-b!!~Y)L?*V;(m0jVGmtiAra7H zIJVPeKXy}@h#a1rWjHC#;6eKUOi0jd;W(M|>UKJ=AOvuLdv_evnpu1=<^4HX@+4m^ zt{W2@y0Y^^Eo(VIWmD8$*Ih9sR8k_+$d#v{gRSDNjswSa^H}>5#hykqVwme-^sO4u$IQcxG!8Rl^_l^lG{ zzoXPo+++Pbj6x63pt%Ywo;RP2oZRCr&24gOW*CP^!P|H#4NZmmUXQSnLviYfD@=?~NhPe_C{KufY0vS2n|SH^JGVjd->^P{&~#h$^>>cH4Ugi4 z&cd3~u-y?xo_RA+%^jqHJ>=B>u^~LCNETJmV`|Wdmv7^bPWiuw6LkW3=lSU)9$X5! zlodqHQNUGYXi{Pz!f74v9Le|=B|id6BYWsempSlemxTu92>o{_II{AzB`CCLZ5U1 zVLaC9qW|3vV!r>q9QA!W^m+d~h3@};RjE^Qvy?`7 zd(c#dWoT#du=wq(0gr9qP-xm1(S*o&w+qc!{xS0>z%Pcd?&@>eVtP(mkFQRkSXep@8KKo zhodt~$M0==jUB@vCzHr&CiOamy?>$i*qZhuEUoU3iNfK@&kx15H{XD9vj zsumDMqE7|9C8PMAEf$Fi#y|nlo`p)+TGq*x(C#R>i4Syam>1u%h^nh1sEzH6_f>K}>xgnYvh111^MBfT8im2|(iO!Mmes#$>mo2W~ia&tR z93ZWho^~BHvB z&a@%q8;qe%^EzIVe7>E|^1XY3?!MimCh)P$NXy;YAD#qwUEN~m23$eR@IMhL^0@_0 z&gkzQYUUnJwHfX#Y3A+i#~BEEjF<~_JaT=l9${rr8DRQZ4X^(Uo&9}MM!;3>E?is+4I*Wu83Z>r@8SX?u z!bArHP*c7(bZQx0)-5JtrOb4S?Tn&2 z6cWyjv2#@ zz|*QD_}J#XL+5%b{GnIRA0)-MXahDT6U#>AhwFI$9{aYD{Xo(RiJ zYb)3Mch!iRv1Q1yi$5KgzOt`BkFnEy6I)@Y=Rsnc?rC@TDl9CP92(BH!5wi(95VL< z&H6`;wRqLH=9s+il*%DEQdOJtG*};;Om@5E%5NoK97KJLm>i*6s0D^VKM@&dm zoU}kbz698`T!7O#SJOE!aE6h!t8x6|6*;w4vC;DxqKS6n;v&c5Z4o=wJ?Vq*#HALo`RO+CfVD5?rbZk=XG=J#uUdR$ms6TP0rO8QcFWfviq97E;X~!Bp5I9C)swUYiJI7ZDS? zmqMglquLjU`~4#2-qskqfQxu+DIq5fksY<@xF4dn&a9G}ks}tukP^zLH4p*7)zCAw zG>ZHg`sH)a_Ju_K75y95#zPW_Pv?Z;y^l&aGBEX3V}-upmyeLY5hd{;lwR2{!;97l#NoWyK@(7pA)udz%66wVk|yHg z=IE~KqDJUr>g>Mi)9p$tC@QWlpe}dTzEu`lFX`IQ)BM&~e%3gWSkd5hB9O%E2P*b^@?`_}ZEN1P|^y+t2#u{Wv_+6?UNJn@+G>^P&CUQZky9!aCD3U96dZ5aW%g9k$?5R6)UrSm;?3Icern1u`h_Y9{JMxLO)$ zp}6f^Yp^}CmH45ik+ZXwM6=y(d9XEUkt@(9fA{Em|qWo1cK+Ioa>8Fw|eW+1mx^gWlab8vt3GBG_hKK{8& z9A%+zk0jCx1|~9q?DOda79^nb22GiR@;QeH-#D^0h-S*`w z|AIn2l5Hx)C_kP7>z7ROLvaeAqQtZ+QSB>5fLQ`_%eQiFvqtL4u;YVxt8CmM%3sqP z4aq5k5g36mYL(6cJtTA32l0C)ohS6%y!mOdeI{ z$y8bwe(G_%<)~Camd`iqw!h8o%|YE5s$j&I>&;S zU$&bmp;VYx!bSJ>x!b9tI*N)MTb?A1gj5)OT#oJpJoXV)dR9QE~%1?45vqLuz3AzPN}T)p)<@4iLT?6 z(C|LNvMJ0j2?I8wSa)Xn7F9|SqNA%lxG8fkk8BR(%rFW1l6;?ITM*vRgOxO-C6Vw% z!7@{DOowgFT~6o0E;6nR>Mh|Bm4qs1a58PKZ^|38m*3F& ztf~*K?)-AwHp>c{(=)rsO`vVr+AxvVWK|E4IUdmC!!SZUajb_ z4V!PfIPD5gFenJ$uW}sM8A{7S$z19zKZ&*JisOA$7X%|tb1zS&#bKon+Uf}I$`1u* zx^z9CN;Ns2{(cDfZO~>w2GWfg6N7D$#s@ro9)?T9Luzj~^)fwP_nsf=8td-@3R3rV z3&Qrp**vaW{pgB)W}dcdDV0BhFEFQ{u8JJxLied6tc*!Uj`icpE4wAfdr+ceWvRPe z(p-)e8~olVj;66jD$SF$GI&y3uvxYHtbe8{Rv-Ot6}SDvl+=@ToWMsL#k~(*@3N2b zXg_7Pa^#9|J!aM`G&IZFpT7Z8upToylXrygy^>k zr|!sOUr6mF`< zYWW>?$w|3~QWJB`Wg1qt{&fUVqc+(_Xju=e$}7O>S_#XA;k&rMH0{j_Nzl8P?7v{$ z)($gSl#t$Z7|?N{ja}G!sHkjW5mXK~LK2wOeudX>n5(sLWsK4Vzz0BB$TpLW&6Wz; zGdnuF1PuCr25(r;x&7VwIinuu@9X17<0dUFsfzEnwXZPp$_g)j#_3$$JidT$_u1}z zR6+AyS7P)f%+7ho#iokLOeiKcQD(f@?EQ#n8?{bvU6r)s)kA!n1uKLRMmFbJdo<)F%1t9&06-HbqRB^w(C3V(7Glg9zBK>ZNj=PW*9jI76ANZ2+a zATd}BhQE|v{zNVmU93Dq5!|HJ+|3NRNnWsAxqa!Z(5zH_E>Vqprp@eIyXqdO4u*V4 z;`eQJI-XC3F%E{DH`PsnZ|uX#>KHD4kGWcIcaP?|NtX%l(UrCMzW;Bl}Ev zHXXXpXOg|ZUvzwAmsHja{mi6!m$;H$1hKu;G~)HCs|c@+Ma-a^os`i~QvBNl&zWUY z7oXHaV)<~w+xZofN6t`SU#@+2*U|VrkDB(ct~$AZs``N-nppy~QfXc5cjr!P-=a-K zJ5+T!JGQyS%eb5(;@sZpcgcSOCMG(=v%h9upCl#pV?J@t#w@LGGP=L_sVj?0{DH_5 z25<0i`Mo)SL>L^J+IYOKW>5u$5yAI0i&I`$QXZH&9gl#nV0R2GsIxny+-NfLfb1dAph zy#y*4cz|tEF)hXGh9WvOhG#pY=Ri8LR@FoY3WBf^PrQKFwk%V$Xy@M;@vOJ6XCJjd zBni-A!Y+E(;$exe&LADjz!qHxVI9Q~QYch&xS2tyno6=-XtBYlma=#VlQdzHCuOw9 z>n8Y;&=Q&qj(X zTKLAM*1Q(q5hQw!kt9eS-(;H8AvlKKr*eFg zr#EF&J({b*g_K-VQQ7;Lr>zdp^mI`fZ%j*W?w0E;QN%O(M0NuuAh+y`XK3|pN}IIe zPufJ#suT!hds0^&9+XOi96Z->C$zE#OS%Gv#T{<4v#PpV0633^sc0unmlzjgpW(9d5deH4}eC0fZwF6qadZtDv?c;)^3SC%vdvXSQVP6WT%s#A+vjs z(Wsj-Ib5%yQCFEM(wV@Yay`~L(BCS z{Sk#DF>rz9I~at`Z1F969%>i;Ea*?Z65oej1eWd0Gj(l<_*&G!3is?!hX7n4KD;C1 z&B)O7H-IGjo@h1JZn0u<5tyBE!a}Ri zzXrg0f5UNx3luB58I5DHQi$U;agC%dDr*cuS+j1+N6PQhYY|qBH>eMuS~3*v3xns# zKUq0Yl@-+n)rQd!EUEp?-{Y7{8D>kxxG8VVo*uF0!M#>BbPiwl5wU({I24Ce+oaC# zK7pD-A0~-0_o$$yKlDG-s|lB83!_AzRE`>v48e`&f2^I@~oCmozJacm>+_ba_B zw~sR`Wt{!t-vV|tjLUd&g>t`RzVrXr(02yj&K7f zhSG9KfiKL%Ve_{?{2!Kt0t)i5Ru;zDWqUU#3DZIGS4UmfxlxHPIrX)k-Tteoal@|H z=6mh|B&C7^7C~y5stY7JCT)*x4k7!u5nuO^vVq3HR$|vC22a^_s*0N4*mO>ZTofTF z`I#w|5qq*W+v{RHXDTdZe=Vo$SI!!1x*+i{r(Fa&!c$QZ+ix#fiEEkMaqsLdtLbQ? znH|cu@=>P8jm#HXXv49PqN^Q7KWsuPW3Bv)M>-QZmUAEnZO3zPg^$PxRYtjzxcjrR zI|2_VB^#|XDWy^UB4Fx`((BOYdNIVjGxjYiqlyaXK3h9iajA?7DZ@+8(oV|#r-d9) zEr7S?X62BgLHg;ergX9x3KXP%%;zhmjV$~Lo15&mYn@>^8!Juxj9Kzo8ufhqfd`9o zav9gs?=&6~bS)OoB)DPI4Q3ZAnj)t14R@;j#7fx5!e=2sR`a(MYB9!EO4nHU;Ny*i zMAZHuS3zGBHb;+1phl-Asgu)>q;HfOzP>YpjzMeQIBK*h6Kd`|{`pdmWN{TkCzL zX;9L9@O>$Tv%}C&o{yffN5OB4-k`7gaBC83yVr83i*u@Q6@9wTQ)BQPfZpw|GIBSK zQb{|*%4kPdyG!9Ip~FnI9lYa-TUs2>>>LPfaa9S-wvqMhW@c^>xY+K=9F87kGHw=x zwLqk_h`>}Gg-*z2iQSZE&ETX@9yis?U>?soN#Fny97}CtL8DN-GLsCXI?X9m8w%u} zbxC?{8i;vFLNa#ZdVX|=YR+VNE-#JUP2+6$c#gHz`Lw=ut=RcK>8w6+pvGVXk<+6=qzGK6$;iN3BoDvMm`Fb?idLWnRtBxo5?;^18OcTAhB+ zZASknq=^G>BSg;8?Qcr^_W|vJ^7RDRkuiVJGWk*pLhSJZrpH zSI^J$4rr!pd0~9%eJ=xk|8R4CRuM<$wo_-Da-CyZ7BbL95QQdPq;Gb_Gm3VJ03Tr} z9XqLv;GZ+Bq@I)1&G}PFeVfurgOjRLp7F!Vikl5?vECg?CFMvZYo?2z+3!XYUWl=PWHf^W?$V z-L(uV?S$jup|L!#C@L-eRar^5K2VX!C-d{CB^7N!QAtor45V{q6xG?oDDP%AvZ^mk zWGk^zIha4QH!yE!W^p_a4&O#tEeKVVf*X}{AnQ%!%oQp`c+P)x)-k1K(d|WmB10ATmDtTN4LoQ z_|c>WxDkRz$!1T-G?Gi!CQJmUk8D$+5Hk!7q?mwf(jcD|i&Qez=1@d1va5zBl}Asv zsFJNNK~cSINw=<0DD1;Nm*94>k|tXkAEcJWmli+Lib4r@va+XYOO3A`;uI|4{g%ZuvEE=E(YaC7(=@3d=CM9p32S z<}x@I+f+a=HQ{$~Ed{>uVme>j3cTnpJ02d`JI^1nnl2hS&!;J=`ey2POjeBP3-zlh zW~RQ*_bx`)mVEL_6G+*p{NMyYD|c~*(w|N;F*g%0QpStEJ=QbwCKSf7a&r#{mlh*! z*Z$ZaXEE$d{h7F#^O($Z#Q@wntDMuDR6I7@wkA+Vce)y5z?jYup14J0(C6x}_}JiX za{+H-rBG(0{52XG=*oaEO18ZbCSM^tmd+dd($G&vF;wqmN5XA`v13y!Q=Y;sJQ76~a>7bG zj}ibY?|aeg^hNiYltJg5bVz4fjyg&3_C$yu-E1Lj?Zr9KrY))@UA!DKx-J3+_c1qS zp81xL1$P!8EXV$=p17wZ8No?2qNJdJ8x*92n286YGr*9rY-V*D;KbSM{)>R{dwd2) z9~B-dB$LUw6Lq^EN~<%&_{umaxCv&tHH^!L$H*EGQB#C4_)Z_;!fuqFK?A#4E#=;1 z6p;W&`Xw>4ELo)2FeDsRis4c-j}FF5Zy!BpS?v_B#UUFU;jMKix=>h#)#C6!SUZr#w4%AWM$ktD?3`>*a;kvN*>!H@eu52a5@t{gK1e!r4Ey5?C-O z`UAnmRPI73EDmSrK6D|2#o^}_SnTs##{Q{kXl)F3SgAEvS4L4q9jKi65%k4wxuDX0 zq>r(f{ziWU&kndGqim$mZe-EO0k;zMysZb0K3y+psEeF`m=LU_EzBv6?{~_q+e}(j zbx6wJz-LxQomy6xwzNid`V4ROI7K!VW+iWSDtOJ&%h(%~mUM=sR(7!^rz$yhNujNv zd;F}ZqbhlRMX!uJVD-ECyXimonJwvoIDX=Ikt1aZ@{t!iZ4sWiD&&F6rWH&p zALqym`rW9HlI<6|U&@MR*Kwmm=qtjm=MNK|1L{A1PhxV4u&CJnPX6<3Nc=(HMnX0kxLrC|F?0I-8FX1o8$4x@WXnPtOtu{{6l2ZCn=ReV zW=K6=%sA+9CLfC%4nX+RuOW`h6mTXRg#{P#1XH=mTJGfVfc*=m`B9$+Zxy5}3hzd5 zXCkZpE$O_I{>~2J>MTMz=WbF{=yash+8H7b)P`QtSp#SfRCW=(2W+DXiTD>_0Aq-qQ~5ghxb1;@FOg)TA7aQ z5siH_X_ElDiLGN<@Ta0w?Ts1GZfRc2>ir9~EIjKIp118m0Q@Jfw>{!(2;sNd42M4) zcb`+D+dWoCQ(uD0W$l6g1N@maY`dYpklT_Q4zB%OaZ_yAy6$FOw}`4J*q>gzgAGo4 zzVbftmmb;VG`;+uLxh>GtK057hOL}7EBp4bkBLFGWP;M}i*Mnv=7}A~EYYgajU*0O zys=Y8m#J3OW0@k;wd5D;NisU~5ELVjNP;}S(8u@3$8#r_-R{QpS;Jef7o=oy220(V z+I>0lUMJ4kmN$zlt`HP?Dm~}b2hTO9_Ii7Kb!Of;YxrlBZ@g%H%NG|_AMT7zlneUw zpMRa^IBrc!@}1isIO*co8T@z<#1ZOtjRf<4{ zx1v~&(Cm?!^rc+S^gSjV|9eam-~RopPA&PQtTqG~Mq*fXKfF2k6Q9?QZ(yt8w(dqjl33Rw-WlqkczJpiO)1xq8D#w?@G%StWr=~u@yO>sQ#7O6c z=GeF_sV@)Z1}|Q13#xBp64qCTlI53gW>1+@QXPZf2hqzZsc4qeooTj*Yay|c zLr4mO`;x##MzjD{O3j>Ek6B2zBl}VDBcnV>>|-f|%T}4ZYoUW7jQPg{t)hc6xE8{l zR5!5%*K(v6_#&|FMCGa>Rm;|xotnw_p|V(6^uiO6p+M2@CdY-2^ZVU53#tPPVv*lm zyhK2U*tS(8N-pH3&*{4*uh^vYi;+#rl&fOFM5gE>a_CNr7twhQbXG}jQq1( z3g%#3#qdkqDWV;ZUN#4>P{1F|k%zg^W{yrE-rnqRPQ6H>hKt6N0-a!`meK7x*?^DU zwat6`f@>a!&ZnNtB#{g7=^RKtMG3Q&g(}tm4j*t!!b08)4U1*?Lv=<{W*QvX#E4YQDA*6xwQ({#Sn$&}V#MgeMejMan{Q0k6g6f>Mpqw=S zS5+S~nDGRi_EAVc2;>pLG92D+EFgl`9;_dfy)WyU&2B9ErP4GIdsCEB&I_ATvy#n!TP5j^`4U$iWVOKRuh@)1`iTTmAIIy6VF!z~CM}RK#E@Y^3JX2g-8+FI&@TH%S zfgx{GosSiiSB+!-obatF9!R_WP+nFYWd99q!>Rk#+iY-U8(!~6qs0})y9EBg-T`fP z+=z{eGh3{4nUswnqn(BqB{3u@f0k$Bnizj!aT_o)y)#eFXqdQ1lC*avY;*U#t?B^@HE)9?2BJfl5XX_j39am$q`1R80|nmQt;;@EEHj!c=geM zEqSywLW=8IR|G@7k;rITE>}N_jhVRJ)g0<-Gz#3jxqRi-m%y!?^URRr6YC^G>SC(Dk^ug+>02e_alcyL7f)M4O=p9*QD*@srm>oiPA@H+({} z_ISrDdCBO=V~4!^>L>k~j|Z|^!NovdE_?nbav<%Gx7<9zn(GsBDO1=DY7LJFR7U@D zW#qT+4X-DilY0!Z0NlE~wwwELa2(u9YWglwaq|kT1joHa7!JD$6HhTBR#U$*1CB6A zROouMTcW)IyL66$tOIQ2!fXQ`J0#gsF(yX;Z#Ku0P4+rmHf5oWP6}k_$MB?#PFQc6 zK=XhRvd7x=-?`|fYnfP6nb^D4*?W_TTmY0Z&n9PKtOoFh2trFxVnZw){`ClO7eTE3 zeBY)-F`j9>BAmMj+Kb6$fCyy--fTL=$YR)wnR-2^BZ>6OuSH=ki!=IIH*2+hG*>v+7ih#o~>1rMB+~N|`3_%Yn z)G|+2&uaSM{Y&hOov=3{KR&246xKELVMT|H9g^a3JFJ7G<(omYxPcsA_kmHbjO zZ(TO&1%6jVSB>d$0z;!kr4^zqmMT3PSuN^~hxL|A$Q@lZG2Bu#Pc1tnlZb{U>*nnG@xe zRD}fv$*IdUJUqCT4s|631=*RIDAv}K9fodksiisweP{$5f^q^hz`1!nIrA6Dt1W&- zt8wvMSB_hab_LHKuYW+m*3_QOmmB{d@5dlv=)SI9>c34P!bn4!(ojx(SY7-@c(bql zDs-R1!-r(%`X%udneadN*Q0&D^rQby7ZAO`Nd+|3itECD%6Q|9ozoicnnxBS2`C81 zQsK}P*q6p+W+1#iTKLv5Ogf;w2wl=ig6`&O-F2F$ll$KS&&OVk_VCT?xE;KWLnERb|V*{R{te5mypUv zXNI{Nn)*v7&>ua%z!ymfki3v$ErhmVH7*8Y4qn8@s~(RC%#?#+xA3p0FVj#oI+gP1 zhHrssnk8c1%+<0HFRWIBX`3^W`$fL({qbWlfpS1CH1O!m^Ne;kpFX^GJn z>E62>R{jTe0|yPn`2?zE^@NcuyOa8kB%g+c$;xj zZMLz*kEGy^ERLW;ad2*S)?d68%xIM2s@W`2x|92>yxj4ms9P1NC{vMFBr~aR^C^47 zNn{?KsXVuA<1uBEepa%Nha;{Yu`}3WfH{Rk3j|~30jjeJSnkdM+z0efAoj`R_+`fC zRJzF4UZ5)()O-R}aSs29!ec4vTv8?^*k&gBSO>k$YI@e>ahWiPM|}5Q!i?Kv^qG#*>O2o8J)OgQvvafELq7Z+H`uUax!N$jmr+k(h?kzlPKCf{o zk#xA2Bbm=eiKKRGeB{8>z*e9Whsoh{!G%Jm@CZ=(!k{f^Dx;!Z2dALomYpH>wLOyt z71L^xh?89+G#%w@E0kH;8%gAODsn%-pm%w6OY%NSBq)4V`&endtXgy7F=+s6m5t zX(OB3{%f~{igm~!OH0wl#4j7m#B@x^2HxULi)mdaTnSeH`xJYGGn-L+60))Th#Wp| z6g}^)R(31izX&3cFnFOA5m<43_Fk3veOz@ia$ceAdbsx?TGot#Y*^RB)$IW?0- z$7a&Y^B(~s&GoFBTiWaVM)Q*9U4CPBP&A;!P)|&MjsHroM{K+Wmaj8FvACu+DD0;( zkS4QgvVyTk)@xVZ`WjKpKflf=+6Ge{Ik+b&O=35?iRCzzzCP52A^!P? zaG9uWnD>xoS4EWP9wzKUCB++^_|YKHS#j|N1a~-PQh*mr*R=f3PE7+IW9;GBrE+#V zZ|pvK170U*Y7=CY*Ncdhh5(vRnK(D?y~2}*$vc(shw=BpxJqvCgJz;ML9*208j9ik2_W8@&aR`!yCxG;Hr+{jcv{>os%RQ&0j1z=%Y=n zx+z^ubEI-`N1}!k$cDU`NQClWc8@?2tzYyoe$sb1N49u!ip9v}VNeVECn6K?JXVSpSI zCe7r_24`ZxCJMVdB93dk{xf)FkfMi)*VVWGqUxREOAJ@<8APa-D@2|0CgR2rb(PLttGF%EDS zft%gg9#Jul_;VR^Zb^Bl@<;&v1wQcQ;|$A>di013b!dz)WE=rB4(^J_^P>$vpz8L1 zioe>1Pi#L@lalZ8-WsjMmhbeL`*pOZQ&DNBWT+`-tN#7qiD_X=d!)tQ+wM*SZLKzI z(Ed9dv0Nv1E~0%FB()hH7zS>(HHFb1wKyDlU}4Yf&uTe`WZudqV-W4`2H_L%wI=%V zEws70!Mdibc+TlhMAh&bxUF2DW{_kNUmvO$w(2uZJy}{a>>4|>GWLswOdar7^-SzF zL*QGR(-R?VpvAWchQ$jw$kr_{1##9b$UTB;W!EX`c|a(0iK(ig(f{#=nXI|9o67<* z5kkkrH1XTil$3)40b7ine%mqtZ^oJS%)tm%;-*E%k8#gS41Lh~w){9ff|U);-pK-N zr~gxW$*>GBFE0fvBPr>PJA_;DAA&%-kZ90^6ZzZp2~KCDX}Y<|cudxSUc+bKiL<5!eBtrL=2FP`D@6QH3=K zQ1U5jLiCB}aMY>ac-cnfFojg11LZMs%_=1RM9`61(0SmMn}C*y0aLZBS%N`zUz)|% zf#`O($P4_9I3`6>f9eqS_>tD~&_o;`x!Y^Z?hd#8*vJ{Iw0IJmmlA%~L>wMg)FIWW zk_illLCH!udMG2|Q-?aatcfX9XHJ0{GtQ+m#~*Qnc!apZn;ThjsXS*>j%D2IsR{dE z%=HOOk3_Zc2s&oehdjqjP zNV10gwvfa78!*x3naSiL;eG4Tjm|Lv zPo2x-$Tss=sFhzxTkn5v;fL4V(S~cj;2@4!#TgMm!TQH9B!FF;yMzARA&+d5V*q>L z$dWefh)4l))zf(L&}-Nmc^*=!ur1elXd_G{X(r^Pi0Ul!rZQ#DWLEK~ z&gjbx?}Kb|i6k_t@Nw&iC`O>aTh+?yoRhE(qmY@(p?Paiu{dkt1QE#B&8H0w$sy`O zQHp$x!NI5)`;XY1Y~bPg{#F*uZ*}j781`!!0axU>o|x0 z;R!e%LR>YZ6c*>%-ccE7U2Jka-$po;rQX>hp=p@)Z`!zEu+Umu- zht2yRA~mqiL~7_4IEvCVcC+l=d&|e@@ck9qQJp(05uRm$?z}mb7*e9X4h-EQ7SAy-#!GwIzXHH~M zJKF@%zwF(wa*n4j?OInwa+*t*F;Hv7f~6M(ayggp_Juj(@W(AHX)!}wk{on2g=OVw zQ7fLr<}aJBpub)M?~|fh_hu_=NQY4llAS5H2qdk3%qRcsLVcs6!k6X)y5F55;#2{U)c} zqa-_ajo!iWNt9lz zR}eaYxz1vW4#rD|ZB#u^xQ6!|Wcp?tj(sUBtT)DTzlF%XXJ2-Uc6A1!qXe>$?L&PJ=@H)9r7Qimfc{>qf`K>OPHc0zvz zW&>mx(Vv1Cw${y&bfLRk?>m9lY&%V5@65T;T!p!o(30Eb-5lTHiHzSoLoVP>K))hy zepA4m$|!4ea_eYzkuElTh+8$T-(Rt5UNsJh8-NI=7O$)%!`Z^7lNoF)A@?pq8h|iX z=CvSmtL^=ZNHTxG&#dO)q%P)INCrX!UE>-`YaG++avcnz2ka${IITQF{A{W*An?aA4l+_q+UEIri`Nd{yXI72m zkea4JY3uXXmaFW-vTGzwX5!u9hXEINc>SfR#wNAvcWGq%Tn@;&XKJrm29m>I^6eT5 z0t=ejq7R3E=w!+a-Oc23-W)EGE91B~u7n?jpvnYaKJCEoz@fDthwPF1gx^+Z%fP)!QL&c-nHTN<7}s=m936NHzi|hGtis^-wdAwnL zSA3dAgKK@Av8g#~H32HBowPsLe|Zv=d7nr#j8f4lTT)uo>>HeeTls>r`le%Y1PlcQ zF`Zgu-Ychxu1RSYFR8dsxrzc6GvQIyLw<*( zkSVA>m8^L>)#I(r$fzhHBSa9Zd3dz!QB*?|1wtDyHkrYrIzyxf|G5Jx`=J=>nv^7E zRlh)c^0>HgC@GzUf$C7&+wn$6eS>l$m?U25a8AlW#l_Jj?QCwGp&oDC>_4q(h`J4q z;Wny@erG3=Wx|}|XlpgxZDMj>ZVdMivC3s1PF?&Ijf#5R-DOh?AoS%}Fs zQ&IIrz_WK|a15lKm{w&73Kwm|3V&EGW`y{G~LCZP>)9H$@!Jyzw zAj|v&w8hPT|NXm{786!8h!Ou1I{Cy(D%B$dDv30UaX4~1#KB{#1$FJiB@wumD-ud; zzLM}Rk2rF0#HQ>8X8hO{b@3o^WEIU|bNi{fC&BL7FE%_J1DIZvCYUl1J81XFtwGvb za$?Sn9J5g5P3p2VJQs0~ge9EN^Jt>`U1LUkitXWST|f>{3A^b8)1cZB8DFhqNCbO0 zS8oo9^IQs)Dyu7Xo^IPj{Cdw{~;WOI(Yb@*+P5sG_gmO+pa7U9c3VSNLN-V=vt?B^ooP2(5&<;< z@i|?w2bC)c4B;mS^jaL0u@9!5T9|v2vDyJud6yG4u88pN%hc{;7^%_ll(xy#X8>fA z^d#s@ugF$BdSm;VfKVO($;ssF8_m82+1OE##A@5q2v0AXJUTSeq}nX!JHm|7E{8Cp ztt{gWJ{&807mK?_|GYXrazi)GDP4hSMR3Xm&N+orP`%3``5c)xc_h);jxsVbaIK zr5nwWtfY}J)GLRo%>j+!qBh4lCnhWlt?kOO-=sF%G%F^3gdZ5@QCL(h=AZJ36bEl{ z*6^c`A|0moMCkOC29x^7peo_s^HG6BD0`moQ7fjD3Ek%f@SEaphvn?o@R|HQ5w z)X?9Z zZC-naUD^aFkBM3tLKjb$Nhe$0rYrVv@ztQ)=LIrgQC!nplu%RPsWtfbG}dPrdF}Ub zdSKd(PEVH`g^4bZ^!c#tdLL=H+epo`l~jf$b`^HkjXf`r1QS_q#cIB`0L7@_^xU4K zX-}lG;gYjOjh)m=9t_bXYu9gtL5bI$x3eZ@(-)3)aOUPfqw{$31x2>2cKWS78>K zcNxGi8U2@!erEd zKQK8MO$88=z)u}MRY_HEMD2j)JqR$J(^wl*}J9aeZz z&bKE&1@PCB@&+z*c+SUWFxNVO?7A&x35_OLvRp`jgF{-It+vc;dEn@%oQ3Byg9rHmKOTM9r90S851pMmEuXve^>yz}8t$fsrA&myYJ+zAjVlG_q2Ar00`52 zIlrnjS$QPF5kYb+L_(0o#aNL2sety--;F>#+KK&RJI-@`YjEI@ZhQivRox*3zr|k3 zp(P%2aoT%itijYf+DviI?(xcKz*cl@`1`fV_2B0s=3P}s>SMF@r6#7bvRlmbBb~uV z;EJTQoUD}8d-W|a{3JXaPFfD}|2je1b8M=j8#2h0rsm2t{!|;Vl)ma_O_~$Y7`>#E^(( zZ%aPD#o);vuA6C8Wsbck-^gimr#}aO8C1A8Sv13jiQzOG{iYf!UvDzcKx_e*L>${} zwC+Gi6~k#VPa}&J-2#C`^eyDCd$*Kh>qs@^oLWeRWg_aZ=;RtTO#R|<(W{apIMm2C zm5_y0IXWNAaE(B}YjcrEvG5=<5ZE|>RLUNxAs=CJdHv-XrvmLFf8eXX=rXdi$)5~{ zFH|xF20wGN&Zt$L7&7kK%8^*ritS!#a+!z+2PPfQGttHmqSpqWxeH24VzMikhEb-| z*Z9Eun88h||B-&_%bt-2o&6;vDuuo^38_uD^Gnzk-6OdalR{#x zG}~1~X)bX6X%`Wr>(@YWKyvY>)IE;fR0{58@tv%+MzDkdTa!P*Of=4500Ne z*$ey)W7kdh9Gng+V2-N_{raK)W^`5%QQ1L+=uK_)T=#LTO8Z#IwL>#1ShscZ<}C1#8s^P|V@S~n z<gM}%=m)#nVFdj%zssB0HkpfWi_xvodx`Eb@ zw5Ao+VSs)W7N6OjA8K=sWBHe=VurDxj#(TB1*1qz(e7y#Vd+%!jZU_rlhKv~bThob zf@q`me(`v_C3#I%-elCW%yx6jZ9!KqwJk?7rvBdSC4cPY#2z@p7ek+47~qS$6{F5y z)jCj^$)@}h+ptSY|3n{eT(+Evsp$35HJ4NUt_TFU9bC>tAWBY~)lij|b>)%AEKbJW z{yUY$CFIHclKc{O`s_cfxBpTp)OpEVTv-`%)$RQWWddPs{r2Oan@G$%pUF&4yW{ z3ZSspd7E4T=A#ZSLZ7E*fRiYx{QF}Ui$UBmCKc&|ik69Lu4IEDVR&esKl;_Wq2C6&~jU z1i(z5@pcvbAnKE;Nh6mj`Q}aiyvaM75IF3Wo!0BWh7n|o;dGKz$Z^C=nW61Obv2zg zHsvlfv5qA2CFyH8@vhiLG^D>kaR!|o^^%9WJKzvW_rjhxBp>=&CYmaM{;{#SY)Z!-bO$C|y>PkDmvmRwcI zTW)VB)G*ZZzoWbSZdZCU0bLv1J`Q};u@{G#u$Z^10hud>pD5 z9YmYXoVYC8Dw+>$GdMk3G#CS@@ZD=EfEzy^4RwTPMc-+CzLG`d3jl?Xt?_>Z<3h4wPJ10W`ieXsfqJeOTy_BW^bn;?ilN zgLlYF8AI>T-~_pX-u_l6zPrB#dK(@d07_~rEf6iUgy2F_LR=8+6e{7e2G0&#e|NnJ zakJeuV||@%op|N$eod6IXYftp=u$!d>oO_?XMB2Wm5yRpeIEHVV$ zVm>;!)2PEbdRc&VXlF8bM%(+s{ZY}um9dfpwP zP8@DLZ0+lLj!yK<{$KNl)(@GL5D$+o!pb;durWAzP>B9Jt8rN-O}=%>v?d*b4~Qfx zyO}MI{(g7ob>f=YH|1GTn^I6yLu^h8N*;*ZXtT)b$ThgU10yfXcu$Bl>&_xJrWLhA zM|Yi9kMN!q&5&1FeoKsS`(7#M|EVhR-J2Lz?R1EXls&($+5Du-xH zF{xg3SQaLdhrTR-!=*PVc!dTvw?{v40>V?ML~RytIMoJsRMJ39p$vKa7{rLSHXP=- zmWAR~)of>lgyByZ6-bRdbv{f>VToF=XT!`Dzx5^AJ`}hE_aITWE=Uqh9bm7LV`se42k?4yPQKK*CI4^?*y_iJMrT2|3NTECOU5wUlY z91U3e>)iKio%56V$FhLUlu-X1I$*8sjReSbWwsH3ZZj&xFn)r}hw{hTmr2*{yrj7~ zHwyZoN+)lmq*`}$yFK9Ijnnb=8D_aQXC^i$WB-7n&eWGol5^&$zmMX!Ws=%knWQc1 zV^wf1c>;I)T;|UF=!bhV38BsTwt2c z4}4JXHJZGMNHi{yMQm6p%opKM59nhfqit+Lc94CWkRkoOD zFPanDTiuYEx(C+&^#-Bc0Y;YQPdt27*U9Xktj=npGkP%Sh~_pq`!{flBfTm_+SRo~ zF7?rw2sO}QmE&(LDWH|h?nQ&zbk8j6l7#5O3OZH0Y>b+yXl0eIuU@qu_Nwx5% zCF*ItG*%QUF&!Z5wm}?^9o6Jx6ZP~`tP!kis16S6@O1buQ}e2ObtRQ}VM$qdK6GTc zrG1t;6;V}POi#!(#Z^6FMWuI81|oMB&DN8zb7q%Z&_aJAF%&5n_;dZIcXSL5liVC8 z4tH{LsKMdRePDhFAx~=85gc3`1V2|82HrJ~>dI<*_Tm~{2`-9=Wr&^yJb0)kny5+R z7Y^iN7|*Mj-j-xG{8Y(U`+`>_X6@vAC%4_Gao1g)vT}jU@2fX*GthyHjX#y_I7cy) zH$0zl!{6#2ggy0iQo)S9un>1jSKjWMbXei!Xfn_~&$qbQHhmYy!4IqeORF}uD(JfM z!~rWTtLaMX&Y4gv=s%78D|-J0r~BO$sJ`QMkrayyzil<-rOkJh8}GKqQNg@F7LI*% z=M7#3d0b>fUypDQTp74uKRY51VM>k(;L5Id2T&Zs)>(R^-8n&N`7@3dq7N}7ij*W;qVgY~Lj=nw;ZcmRTjc_}HaWe3+;~VU;B$>_XjJ?_L zZ#9$JXhWhjQB`+5!fq?*e{$>;zw{Aau55!1#>`oB^bEWrAo4TMZC}IWuAOeXqmC63 zLl?y`r`q(-EpJeyDE9?M@fjlMN=pi}$M)!90?U9O2$lwPt>S*%mdF3LKb$(F>h|3k zci(ANHq;z#stmL8)f&!9V=U0a9K3yNnew4`k?OJ8e}E|01c4=wpZa!s0uw{dl5I{W z+~UwjR`wk;Nz*XOFi|b&6{3Q2{LhaMqV2qAo~vrYzP7A!I+Y#|1?ulg$4e6$tO+|? z>WZemby~!?ogLi(!yUnbhL7&_Nk1h+hH)$7ylzEd#GFeJ{V~4X0peZ9&+wWNgkTUG%$E1TClT2%7M;d#}dMvrGK2!>SKfWfXuDL_Tb;RXADtZ(oUJ?fBi z2cx>DkJkSpCo|()-b0q@wB(hAB#|eA6$oWnmN#uCLZ6}vvHvy6spmavb&H-vif$N<29`XMfsfCl;o4bf=T;*vu7Rk zh}xx;XF2Uyh-~h-kRmFh>w73xX8PK3VbwaSD7iUO^rE0Ii2yEtF2}hH$f?3ZLqp#q$Nb@J>6@HK(FI^<+sN}Y zoBSZ;F&!F%?)X7?BKKItHGyhZJmG?nUD|8)if1m zuJ_#@X)e!kMnYT#3FH<4dp5W=b}YO5PM$Js@|H7hd&(tH)ft?d6HaCqUj>$@Sji~2 zzt~HXFJkP^s-I3s@o7)Xw}2nNs*a=QoXFk$IJid_&MbYN&A{j%I2fSS#ue=gwOZ6) z9ZEc@J0Bn0KP?|P->gq)_ZF8U#vclJC{MOA7%b+2@<=3_)Ft)JIhHwMW6q^`yKxg| zvDXZ{w)udo(1@e<)?gsABf3}B5LI45QkC>)(1ZH(fYLv|geuDCUd8{F)%}UedQwVa zP=1iy4DGPyQtR#6=yErrCJ0@_0P2q;a09jT!zVbe!#kz1l}&V zCblMmO@_CBFw78SUmTP@Y=4c!2H7kP^YmpI^3dMkw=uK2uk`k5B2(KFZoYFkT&wn( z=6|35B4LR)W^7gx+Es~1^;mJdQ8p)8Ep)4snZ9mWSn$bF@(59|En;KJdy5pzfQ9%;-*q)Q#D;wtrI!x{2Xf zeK)clzWN50uPUsk8l}XG&az_E2vi#x1j0ipX}3JHnpf1u^2IleK98Q`!aS7- zK8m8nnwGHCJp~is{2uB3lHR%=SsRCk#S1P9&4dtQ>siKEXMx=fj54p*={V&-zVDBR z8w-29bQI*52PPE~1qIsTVw=dkdZ23zl_zqoq@MF=*rWr7U!`Fv;ug*P(y?&Kky_nJ z61d{dJnqUuxT=x)ft7os2?B$$xWmbnOavv0tXIgEGc$sR*hwSa7oHLoUy4n5k4{DH zmIQY%Hu4OfXs>p9iW?e2TI`|w-p*lpK5`toC0{?atJ7XK?Q}Hss2J^M)ploVXJcta*fMdYpU?`^hw^(%_IqVZd_45dHJ7k zyPPI7ce)_!!cvL-y>HJW0`tV09zF~uJBS+(zV$j%9*F$AT_pTMF3J#GfJ%dy-}^EC zaU{k?;5(f_=JByjNke7C5wnixXF-gl?ZZzF^|@so#j^pO_V(b2bE3JmwO@NdGDQ4k zdm755D|VQU2VSJu%!Wo6rx<}-lQ>|2Y?0C#D_eNE<8E~HwV8+=@Y==9jJQY@CueeOze2-l^T8l0mxSP1Baz7SH5f$=B1$nm&vo z1W|3hp0<#U;;c6P<`8-==W?c=$*ltR&34aV4$r%>jl9W60pM!0GvOPmo$*DR-+tO6ZYknfc_|GiQO9(8e8#WT>UiFj$jh-J(gGoO z(&K?>uG=ADB&!fpC<3Lh_@;)ARA*jt7aOh# zzUL~&iIaY8y*;7|+~t5xH9h$K>6Z`qFB8@Zf-j5i9GhCJd%T%PFLG~oy3X?7tk4;& zpW4(tauL&Foi1-3YcLJ+|30eM=n0LSI7{-l@6rHfh{5Yis*u45cJW8n3S(o7=FQ<$ zR9>f@v=k(&5g?5?F?9UDS;&u1pbSoZ`8)PUA@d(jt}H?8dY^KJxXu~`8JKY&5Y2%9 z=-72_z3)qlpYKU&ad=G*=i_JU>Z^{?iFrU`1n+68*YWCcp=otkXARyzO8N=F?f83G zG}%9@!qJ`yy6X%GVFIKBS=5A8%`RA5^=ryFS!SMs%qwDYiv?x8PJIeNzk~?YyERn7 zh?JDwYHDCv$VElDC@&NN(qNV~L>3oJIteR?5y>aeq$Y z)qV*@ifXd(sNxZZYQ(`Rmp!)>&9;3*zqIL1{tubTi;i_v>^ngCS5^hv`q*z8Z&wSL zHI}uRz+d#3BDPKN91A3aYVfMIxRWs{Ec3@vv6%!GUgN9feq$`Mwp6QS3Fp-V{F00k ze3t0PMsfyVwaa~KXO9Jy^Pg&t>gN*)<-*yS=>4xW^muF%cMh)n?yAFRmNhX2iDcu} zcv=~2Ab@dPc_F%6tXowEYhXLaUU}Aq$eW1lI=a3`{b~XrD#y~$VyJBu>!)DK)rXsH*>TNBC^wx~2O ztA6g=#eNA(iq__mjmmL$9VG$`gClm+%f`PO)eOqnBge|K92|ays$pa~bgW0$FSm1{ z;JqV*EWR%?TGtd;ZKcRoMTEJ%c0s|ugS`4@v9P8x`u~iwK-?1+bN5;(0OtM2S01%u ziSVus=2X~)l>L#UgD;(WxRX(s!ktsGf2Y=I)|X>;7b8!i;Shxl=W~kom8fk`za}Y22|UO zY7eC5(64qfX1u?=Xrg(w($E$gAJsN>F9hC4xh(boVCbDi=VjJ>pa>0 z=ye!*xC1Be!u!>zrZbPEdIAK4B`IHQv@Rx6kp<1F9gL^N=<5?Nv^hoN?mZ={(o3ff zQ?P7g8qDMqDaT|Paj*e0gGNw+{n2%e>I1{dh}sALddKJB%&YxY+fV-fFbZuB!84?L z+{0h$KGvGp!!?P_?88RFvkS>-VO!4SrNO70m24yaNa+z4*M#AbCnc;74{Ro5JN3n7 z9VP;l*1{87PuU;z{F>1t)&;0X+w3dPsfwx_!sD~+2c9=NG%OA+DMcu`I~QcTMmWy_ z6627Q_@{8s@(0k+#fNpySSGe$>|LP?Hf_?ej3gUlcy~2Uzoi4wPHh63x)C&nb+j@q zO^rx850A-etD{32ka$&YRi>K(GA;{=3W0GH)<8mO9$H$!5=Y+MAQ1_PV6AcEmBT5TKD}wLisAyy zIY9j=Sk&ehiHS*y8N)G_^J=BzYMJ`$2}GV*C%UdLPX(Z!aeFv$sg}xC>lLYeXB{eKXe3e#Gu+=gF{FXz311v#xCMi$NJqm{pKWe zor}}2eQsL~X3IEMz&`&6pimm1DVm`(79 zc%f3)wMLn;=YqKFg8)J#LaVacASBRibvPlgnmGJ%Xgg3wnkxpgfxZu+k!uAEVkHK} zU+P(b-z6W9oc6Cd6>>JG9xAD6I$dLRHRGHvpE+d^V;9z4vWDL@t*W~e#-_S347bF0 zhxn(7$H4D>NHsZH11aPgn}S*LzI_^}2+n2g-5J2r`ZiBLMC{nw;^zCGaaorR7yV2% z*&AcU3!Zwsc_SGOYkJIDBjvJI*&T^}Q@Xls&S!8d%ohj!C;V>bI(-R+XFSe+uv`eS zN;+-{k&zSpmt{Z1k4GX*0=D<>X4IYGy5_pjal8FL!l@x5*jE3LH%x5L&&JpmlY>x_ zQsSGcw=YkZTSZj`>526sm&u#^25XS^38Ix%^?pXYnBSc9KZs{l+3Shz>CynyUjM7A zzpSQxCrE_#>Lo;S^3p6iv)6o7N5#+NuVvVI-hmpYd{b}WmAg^hPZ2ef z`Fyz%Cz$?n{e0nzgb06Az=z%DaS*&p@B8p-rL2+H;}HHB%Uh?bBURYr`4La8&(Z0( zG}htXbM7i90x`q>|G3oz2Q5F?w?)1l$O*klrz5mB`5<9IL)1VrW5%qfq&5{Vk9Pdd z{^K>@gig)v*yyk#E}}uO-Hmq?pN1TeA6;L^n~BwKnT~&($Hw-qAshi2lT2`B^7>SR zhWu$qL6#*kks(Be6=m0LiEKM%^kjvMQRPXj?WtZga1mCd$kh}hN0GPhn*aQKs>^z@ zZv*pHihC;f4aa-~GGdr~54wfLWxo@mW4gqs$15l9;;(hzt3M+kLs6PxzJW-X}sPcU)Ei79fv*F#@%BbwLdCQV}_J$J~|))h1;W? z)isk(6=Fd4u32PK&Ny~-2;B5O19cg@`_YcZcOHs%lc+~V*+Q<`=o#l$p`q<$zR4J@tPTB> zeaMKClIJ-DI7e5#FDIbQ93$B`8$@30wYjFz%;p!jMy7i3&<|>&Dfh#%ulTtPju@&- zwJMt)b!5>iSzym(j@Uc+Pd%N>!5eiLf-SRwWi`V3!%-(**&yf2MxI=gf$kxl>}fUg zEe~xJW)_o~pUBPfEM^bcpjF^F8;??4Bb@%U0!OJsHxn1u=|ZZ>$etNCZ(7?89b^3E zA_*^hm`W!_H2T6v*`)5^o%cvthikli<>7bCW9i)!sO*iVSbW_i8mX+oB#uH$MR*W7 zWBMg#AHOcg-dAofvJCRD6?7rN z?051FZpTaR7sW`^w0rJb40C(p=Tp?fJYUaV@ zqr6=aQzNB$0zJIy1w7n5nav+oKVb>2jWT1)XT#RE3RCmqfa*#nPNH@QfU5giNe{{| zlrUUkcDUyh)Bi^ggH+c)D}$oSC(a)j&EmKW#((g8*QjImU3x79)&w`#5k%ts8!Eyj z3YM@&7o5*!#_SeZnEa-0D!wRxpfs;4E}==tZfg6r3Zw3)O7FT1l%gVg0YOvxq4Bs2 zt3b8%?_B=6RNg^6s~^VsGWl-)C2yI#3+Q;uwt> z30!Ir^E58Kw=;(NYhe*%6r?M;8eo5569I}5#Ig%L)&b_*5Upc{azDT31C1jx zyICt>LM?SSj4sZlHqp3LM%Gvx)lQ|a1kTZl91KWZg zwAhBzGa#Hu3>SrGIMa#oc(wuNKxGMCZu9aDWT#e5i4F?E>O|xJxTCaxy^f1f#h{cz zKGfRr={@IE1}0M9_$whCe0}0$Cc?TkorjjH@I?*~EEbV85@#ZR`cY zF~5E&o?v2Ah_jiaGZJOz12>iChjJfdDey2OXp&?_XmQVa-bD?Wfb%PY{FY%8B zf%$g#oVZFMuj1=clXgv&2e>WN{>KZ`?XI)^i;WR}AEjS?U0Zs!)5d29Cj>Nly>p4h z1WekKpMh)VblLr}hz+9xf>B*9SPq3Q)b=5lCviU(@-!^qB2EnI7)q*!9{g9acGb`p z0+X?LU3wIyd(fLz<6Uw(y_cA7FE(-!;tV3*yIektO7{2iyj9i&OkR!#8y!5axVtte z!cVUJRu~PKvmdvc-F=0BL>4Ha`I^}Fhbb6>u%CV7zWI|={4sP@F;E|W2o$N=>>OIk zTH$F2urGkgad`%#MoFmO1*&fx*o^gTXmoGqdEDKYAq$80`!k?03Y4eBzQcoqp-y zzyW?cdMwq!{ynjCVJyL4Xw>KERO=XGE?4`$0xIn-frXl4Pq|m1(h8AtWxtQ`w3$;+ zCHJ7z;jfu^b}9y50T6@APM4TFfbeRk={CPDdcGd=hn}XStt}_7553fMkgS0*H>W-G zwj!{#C_p%GYZ5bD*i1J*UOV?tl$+Z8w%O$#!{=Tb-ZdBK;`>;Y(Lt$6Q_E0LRq%Tl z)*O5wlGy=p>ZjWF-geA_Lz zhqn0Y>f*^MJ00o^=Q!Q(1CcJ_f4pX&>ry7KntK16mc)tq_;K{)I2=IkzOU{wmtZcIZ=Q_m zuay%876nsjY(N72Wk`)4uY`iK5|< z{U4{6UfXyMDAODq^sD~Owoe;AFSr&`_~>ZE$r` ztAEx~c3A$J$|D}0&*_lGIg*;zs&6vyVlbJ8J(TAR-Lg0)ECbJ&3F}#>jAd3Ng*7%b zcmv2fshmZsG5&n)-zVm8D#2ZbzGohg(M+&T=gT^qJhJ=?Uv|k)ER!z&Z~mAHm;B?% zy0ftx$u5?Y)@eD*;8>uz0dICXdSuk?iq^zODC3QvSxA<%07q`t+MPDXY7n1Q-FY5f za9#?^2PUTS-0a}yIJ_>Ow~bBp5XDK!?sRq(d#PD7?bk{3I(`L5f=P% zF8TChL20y~omxb_Nzp7iY+=rx!~ab)aAb*JkHuHhb6+IRokO3U_F2pm4PXNTGd3CMAoCc5t7lT~fqwZFC@lei*Z4@nVCna&+cw=1!8P zfO@n%1flQo`{zD_MiuTTtO6M67X)yysz?4>aui6Wo0L6KChX!3j%b5V3j(@2lvc>& zO4|4l+Q;uzm3Q$&YFYm%iR`p8e*rBY<3CZ8jQ(at*Kq#gsSH+RA zf<+~+Zer9(S%P9sV?B1)7LAlgPeWQr9#)@=H11VFgKwQ*TN&8XR`6^Lv0@^23QXc& zR*hl6GFrTC{4g)=`_I>$Y7K{NUMa`H)HO7Vj(ub&*NFW85%=CvO>SHJ=vGk#RC-bA zgkFPKsM&M~p(7%l03skDy@OJuiFAnc8bG=Rkd73QA_$=^mSYY8=Z!}R~S+DyTa(y@*5Id z^(%&kaLj7kx95`jn(sLTp(%BiliJ$2D}oN{dU|?QmHHOu;g=nkc0me;cOX6C!#n*Q zr#yG~je{SMi;EK9e(rK|)pR6j@E|*=|1)%)S+B}w#_{v(o9*kxJAG+)G6v%=3>!b_ zN%#z{`kdEL9ob)xMd>}-E2@93e3uqA`cT&ud&|My8kX@O*?JF|fbwE4Jle|7JD6qR zG$HCwhCI=SKwr1>eOr?-3UtSxC#`51^}>P7}U(T&;AiFZbktXImAW!jl2(3e#HjH@)_+xf901 zd<#R>WDCnq@Ut&kxg7o^~3K%y{rrM@@>uAyka(>R; zbIcsb`#I;~Xgb+ny=PSC;&^9S!|~_n!IYkUI#7d|SET9UXM=`mR+?ZGc`Rn5X>+sY z#EK{}x}EIiSmFaYL8Z9wP6GKcq0TdncC?cDmoWmM1Qt&*Ep7L-w9Aj`0@f~?WVjDc zwdcJf9xJkq-1RJe*Q{pJ z?w~E&Lff&AO^)es8;~Kv3hBLcgVbprp?xx2yjs(0%cQZK!*Be)E3>K3Oza8hc}NAG zYBf5<7~^NfzhjTjUQTyykk7~+(1B?1WLI}W1gRck($~2f{k~!cJ~)qj_SGDfRY`M z=zo^%xGMTHFuJ+5Sch%#0KG<_XzS3gFm0MU*;}5wjh^p{0Sc1=8U+c3>0Xw!FIO}1 zS-k2Eg7G1(^c*3&=}T4oA%v$Y@CF741^g8ion~_f+A3-U?8n|`P19{9_XEcn&Wpwq zbpJym@jc=Xklg8E8My82$%CU3I)Lw@JaVZ0-In zUZ9otBmTbiyjQ>xC?U6dLVzr>-#HrDHeA(6I)4zQTnlPj;zaJ9U_9{a_TM`g0?{nz zM+79=U(vx&{P9YpP+`H^qGmav;OfjiZ)u91^!aF?AOEStz21&#{xo+{N8{f1p-p+p z@Am3aQoS&P)kjXZU1avaV{{D7Kjlb(-J90EniA`Qy%T?5#n1kaH7W^Ujp~>XUElgs zeNnGgn$UglS2qOOh_eXXo9s2bp7>|HQ)*g=(!gGeQ3}s^@^Tm7CT9NHicuc1^1Npg z`+DZFpt>8+dGVL_3U(y1V{!+o@^{s`te1=2w~x*8gu{b;Cj0GFwSa^sU><%9qofH@ znl%#>j|3adIvpzJl72t(_VNz;QM%w31@}vw-R?t~wCACm%4-E0w&!6#w}G%9X=zg` z^uM-$q$Bbc5i3k5++Dp`2xTFx)MFh6-uh-Ii)U39R&H?9vIZ^S-K1YCXMKqXs^@O; z>(dSF1ZSyO;&Z^BgqxOhq?XKQ7@s*rRz3@X`!ftHZCRsgi5Gc-+q(JT=fG{(>8+c4 zUo}5JJL~q5w!}Yh$JRc+|=D+ap>c3vFVEroJJ6^N3TyX5J==5r!%Xj zOmG&iv#a#k3A#%!^}s&nM?%jT1_8l`?F}&LB4{=bxGnhznc&XTpqSAKw}Q8XWqF@{ zZp(n(m?{zE_9t}V8vbjv`1vEZHCc2Qk6u5i=7Ae;`uD!;WL5H zi1g3K&rfV1&>f|$~m=j^=lz{h{ zB1?sLX;b$C0{R-r17;CxgnjURGv6-++*>elnehA%ZcDqb4F?|rb!i|g_`w;PIfP~4 z075uWYH5z+ptNClaxdpIcVNmdx|U}BH*baf*UNMSW(tS!5c)O#kE2^c$x;I(1rG)UR%&3-%i3yiC zhUL{o0ujfYP1ENva~AyfYCMpeKoE0xcTY@7Aqcd&XO#=@q~skP-?)7bmPk&{A_KaA zKc&ufd1w$Q7K!?_(gLc^`qlo!i`OdgkBJ(Xl<(Nw(uzZQV<^<2f=tjZZirye%#*wVG`UZS*_Y zRZfXv6yF_4MlbhgU_VR?|AzP7vs-WpAhDPV-S%s9TLAC~szkF~XXv!_bl9_JrCz5y z-m_f3h@cvRyt7 z8>I}{>YCulzwGP8(P%?D;RZ~=mT-f|M(P8{EsrzJ{1o4q(C3ggf3drF{e_XfW0W=W z$4!2Gj{|Sadh#$fWEnmBu57Wc8M8dw9u^T5MSY}u%tSV^jd6e|#u~S6Z7gpp|4GqW zP*5;4Gq5pH+X?!(P2RliYG=0^!_3jPH79&B(87ug+a`>dK0y2{x%Kqot4KpFCOGV%myX1d1dEnNxK1W^oh( zw9ibDX>{jF9|hqh_SjkIEJ0sOi?#U*pa|;wWnLX1k@dnG-+E-AOcBk}`$RUDbf7Rp z(i5*TPGU*MGU<0ZiKUS>C1oMP=N#Z~0o#Ju&K{Gsl&GZ$MRetRroAF(!E<2vS-;rN z;(oSBdbDlacNhoZ`$MWip|Mf)!jZL(XEQZYD znJknrdC&wQ6z3i`X9S40GUa^Jj~Gj7ycd-zGDYi#fPN6Qgb*xSa>vj z^ThgK!#~wz;%)%@*vDE|Utg*5b&ZK5)UA5aOm%XTeY+j;`oqhQ`-W@e6fmj&5r)TEA27UdL7=v#Cw zN$`lds5(W=nQGmZiZ864d=D~NTU+aGmZ7+6Ze^v=m`UZY14_wD-{$187EnYsf<~6kxO0>afp$Tul6f+kcP?`vLB`8cgkK& zkA)iwRV1z2fz^*NcZ6zZW|D$CP^E&|{)JF-s*_a^Z~GaWEM}3o+YGv*bIUN&+ORo& zJAY9n*3rR%w)q1{83U)nHR+St$G`dU>@X*g8xu%_aeCol6!ys?%Jx)JbxzNJ5~wbZ z+2eU+lJko1Pxd$!3x7}+#tUtuZfkpbTL5z3Fw2k`vQj<1QPlY%@w?rHQd%@o)7Vq7 z(~dVsvhdWyH2gGLQO|qU!^vqY!Xd?i;gvX}0gPp?1D*&Rj|D{F zjoyT!0#(qk#F&|I7wl(|Ywdpb|2a)s1(!z5zd1Nq6Hg^~o4(Z&I)W4} zvJT1)oyhXqQ}yT!4Yin{8fjYheW(UN)IGQXkhJicB+rT8HxE?P7$94*$^Nkjq@^78 zApZ(mK24Q}i4Jq`QAsF~YMo^^G97{JvQmF#cojXr|2Y0d>_ud{LUOEmEY`$P(oSVM z{!F|mGtande;!oJ@);oVTi$)-J_C#2B5kRL5=T=AFH6fgbFix#cD%DJiT7*}+?Po{ zDO17|6Om+Z+};6Hm{m(%dm@4RB2&s1@{Sb=6=1pTztSHo0-}O2qnlnJOYrld;_yjQ~mpp{O#bw zMduu%D*fRe|M=Xd$rj>88Ez6LSE^1I?{Tw(%f#`s`?augHNnj43I}_8e&4E~SYWEA z(aR-C`@7x;0SToeLPrhTtl%=_`}aDG=&qBA5?ZvI@fBj?P8-dx;^Jb}v!+6az{4Ll zUVC5flVuFMZN}y!1810PoUXNt^yRg~Pbs+R(C6RLK~_8wBvc=V38m_=1RmrBxtg$j zj^jeG!aba%qE4#9t5fgzR-JyGw!|9Tg9$$d5dYJLRa5&pRZLU%FqP7qtR{rEQH)n1eZ1j;irr>C(d<&^|5=Td zT}zgpSxm+Woyl~HG0|6BvDtDrl&ba()*+|KC9;^U0k-lCwW@?M>E3$VT&we^eM%A| z04|N3Z`B6kz8AD?xV`_+qn?^2>3>lfj1>L>6^+6sI!r zPe+@%$D3&u0pMF3+zd;cc3}b`Sx~|;YIXY`CLt$Vl_B`9Q;Ug$mSRwYHQczz9h%xZ z@LDKV6)dbM-Mtgmq~9ROn`v)n2h|xHUmjsXyP3*FZ+@No@O#F#OO= zR#g>vM>?NO&yDi6Rld|#H9U1QMeR!O!mezaacgs`#nXL7XLbc6XZCkpql!-TtR#nEFWKFO7c{l7CURfZvZbV_^(+yyE0Ls<8^sY^- zFtr-jHI99MI4?`EgfS+Tb5UxTuH5R}Fjh8&tQ`I6A>UE1NmYR_j{1W8)Qc`yWO8j{AIIYy(@k3-%Y-H>NX7W7&0KIlAnJYw9Uk(O zZB9-uXvx|)$!WT_HOvRx7uPpxO4IiGZgl~!dXrd{7GNV)Ro!~3C5*ZVllcqk8cafads!h?V z*RqUi<9NQ^vtE6>Ko%i;`lHH+1qDyFD!qrn=Cg{cwlz(HkA-?wnUk$X^`91%NUE?F zQICQQFmrNs4v=S(cHU|eY<1A`X(C+~Luuo?+$guRU3K+kw6ZD36TRwCvNZi(JahDtz9v^q*yZ&Pfo`>0QYl*Q@oe!+%x#I5U8jqhty-+@(ho?6!$!t9CF^!Bm| z#r}*c*AmxUleL24tTyJaksga!l&bTg?>&XA_z&8YZe~3spDQ#OXs^jrhxFp@pbA5l zD3+zF%J*iL^B&Cb>s7?B=M-D`=*<%pBo;B2z3nt9=-4k$J^U z2JLACRf@OQX^j`jhu+w*2ci1*1|ViS-LkPF1zVwsb^D0K!F}n%z079%)eh8pDRL{6 zro*LG-sfw>REh`toH z+nLHH`bFfv6R)%|VKhZDvxQ$%2c}jBTg#u%p+%#ZBvLSb5SNAU2lrN^#P+8#uDO=V z%QsEZz2h;@Ujd3?=YEcc0P-dP6NRB3txaJ${?dEL-&)Y1P~L~-FGoQMqsG2~IZf$ojpJ$(n48ngyZK5wper z9zJieo3a2gk@8M&Xq2j=2ci4*`znNk8sa%VXBE1&?01bV4x^HO&t8Yg3%H{SQ< zp{J(&%~wrwH<|+|_Gca@o^gQ%(ZMn7fPS2m#VM#6q{`J*-7DI+bqVMlR+heHp~7;Q z1irK#d%!0;C73X;S)#v69y&d3x>NfYd*4*u$Y|mv4r5p}B#$iInr`B6zWwWAc>_=( zP5)^<`&|(A9MFy#&%ZS>3x=iVtQc8{{3Er+un61LbmTbEfgTT`p_^!It7yW56B~Sp2W~RVD`UgDv_g~);B^^5KLDe}k01x@s-xBtV zML1@(Jb(@@_CKGCTAsE6t5ZkW{`;O^Uz%eWUm=$GV$Oam`Tu&}Ip%YOu_3v+xgNvN z|MR&Szcuy$^>r*~KRN%`lP!`HJ@8bnUy9Jbdj_bnEaKO|CilfY|8M7{f4F9JimCr1 zw!i!S>O{tc0e(6>$Wn|of`7Mq&p)Jd zpY1mT{70MG{;lf)7x%GHUB7<)xR9`))dsKnS=)l!XkG>;`TP#0|GY9G8*pA-oekWN z!E3*SU_U_G&(5TpafcKBy%52k2#oL1riF{k?omC;{>-}XSM-ZtI@P&aRrEI&pZ^5$a3eD`3W5Eh@H;VNaEV*db1Q>+ zax}WBsrl|A3<8ax%|*fq281rcG0VIrenC^=BDOz6a;`3LM;NczU4NA~W6@&-K0fwu1NXDEz&$6@DYTlJ+8m^hFw%1RXb!SH zHafaJKsbTW4?KGGX#RVZzoxaQMC$PHkQB25I8*4~-5I8Odzv+(wQ(h40U(K-!a`yQ4x>p%WyDqb z_?MyvjGktEJ1`w5-I@mfU}A5o#5DvS4Z-OSZV0d>yic{09Dc|I%Bx=Eu=+||P^{|M zD|Qz*@WNQB;rhQ=v@h?R#grkZlu@>+zxBZL#|OE<$1!fCRj_Kt;X6#xN}c}kz3-z^ zsW`-rEw~b7K~$6whkU}%LRnIbI8{$TON+v@-cOW-vjKv!iml;HaK}D>MWc?2lc$GA z@LH=FQ$yCU!vVN;M8Pu?P$vh5^% zyq)G0X!L%a{5Jd;(rjGM2%c+*n!(q&Wdyo)ymzW|Sv%{!G%CK1V;cS86}~oke2q}( zvL?0Fe!r#A9ewxJ^IJh{53{hO2a@*i9S0aG)+JlWsi0t#S@TOU^~2&ytc(f02SzI>5)ufqf5|;eRPSEi6{IQdimW zDE54iXska`Y`>2=B*6UYf z3(Hr9@0yJKx}34kBHXro_lxFl5xaDB>H6lFr;{^Ar#*xGtvJ`m8>(tmy>Liwi%P{=-@_3tj6zi}_DeYL6Lcuf4) zkMMtxwUl&Gb1?A(tKW=zt}c=MEq?pZv*(lB0-60BCiR`|UwqpKQTYesX5N^8DSdWd zI1M~Efz^N%<2RfFqnw&gu9yX!6daQm#6a*2EdKkH=glC#frE@aGV|xeU(XICLlI=8 z_*ne$(H~WMS|)!rKlmSv=q-_+Y1$r$O=j|h;0~IXnLC!v0wVroCk;kl`7m(V=nHWJ zXq_G*Zz@1+Y_Kmb(wN(xZE+<^hzC`g-#A3DQzEBR20INzy)uP} z+l_D9{4HOY&I_7f_qHJOHYejZXlFKPlew^w_PwRDW!*v0h0wVX{>YqqZKg$ltu{}o z$!XVrP=-46NEOSpvnBtS`0J&MuHkR2d3VJHpQI`W@v)02vWqCmA)E~=f7Y}y@3qsC zeY#1~dh>c4CHW^h@;18bt;}R}*7l7%#H}i)m;nvA$IX?Vr!PhW_t>hW}9pNq9v(UqxqOQfFT8oEP*mx(>VOW2 z^iS$4x`r}41jW6OPI@7DlYZiT;nhX3+~drpMIJ{r=G)$WQhY0}9K$iHjc*rZP`woJ zChr?QnydZ~uG&c4u;F5RZk_PlIvyUlc+|tN%^s^hyI0XXd9>BpejI2*^3!HR)eo1p zB~<$hE6ADt!RCeScc@-)tkcI1Cj}*U>^JrX zk)SUsrMMfoq?z+`Ak}5ZWM1;e1*K~Bn()3@tSMz7CH|lmFsl{sOg5lwqO| zRYVX1xsfU_Q`IP`IG{))p22=o-KAcy(T?qY$h+Loh zt7p@pKb0L&fteB`w{@eAFy1BS-o7$fQH4`#eBeML)G7U1My zT~7S$sU2>on@_Z1Gt+W#PqHe9@i**9RVc8WVaSGK-wB>Mjlb}D$5ESIXKAof*l5oKH>MI2=t0r&_9OOuAimqDxU#Snta#1uDD z_4{%`lW|x=td4{*Qrf%mN8$^jgUFfSuMM8e{IWPgS>#WG^QSQ3mJ^Q|*Ixk6^G^h2 z!Y``c515YgTL{2>otQ9i{$Wn$lhh$df{_B*Ev9$ykr*^}z2U6Aj$Yz~y`{4tsS82q zFSvPwO=8iq_g}M->jycqeeA@^=@_a$Hrl;t7-_yJ?o)a-Vo`4Qv3mAZqbl z7ZiGSF+)#CE$UzZWaXf|i zkk;YMc2nIJ;{rDnG)%&RAIwK?=XX?q87LxbHTf<(No3HYZxXqPUrs{k>!8zue$sIw zdAm!)Z3(0Io-~=RoCO?XyrJq&r5u%YR|raU%_9$Vj_zxZjD?hJB&`@SggEiP`u5~j z)s#DEYn}B&Z5~veAD%ii1VWD3+Ok)^Q~CAge4tVM`7EHq4Yx+c_r{b%#1XdchN-MK z1#|MnRBhRim=8%4{2T$jfcHdhH`2}Jy@C`AC?9a&CTkZWRT=5yhxkqm>&X?JOBl&R zffW)#)rlyX8iam@ZUcD;O%FL#oh9UWl4ZO3MsB6wTT5MvCGVRX{R@|?uPF0z#ba*! z#t0S8-26IAIIOv3c9#0v9%Cf>r+9qXv2P#zLzxO~=6ApeV{V8YDu1e_(kEvqA)H^3 zj@);Oh;?VM*p)OVYaoLglA0HMmQO+;L%^H`cj2kbc?a4_VZ19Lci*X4D(cWv_kiN6 zfj;LgI+RuFLzH5rl7R_GuLijFyjM%;C&BFcyw$1`db$+oPIr3h;TUdYalgF2Pi)9t z#bA-HAOq3|B6g|N@bS27Z5iwl>GbFm@460DTL5KQ`PBCqLmmDIjLuCHm{y7X189fX z*ZCbkopEx@R*u8aWbT_AeNmV>pWdsFoLhL1p_M@Xi1V?Is+a2O6IyZHNBH=M`ZwY+ z^g{1&-+$0y>r;t_n-19KQ+0_-u)^6MYDQdb1C|oIZ%)a}_d=1sDErSI81(TUlA)fq31a3S1&R^3$qk z8xt8xNQWLbk|W@IUch(uRA{8%@&{?y#gBS0qmbBS9(bw(N+Hsgtq>=~=C!=8B;eg= z@VtzsqY5TkvWSXL*U$g($>F8=&yZlE=ca$6?Ju9;bXOr#ay011?Z%(xye1m3luflA zceuu`X*G*ZKl&b%GgaUCK}n~pccf^&9xP2xmJJzA3HdA-g>V+K9DYFV`HD!S;O(W* zli*GidwQ=b#wEh`z;&P5s;7}P>FA*^O#zA~U#zxkr3&HIpQLA6m^@J)e~`%aVg#N_ zH6-_OiSssz6qE+LdzT1=R7~oU?{Ks7y-i7lmXy5e=s>~-puXJGwC@V$_PUhllAB(x zB>9l>j*&M|TF0|Z*WF)180YuTsTHhq4qxIkI6ru2EUWi zr!+KDWL0MR{`goF+lh)DvZdOHjHP?p@kBKvSP5FviJ}?Qj~@);DNWR(1E8S`OO1Y& zZKUV@?Wmd+Nj$CdZX$QMXd;NLo)9XY`I1N5ZrBrv@t+H92^rNfFwNj9 z>`6GYQ4yUhRs1;m}0n z3$mf;4iv>pD0wBf+C^a@t8(rFHyC~XzMVD{kVmlt-n@d#vl|XOUIt$<>O{4*KL-la zFReMlB2kO!h_Y^P9wROeM zgmPxd`#C8Fx{6*TmdzTJr9vsBzRP!$nJQNjd|MEnELuP5vT9AMQW+MSXu3PzDPy);vg#~2CpV)?>^r7~btHD3@I1Be|ZIT{LLkx11WKz5} znl+?Yc3YLGgy(|qCn4KEmX@9 zZaw4T3Ls$xxdRxZV4pLO8yPd(!XAbEGGn{K{&q?NQlkidT2j#*#IYc)1xwH>=n#9T z_hpq#@$(Y8i=An`<9*jf`!Bo;Vw^}-d=DSFb!+<&A9>KwkQ#HE0So85>!xAfZ$vm4 zhUqKOhq#$iO~}a>u zKn!u~Y|m|YOxc1B-RFq1efRUrk-RQ_&HCG9KzzTU?Qm1=+L!GZ!Po)HOi%cw4pd^9 z2h@+d-Qc-V6{CygCx=(}sde)mxq#|g)*WII7V$&cP$j2x*)jbvenqC8j9W88R<=(fSss!b;HHI&vj!vW+lX93sAtTik)} z*gQ{9MpYx}1#)9OWeB7`Uum1a?}cIqmH9L!0PXlC6Kf^Y9qILTEjZu z-EeKa;M)4;a>IqFH`Z(^(XxuLgg=r2-byAS!FZ=AUR8uzKraYfc}(N-L%8ylUu9w( zdbk@Fyu_(sxJl>+}UymKP8l%qy2}loF*IxIL!m9K#^dU3*+eUquS^~ojT?b`T zSXhnixAt`QTu&8tCk`K9WeT=UNA>_;TKl8>BH1i$Z%5TW-Zc#KEO|3~VDB{N^_Apo zb(r$_o~6p<1dR!rB!0-VhJqXHp9ZRh!kn}R_D|(IQ7b+A-L`B+d%-L{1AnF^Bj@vI zD@cK08D7h3#G6){q^ThQa|$j{wpW7MM7nIVzrJW?I4~cz4&hx2y~FfUKEH6$qgp4` zPJS1js)KgP?g=`6I5eoEXP+>vqr@*g6j`bN$p6c7hzRn+HAO*Xh5Q$a1E|>L&T&#j zjg*vOP;&8{g7`gPE51WmiFQrSRZrp(uZ3kpunEoQ#7Utf^f*v*pnKQZ`AlI|BI{K@ zccq&4p?bg*A*$KcsEclI!Vh{r-Jn$!d_(O21cXGpG0M*!=8oNPk}$)>v59BAxRdbW z4rDA61Nhp!W?Hy^*{DF+{of0>nqf8)2@D4tv$f=uXuun%ZShUM451(2-04F`^*-_0 zsPB62BZI5vRKpiI!AU`{ z_Q?49hvkdutoNq8wbiP&DGXkKDV?&VxvnO_N;L*bR;j!hj8Y$0E(;NgeEOF3;T6y| zx{f;|Zn23%Cue$XwLrFc7mE;5Ee@_*CmhPW5d%{~(Tk+QOhk}1tzx5|7&aEa7fjS4cWb?C&c*g5~ z2&!OGC|KRU|9zYMs0YQ%>rmKMTTAl|!sk~ED<19T!1tGMT;STmq=kC+u40=yL^{_?exeT)Xiz{B3dOIk(-onNAcFEE;elDq3tOcOYc#(=sD&g_d9&wxZv@6_A zb9=256U8{&l0MPX@|w_$Ua3$I_hbtLYK=B42u1;xPcrvgg@~P-VTzRIJK+o~+vebm z3O=nU3`4}E4!CUk9^ho?tYgnB&;vHDpoQuJ4C@H~3Uf(3%;3BClvP4bk7uFQ#F#r` z@XXBq}56MQtnvU9JR@QS%)o8?U;YVcd`{k;{+VL{ni8 zHTqS_np(=Krr>Y=LO|iu=Zo)ihk~sDCkK1LQH}XVg2T1jSDXv5q|>Emf7lpSkb?bl z53gkcsj>a{vOaz2GF5oy!~~?-vLOr7^`ih|b59yAr?K3Lg2B{)QPp0IgOW^k=Ra6- zW5gi7?P#gl9xUrNn!wZnJ4-^m%=Jgd36IdNZ>-@}*|BIPiNJYE0b*&yUTP%+%6!n0 zik>aeN>o+z)>SP*B<)KenmN%W^XPky>)XAdyV^=hC5m?=T%j&0n-zu{{H}^HUDEHV z*XW3!=^en;NaJf*k!rfj!+8Q$e(4Ie?0LPOn)Hh(FG6CfMi)Srq!%=szJ~He>y?%! z0^Sbeh3>+_f>@!eR%MC(WGii+Y_!_$FVKhamG(7kGan2!$l|iDl0-P=weaed$zxO1 z+cI>X#|sqhyD|Gr<%MIqe@aVDB(;sTcyGJ>TI%oz!e;&zHL&y?h>{lM1^Mr}q~uq~ zHOp}1@2gSkCCT2sDORh{l0dFWrH z(U3hiCk$19X2x)AH0-m301 zI@Db?K0M=dXWW;0Y6Qwq8_WA5yXenH%e9}G|CIKk)Y}wm=S9TZAQ>QuF4WYT*AB3B zE?tR_rPJ}bYc`uhiKcwF`6UYTrT<1-Lv1MHUguo+bY1lK49V~*{d~9Geuw_cv2OsvW_eSOm22s81<2dO7+LTPO;{nvy- z4^3|V)aFW}zvLJvQ`-^D?p?a+g;coXZ@Q|133}a629N)-3$E7FpF!g8ge8&5z|AZ# z>|{_)e2I5^Ly}WUJG*)iE_(~TZ$cI|FBd-^PudO*R$f~1%L@sh5=ufO%VD)U_D_De zpY3RqH6Nc&_z!^3sVuMc@5l+)k54tMv6pM(XKwm)AgK(QxVKXUn#F-tKqX+A}s5_MVsQxu#6uLV1Gb~=`rrUK?ag`bwR^8m1Ku%IeT6CYfiGW?K;#FlCw`jyx{l6smZLX_&8EnA<8g1w?px5+9( zsCe7JNZw2S=5}lc3Q*z@T)Z0--xd6}m~%k|Ta!xZA^RDUDl>J#eN&QOHXQP-bE%U! zMxMTP=m@vH+N5^rxN=8Srl{eCnTgk>7746qz;6E?2Jis;iFPr9i@i4KC5^mwhnu;& zs(P5q+n{v1_>2y7Q@~o5fpJB-NCdv76~9f>0<9eCOt~Z^N<-uf!yuA*tpQb!-2fS< zT6)VefDL(FFN$LbmH3B7q~lY2Xt7;fgjKaj(z4P{&CsW3np~mjrZ+BE(rkZ%%@h-j zgdB&`R2LRW$QO5OJ+kJxdmG9=kp!iizI}i~dt1{VFp2&Um{G0@o@8+0sTL*9M^=A1 zKpW%jWN`r~7sDGXDoo>IwIJJ{Dp^ITY}&^0sYonl=mLeJzj8CR(eQUrJ2u3{d&PjK z%jCzp_It zGOztZs|!;T2ba+f8NO9h0h>^?o=nJHTP_iK`ur0wnjKl@^IB-_u-kFN-=~Q`_o}g? z1cV_TZTG2kO7p<~ZL(0ULmk1Vke2LT!bkPHte^iFiPqw)Gf46sN&-2vSqlyg zMP3a=#2#|xU0!KcyC%m|;8xWpulHO*UgVhPYq=f?&j^#Z1>@HvL%_~bZQIn$;Jc_9 zXN}S*ApTJpZWDctJ~o|3)ma#3!L2WM4+dB>t^(}|5exhhi3^okSHu9ft!4qG3azyp zk8Wuz1^m9*EL*3Wmp@Zn^mVp^JU(8gA9aFMX#7_}g{?`&*B||FcQ;ALC3Ar@np}-Q zYeq=P!K&|}NeJe>@|$k`9&=tBmjSS2Vr)9T7qIi`gV)YJzt_ebHhjuRc{QM_KltjF zW5i3E-UCW$p0-=HP+#9kR!r!lB#FNv8GuuhF+nqXM^y@{gp$TLG759& zcX~V&Jq1!Xl5Xk1wy4APy5i`&LEX=s3nJwyy`W5CG(QZz3u%3Jo#miv2k&*>#G9ic zKd}UhbT%UP7{FWi%-yW1lEZIL!;C4>dOzZzJS0He)k{4c*@Q$cg;j&3WFZyISHWmR zv*2k#@Py>^C$8aB%~2gw4Jtse>Z;_BuP3m69yQWr!hoYg4R}}ziI6+>N3ZBpY@ki# zU@T4h7fc&=F8~-Pyj_A;-kIFt5K+odnVwOC$4I=R1>>?WPyh-!Zy~S_bf~5V=wWik zZa*xpX^p^|bvOg@?}(KW0f)4{vPEyN?OV}gldnYAKZ{!%z3jK_EbSFgK;4mDR%6r{ zbY>Ln**&u{*3fF`uulYBFnacSs*b`~f4Ii-SkMHYM0cTJZ)CP0hgKB(J>Jnp4en5} zQD2kGwxw6+{R))Wxk5w_J_&on4BXNb9!X_%friOQo_xKxaAM^3dNi#iT%jn?HXHeT zn%j0;PDAKCPY{{gEU~kwhAY zh#gwBt~NkB8?3m}(+jo1A!Vv8ZqwGVk4qx6!xo<{S`)1=kU4TZ$>2x47oMNS`Ti9n zL-G$HyXSVC$3d5#Zron0sR!fNG2r*k{9fM?lhlZTKIZom!G;yu3o^m#{0 zx#7`S)7uo*7BDE22-p{e1#bFw_vIpEsSa)v_daEdDBuAc(m1%pwfk(NOfM7S(eGr5 zNx)A{L<#Lkn&F|xu_;(@sE?z zk>cI=sr++U3~&4&y3R5z%CBqtNOyNL3@tH)gb32ZP?92D3WFduNGKpMbPqLjcS}jP z2q-n62uMpxNteFY|GDoc?ho$=IOfxEa9n%uYprvgzjHHdc#{}#)}?h+yjafU(y!&XJm|&I z9q%KgyZU{-ryuAGdh2w1LWuU{#q$<{1%|H+hIEB(@9U_(mZnlja30q*Kx{kPJ^1GgiNZ9D3OK`rQ+<&D$P6 zE3rG;Dv>PtXD$^9pAyb_cL<1&$P+uD5zUHpb>(hpTzAZF4L*tyJk2jz6avaeCg{dwYe--xtjJm}`W+l%k%g zg^V2MD>*si#^vem5~zHk8MBbv6e67yBAQI!8uQ*n)@?&>=(k^kYl7f1+wonL0MT2y zo?^~YSu(WdRvVutgKW8IMz;!h#vZS!u%-Ts_@QQ}9w5cs5kKzKjXah~yH()&Brq#H z5d^EpWIMwLug^!G`!9nx>6~&T^UG5(KaVCwiGLfj?cNiIvmiR^C;U8wm!A?{*{d%+ zP#-|MqaiyG`?;1#+Zgg|N=q;8@9b3q0rQz;V&WV0+m94 zVgRw!ekydM=fopR1fQ=36{hZI-C3Dpci*0XOX>Rlh;h}FoOUJC0_+kYw06kO-EbO( zj~#ot0>iaEeP|QoYg5*@aQhlC!(BpaiHO)}%1fFuJ%6|Jm!@w005ch*bVju^&|lx| zPrhLT3GWx`S}`Z;d>SbSh`bgML4@rz?0D3am@*bcKwnGCGV*IG*gCrr?h(s8I(?TVn6&ib#l1YJT`nZ zz0-Ph8};;f?818R&9{WrPdn1T?XGndAYHVF^`V`Sdp`f8~#lJ)N(Uj5?9Q2D>KfUt$1>-A*oOY17(}GpOgZ@SP`nWsfNK zY+GISiNNK1xUaaH(*2i@H{{@L2Kw0{d@9tL&?syD$%{k<4S{T}5=kPs+_`2+=%XxZ zI9x8FxVRMXCX=y%v6%cktOzUULs0~>z5JFn>av4m5 zi{T<}3A~}K^gsMc=PmB$Ivsg z7_qtZXyaf%ikSiyOTk=P&-z|vYsMbofxWXYX>wRy@G76K&iYYs5ktaia}3|{d>GB; zNY=z!*B-};quZmH$rr>GH{hNMM}Ly3A3CaVEL9X{fkj!HZXDVD9&1fM5GZSbE^egHlgnDlDaT!C5&pfrs}hK`q@Jz(`O~jhA$>a}eD2W5<8SjGrf`Y3 zi=#nje=DE*BOWAMPeco*&=^qojB46bH!qHdns!-@dfaYd*GmOQxJX@I_vUfGtTjim z!h|uS&_$BYluJg0!P>ap2q;(q2Rw&NDU~JKamp=3i`1MYE)*e~ zu}exT)*c&)rzj=4gR@eJsYbeU;l>FKW`SvhUr@md(G@0FA3&va4FV;ST|qVI^Ae{& zK!*U*Nt#woX)pQq?L>+_8m;>)1-3(L?6cU$C-{h8DrdeU;#b!j)2<+jDvtd=#`6Nl zK-OAqtQI6efdy_x&VB3(&Rv29)wp3G7ZND5x?(QevWJ&@u1Mpv1Ia{l-r}if8Gc&q z2p!ya9Xxaa##c1QKXe9P1J+y-6F;XRgubBQ2>dFSWGmK;aqD?g*+z(pY(=)-*30DX zu)#WQSUT@APjuuLEhpw!ag`eyVM6%TcQ`PBY?On-v{H&cfXtf3uY)JCl2TgIP|fbT zDS+HqOn)P~q+;b1b0*JtrLgf5_GH$%yriL1&r6_rs1sS3VzNo(aU2d1izUr_K=uH= z119XwxK8C4uoVpJTK(CAjg_gU!1+;={-vB%p@_VHS>EI!0NQ0ObD{8m9x+$z1>Hf= zpD*3R&GNZGdDN8BMW6{62DRvP{(1s1OC9`?o|D53UI6p(RL>gU+vdY(J0w>Vw$}z*d8-lqaMfCaBSSuLlMG*e~I42YH|p z2?F3BoHPL3H%-w1Y7Lm@$xJS~``tJ^gH!%Fy1OU-6Y3#npvD-@7NkzyOp-G5;~lTV zc0v=!UaGyPKRfxECM?u(qPc|{o~;uwY%VC}OdI>vO26;9i`)2^(B5_SUR1Zi_Yy+Q z)ch|b@Uu?Nim((D2SmYi5pwM{G2k32l`=3BDkI|IvJ}jl6@Z5vq?49vOjLo(m|E1E$ltjbxQ`r$+9K^kmF@=VjP4)N#p>jY={ z18$9|orFW%aeK9kTN&jnO#d2JBYNttwT z75(e!(>xV}qja9+5kp;fp)j|ALjQA_*w8$>8Z9 zT2D>sbg`MQ08C z^J3G8Hg7GchMoQROO^sxVWBNVvH_gpnl;ttqt2*EXTZ^-{(Mrp=B)^ig>N?$F5a#R z+fr*PMm%}+{K*Fchx7*4SiNU;pyiYU>$YVBqnPW++nY(^XKIUMO--z)Pk2gC;J`*B z?f~u-DUtMsjrpA~1#p!;RcuelsZ$tk8i*WkgJ@^cufPmzV3b*J%uN?82Qo&508co{ zp|M4;kYmDn#)Z{zR=Vz*hDKgrlA+uBu;^dx?>FYAU9EA8OZ3yN-|#8`=LcX3nkx+W z%+;>@PjXIip@E{3mv{S9;m}zIMwp_bacayi#P0x3bFzjV#z-i^i{GDOU>10A^Yso3 zP-6q)ou3~mOl#s|1eExb)e|Q_`RxY?gwGb5cEu)6Rk|W2FPalxmYe{tFZfw^q#Sh( zZeV0S?{;AvEhfc51e|I7+cYZ@FdS*&N|BXT`03c*z?ogd$?9JG_*p66WbkiOu)Hkr z{CcjwX5BA^{~H{Nh%wWy>PVTL^tut0w+jp_=QuFUe`f-_L8WAh* zBicj>{UOtc8Mt7zQ1)HMzAz&0kCtB+g&7qrBxEteZT| zg$g;0{~-tr@W-x#J>@K`kDmxW_`Q+*#QoiJ z?jd#hL6|Dsn7fRq#L!GLOb~~?vcoS1xQM1es+EXCIE$eij6=s&mgWfP62YA!k?9C6 zAv-y5^I2g4EbxN}SIVE)`yaBuR=6Q$$qS18^PJ5;trSu(8HSh6)Mr8JqqwZ{+L3Lz zE_>*Nqcb>NuP31==Y#;O%bA<&@CG>S6pX_3V$hxmyQ@J)aZL>vMeZ zjyi08|r9uqN7EIDD)O7+!UItQ$IP6RCigDm!Jw|zO8A6ujmO}qLhNAsrXllWcM{J z4kA>!8>Pf+JF`uwF)jH|Pu;av0b=CmlNfl7y8>aGHbkI`G|&`m@NNS^rG}eko@b)1 z$e#ol9!VfM{KQV?Al#QAT(A3B=JKYLQ@)>y9| zTK$pzdgx|r@77TbOy}6l^+=%F$!}BNTV|otJk0`iDdc>b4g5H+PEI|npMpxH#LdQl zL>XeZ)RYA?Rfxi{{FD^+`A>aOzOXZ;wSOogr=cbjkRq{J!(IIuAPx@Udf|6lnB)Tp z&&VymQ}Xo9VAC$-x!=F%1veW&hp@lG|9{HI)nfot$q!&&z5iUw*q8rq>VQ$WDAFn9 zmC!}#5f~fWOl*+Jt$u^kQY%&pRi9e4QAZo`+M^f!bLraeT6pD)}Uj`i3dSF%{~_qYKrUQ?m&_< zd6`U8W(>4%G<9QCJ+YTu^s#`mhkf@=sR-~cJf{5BkdGa;<4aju&hgb3>#OQxs_6!? z&k*WwRHjgE5~wZ#UW*Z7yf$t;g7!fBzGyMV?x56lx~0*>*D1)U#}oFqNs2i{h-OSt zw=OCs8n@DmaO-_E+UmHkNCt0d_6NB!GhIp2=9 zCT@)oI)ArQw~lRRd2T0y&KwCH2If9=L^VI$`?O@G^1_F%V*fsMRtCU&QAO>5m8*!5 zo--Zy3Gj=R&Z6xy@oT|@ewn2cg4nIQ5RdLrBLwU$M@#D-&|B~xbA)P;tGDTyZuPX< z<$sZ1yZvf1%D-jLPs4yD0aK1pgUh0D3)>umBcr#SD<8WE8*;Xr!J<9^?VYo6zuBmB zO)StI8b49fWIGvn3rSxpdpPP{IIEPOOlugJy?#89jvE3vuMCbFiJ=M;KahVF1Jcr3eJx-gRgn`;= zOQN~aJW<-%LPQ)t=r4+n96?8ukk3iw@!Tmz-n426Xs1c-L-N1(fT4nKBLs5syb#;J z2N|*C6MbEr8VFB{j8A?`-p|U%#D;|IMhF~4$gW24F!6tK^b#kum&Y=c$MOPUX@Rg_ zieqW;-rqcz)ZDD6#3)Nv6*u|D4k8}ZM!pOwc1lZ&>eorwqIREpLrJ8IvIDy%UX z@^=q){z)4CLGdB0cdg+g9V(AiRd1?tDBR9J=!*s`du1I}v%pYg7K#M6Yb`n1DR%kd zPlr%3LYt>}-H)pa=$P%n`No6arUk{J)uRjFu}e^L!d4n1FI}(AvhoAb<$<*4K@rW( zY$bN>bIaL$%W9Uin9=-*-5E*mhKJOMrDUVP`V{io=Xk$g+X$P}VyfD(0sHAhQuTRq z{nuZ4+S)XdleWiCiC`4hMbZBXk6|ANvSxs5(}BtVzcXC^ON(PmZDt#4LNw(0^+cWz z1|0E1q3IxlG39G~DyTrBHob#WEum1DO#d^Odew9f=pL&QzZS?$6NiCaPlHl7f=XA7 z5~faBh$|K4#?@PrGVbGE57Rq2699cEkjTgZE^c?D7 zRzegmJ@tKe=BlUK`Hi#mz7h+lx7rut$UfnWek>w_Y_FTFxNI&Ojfc0d6nxt2|U+!QSHceqDh-ElRVAxM$9zEFf zo}EDRkQ8v#?#c3>X+1G(PmCVFfNs$SAJ7cPAT3#~P}47oaKEC~x+0#g6V~xinrU&q z&!pD0&(x?Ow|^9Kxmn5C&>Vhwj!)fT4qaMO+8q~}_H$5{(;(VOI3WJ2uta0vzju;Q zfAW(L-5|oYG(AlWg9GuyHHTv3%6* zeLGn-0JqC@@UhYzBj3~b_5LgIc0_~q69&wTxIW-{*J2WW#qgx^;oI*n1>-7<6Iu?a zF9wel3C%?6)j^pXl3YVgf@(Fv_*|(srckYyfS7?z+4monH4Z)Izrz&tB8I6jRyyMI z!uboxr;DY-#VO}tBRjc_x(O&QF$zscEWoB5iIhwtJJfr!3DwmgQT2qVhRsBCW|j;- z$EEU*-$oMJJl%J2Zm6+Y>SXZiAF4_di>|NA)(7389|2 zk8~~T!4=$uKMM(KK2n;+5fkYkpVEYUa<*XYasT6?2Ha$$$Zx6hK3P@j4D85#l=SN} zaur5^cc4wEiyEom{FUOVi*Lg%3oKdM6FY&GcM5C40-Fp(&Zy}b0oQ_JL_dXnKZ$)m zj@LBF%TWUJ`Gk^uvds^A#_LMrW}0wJr`RXkaB2XCO_gj-cc`8V;$dPl(*kws4hzO_ zn<-N!Rr8+w_^hcaJss(~L2O`F-xxfzFI)_ev|j0RYOmcGsxA%*ziO%nDK8Ffmc5y~ z`%P0F^p@aj{nMEY-~&U|n~o0`XJvEO8zK)5Fpt9*=KgH3FLn6e>yiH>GTt<^oG{Wn64a$s~G_lfq;N;NmF%k(w4`cX27td zZuo<|c_a#@-TCPO%12I}0stqQxNfEZjlILJvz)ZvYv~zgNXEBoLB#KXQG= zUl+PH>0kS}?Iz@(k@q)BQ}fw;U45ZK^Uo(|Z0|=yRh!IU|7JhSNd99KoG}ho4|sFA z4>(L^$QZX7`ZL`5I*-8eN4!55DJYT{W`P?TQdYkB$i)C5vsir&lm!mZNc&7fya-g9 ziJ%-5Dx?VyX-}nNs^LwG1Bq;cD~hnGr|oj1IZ>qC*`y#8IVj~fDCHQ0KITj;T?oWA zRN$)CjHUsXgzj)+!xgbJII+RGn!1K{-s+m<$+5g|pY3LpeiID%Y72W!@;!}V=Bh2x zQ?g8sbSk+926KdJZ#@@_y6B9gDA61=1U)EtyffEn#Jf`jbuO{~aM@{KSpcrmRL2}g z6BDt~q0%;|gmN|9KUnO>M?;$&sD<@_F}CTBSqiCGI({ zv2P;soJdwj03O9dg$&EpyHt~#NBt(^a@D)G(YvzM^jkHHi)5yF6WyY;P^5H2+a`$H z4Ar8cg4E}y7yF6e|8+K^EKWJ~$Nm_J^QW0#`6Yy_#J-BSFx2-^N#xEMt=-Ib;Doh% zNjI`D^^X9w^h5Q0oZi!?wV}P0+q9!K=Io}m!Q(Ia1I6x`oQVTlfVlk?7)WsubkbIi znY+CtKe)RlS^RTrzj(Dqv-o${@K@k#J#d!90t+bP?)u8`^6J>fy}E^1H0MzqN6!iU zpWmtJ#{=osgUhUUbXM0#IIOZ~3QO`ntlmF_3qPtv?$q2D&tfW;mVoNp`3pxe68T(f zH%gl30|*d6Gil#UgY!~H>0lq;7$|+Hn0Q1NlI*`kW28?LBC7PhP3CfYfS=SzP_${| zc@yn)*v<3eCT!!qjh?MS=ZL`Xlmc%Zc}@d(*V=rEqKr`(;t}9ibiN4HR297Vn*p?L z%0lU`6Kc3+fHz}j_V8#;iFU&~gSMHTdfL2 z4R!MwK@Xxg+#is?`NVB72WAo2sREbAP;0^9K(vGrBcwft zoI8yOg!;{$S>Sp_IeJYsf={J=O*uB*@;r`^rv;uBh&%m?tL_dS)ZHovHdyR4t`sEf zO(*KlIf_#CM1$)ScWfK1NB>kAU@}a*Z=QugVM5AsP0S49Xe$ls++u`ex*Ax^n+&#( z%kwtOhTgMHW-g2IQil{vBWmRXql@VKBxPXHL0`fsV!rX7RIDUF#t0w73MHAn){(bZ0{sk-bv8Vdb5w;FNk#G+1JuM6I)b{CLpeGoljr! zX9d>Lo(J;5T0Qs?qmQu7j4XlI$G8;}>?yL!Kq!|8K4~m>ONOcocig23eN@eTl)0>f zn;YkwH#8YPysM{sLw#E71KkL+E_~E>Gd|p1-QB*`bN~A-Z>7jhA#CKZH%C-aJ#+f2 z`JS?N(0P_@=Vt;A_q_(x;t@Mw=K~X%9DQ4(`0+Rr6vZvWy2R2m@He;EUtY^@KJ3X?oS^x#$OUbz0t?E%SxUPOqQTc|A%nWq zQ{L2F0Ot7t2-8q?FBnzfEja-qMRW|!G9ARcxix5QJJruvM&$};60{EmtRDikTOy{- z7p^G66Y`BF(siie&oT3~k5{D2=)J#C-Ll_L0`SPt8aZPSVnk#b+2^KT z$#{ZG*y@XO>Yr!VJN~Gz^SAxtZ#yydQd5jzwaB{`Z{^DsZf-2ck_%QY0_zX!Y-D1# z$w3Eyu%3bZrcw$LArdn9g7^=D@+*>Nwn#^;R!)rOD|bDOx`RaYhB~nT^$ZIHES(H> zElHZ!=IY2%i=TTobiGgJviNNHI)}_<-_`a;Aqq}C_Hgd*l>AlDYX%>M<$+=A0OXDJ z;s9UI6>UpCjd|W;pT_dr;F^RBT%Ybs+Pt6}vV*th5b=&IP+Zp1kBZYyp;LC-NW zvvRoX&l2=!jpR~v;!(uk9k;*uif?!P$SWdXec*rO<@wWdh@$L_9wlOBiam6^v*2Ef1L?U4lah>{rIk5f5eo zi8C54LhkRIhz5!;oZ_Z@{(Oqfj;NiJ#=Xn+BKo(-XRSB6_Wyue>cRgPs^J1)ZPH#U zNPqHs&dvi>_t|)x`EcmhDCm5c@7FM!`N-2Wk`Xe3wJQ2S6W2)B54Pl=?cHl>x+Gld z!_Ok!!YDuaB3I503MDiRw3F;}RdL7pdETeq9552CccSTMX_Bz1P#tYzpbRWKSw-?G7+e2Rn2)IL3KRlw31>Zn`K8zy5-=e!DAw3u9Bp|0xKz&Bgwdj zatHjveviuG^*VH4mCE#_z^jxdR4Wwi@!4jokudaW!sTnysQr{_Ot#@hBP*va6K&FT zQgkf!`y7L0qno5SP*>K_rpBJ>YvEpcal5lX{Hix8nbS?oa#r^~gwUh+ zN$O?jZQgHF#>%abiGXM^+$d9Z`IqY8t`K);Jo3M!A00Doz4SmS9-J+7$_VavlbIa0 znQp#R7GB)-tLjbzaT{qAZ4bGsm&ok*i*TuZijHdiRxMBZ(#bf{XHn}}T{Ie=50TrY z6n(~gw@iE?&+1Su6PJ{qQSv3xsaUs&Zm|3|%f9koCsAI+I`AoMsw-9igPR$#XLGc( z5-GynvZHpOOIoo{D82x3cwqnO)yMkooR1%06Sp3|TKRM5`u6t@+hSL1Sj|J0Io^X; zc8+c&9DqKZ7jROs@@MPf_&e|(ig8o;XOEF)aqO?GyY=*rZ(TIp?F78N&8n;K_F>2i zJV}MZ9DSrAjuuJ|_Be+>I^%l+@1$7U+=&zwU$g$*I}u%}vwlMsbX;XkBzxD`y4*XI zhM!&C87(pU?a6lo!^CNDktQI(cVzNI=g)qSqV|B3I`H*#&MC?e0Yzm24!btawLQf6 zlS;V|n|P4}e#6x zhp#j%_lqqn2@6V;Ux&(-Yr1tO&&LR-U+NZ{xI!Ibop!G%g>lNLEG4*8UUQ+2={67!vwU(Dp-j@ervuxJZc2Nm zH2$0Ild_oj?l5-A1j)k66W+>>N=TC!F@bUB?ZH;>F_91;V; zaBi}36NYb5>fG;JW!K>Bj6{5m(;kmd9gRVVyhD79L5#*g2g6H-^pTy8Fg0Tr!q?#mqGj;~&OmVI?n8PM7CND&H zgN4*X(*<$R{$Yvay;?alU;{Ocw}0&JeMt`F8cbDE*?Fkd6PQl|1?;)jr_GoPSP*|Pf^gLVis-{M7z_G3kWtM3hL&qtMei_DhunF}HD^XRociaA!*@&{ z2oO3#<%TJB`KWYxD0!)JqPer9xw4}LbB^J=@#!eDHcLuOp`sbtENLnX{j* z@wnL>%Cyh+Xp8L-j5LWgl)`!rOYbp-o(Gs&2A$G+14^@prGQ|0E|DZD8$E^iO(c!@0TSZm{?$fV+_stND=mYg(Cla%Ws>uib zGy(1E2%Xs?ulG~|?YgGQyvVO1k+s9f$TH^CBSB+#rVLa6n;VviPf^$dm@^zDDsUpdT=Pdsyx2xTcM*i(n#F#NNH3|bJ>G! zUogi1WRgiM6O)*XO*%K9jBBy+{BV!{1h={r?(6E0PA?Uk{ucW+Txff*LiO-5kGi9o zSk>WBh%MvTM*;MG2~&u!ou41I(3qjS3~9aTnOGK?sg+gl@89yVrFdxV7%}rr8%Z5I z&2M4H1+e?u3-vZG!>4vEAX^D)Dj}3UpSUK2T_6qhJqhhG8p4||gje?o@mZl@>`ygn zR9Z*Y)Pu-*Q-Tz2-yK#4Mv?bbu{OiB*ywh)AT=1s-XsP+c z_wVkrri4>aThe1*hVWrGsz*B{X?~=77fNoq9}8WvC1L^?^A3;$UGG$<1w=$X>mh7k zmjmU@ESlqR@Yac8lkWzisEFNVi*2~hW}5k{f6-Th-n$01REcuZ9iORg=9;TfFVYCnGg2Y3!JU3|?BPN|>lltIKrK9I5jbw6>@? zx&%Lxyr<#7zAD9s{fwe;hjMKOCr>{xhjId!QV%~dANL}Y;boSR2Nh2T>_gJCGHY36 zq6H5?N&F>Tlbi@oGK&MH#&D*_apo9)ntUrPlBVZYnrNX#3-%V*06mO%kc(F3MLNa% zZ#{}E!GV?zL>hWN+)9Qom_#68 ze}+bnA(1w!W;at$BNf*VMs)_xhf^9?mK8WNi_XqFgcP=fi`YcTrMZwERHM@9ae_A2 z+<)4+zbJGsE{e{k$4Mz&eWnAPJ>e0!Xa4j{XRMtwf3*$#g~M0;wMi|u&3Tw|=$kne z^yyF`dH7E(zVtQ1Ld=sE5!Ui8>JBT*pF#CWO70S2M<)1F`=o_g0;;V}oKsDV+9~Y| z+R&exmUjABZHpb3Bel)us-pIThmq~XJ&b=A9;$c{^3Wkz@!*|=QwX13gpdP6 zD6e3spdf!UHn>vYc{S;rdMHRR^i(ZHcOykS(bh8uX$&Prpv_`>SEc)GvNR<3l{lS| zm{wftPqEKWB-2cISBcOo#LNwLd203-Qbs-&kG+EM1X(8RExv^&Rj_})AK%OJo-^|| zh|y<&uD+M95^iv2{(F1&t_UIDlM4zRM*FLQS9B)j>+klrUI`@CLM06ZM3uU zo-g+StOzgA_qg;!?g+JG*&%c5A5xK9QCA8 z{v)9J){C&sk;-!%wDy&ISE6rEtk-s?&&{0Lw;n<36Vnqz;+;i-iB z!Y*XaC~my+rBjz56WP;=g0ru5O~zIlZYomhW-MagzJ=`^Jc#v?v@fjE6k9TmSUndc z^_Yv_^ibh!|+V6&mr)Vy8cmzyB4_bYE*Si$TmWTV>)irJ19~ zlZR68uA}Z5UHIfbFJ@o?y7sSpK7e|`KJDYPsyhU<7Q=H_8|(^K`{|}#jbS-@3LnEh z;@_TC)d9neGLOyDb z34L9jKf{Y}#Ea}SU#0CCbGNBNU)RntG`QsUO^?dFcyS}vDuY}0hA6y5pY&YX=2akN zqePb}dVA=zYC__)MA6-(PQv3dme5zuSQ6Z9lRB^MUYFt-(xfsnw~_xa;LcpoD-7BY zyv7%?_x;6tjqld$!W2FtA6ruLijmY3JvD3pc9)kvJu4sc&CceQI{ZbgoskdQ{#}_E zB#7k2(}%I~_@;Nlj8m46?I+%#A>IQF&%za*!?~T`2^5D)+aezpYxw`b%W@-a|M?2A!q zz1a5;WKAtj#5y)tk7{~pJR)D+QkL`z80*ZkjBqaMb7XTdZx}O88r^mk66f8DD)95@ zGR(b2+!NUeRa6VDx~7EPtZ3b=j9jhIKiX5eYy{VGAN{mDGC;}Egh(@lzmX!{a;6+_ z7L#XzeE3%6UN^L2o-oi#6&fUg--Avr*X?a(jtCMC?iJ*zwLhx;xbiHHWLwtyfe3E1 zPbw~uIRf*qb6goMS+)Ao+nA~3E)}!!kr}o3@{{XNNL_4u z%0=x>8q97VW#fN?g8z{Ly9$7U4?kcBA@Il#<$;R}37^b=byF8}P>ICV|3q50OsMxM z_VMTVCyV!_e^8)TD9ot}Y3=&Mo-9T|N4bmL_;+Y<7zDksW<>WRxPOHU>4qMLskVzf zF67f1Q3b_r$eoSjQ;j_-6psZPGdhG^o%yZkeV~NOP(?1Rl4sbIWk#b(x+8JA6WMkw z7*{`#?9_-U%Sy{bgnk9WqOKE1!zuOrsCcgE8e;BBmDs+#3Qfc;mE**}V~WqGIzZFK z*AvB;$UxoRD|p|$?$Z7Nr~lnB^7CWGE2q>r?ykFF?8wV5#1cNO?IVwqayAZ=%j;F4jynPMH`}U!r5IS#QRbX5qeWae^!*0?aLV zaT5=n_R&^cyUziQ41C3?)i_|9&D6hPL-0bq9r9=~u3#KL_EfT{s)&6*=WKibRsYdr zmhc<1LC^Jo8Z@KRfNBs6FM%0Es`%5^(9WyRan1J5x#_Xh8ZO5vZitF^-Wb_qkMzjriXz$^RJ(9rsamz?g z&nwm{d9TZZn0^n;dLVG0@lAsZTmR@Nr@R7Nb&G(Eh1SuBwAB+dC6Vmv#lp(jf^CaP z|IV}U**4O~u}GdOcCS(%ZDxkaX0fQvFb^d)HzB#Q2#>!DqV-qDY`+5T@Br5)Zr<&= z^ie75!`*j2)1DxLog6Z*(z@o>)w09DcN{%u?6nujKG$i{XV`Ukmcz2v| zyxzLhZ_O6K2L$cao;{rwSQ&G8e?jj(Z6wv z6<+!f(kdQ#obe!5_kq1{Cwu#lt_-$6`UgqBzqC_ZV6I(ThTiIcy={8$lv+c-%tuG9Sfy7Ri%q7=n9A3n4h2 zNj$#&n4@d;RWj}V{k-sjhoN+P{Pfx?Xw&V1&gabW^>j+irxGq<(sp4ON8}KMBIf12 zzG9lGYJ$~RlD-s`6}`EYxQtb@tW}~KPDaT3!LTG@8Aot6*+Dj0S`%JNHqLk~&d15< z%VwnLUNGNYu-h!bL?%#3vmJOptgfKDe_du1!?FT3qnalMwbQ7$2=U@Om-Oij?2Tf* zzXyqQp$)909ZgE)U1d|_ROz~GdaHa33LVd(%cJUMCCkaYT^^ENR`C5V z9N|jgKlwjah-*_^??DD~N{+P33)^HtaxoWg?w5r7hZigE6TLg;@5VZ?5`u^xY*nKP z`gt#L)RCYUNKI1>m%@|u4KW_hJBaix(QaJ{yE%{MwwAxz#Cz!-Isp}pPh9x><_l5W zX)WAolH5rxpj7XeGdyK_nNBTtg7k(p^v4-Hj?a?i`A;dbhOvAmiOZHrvmEirFNoy> zC0Os#xCC-raK%tgoMu0?QR39bUI?+7!*`n_)lTl`F7UT_)fGaM%BTNu{++HR!@Oe$q?}`5dsI?Ajc@Y7R20z( zEq#~&HmltI4_gHn!hNbyE`O=%<>eSdwa`A=w&M@ND}LT1{oG_@^esL(idTELor>6e zrQr+rhH3biJVB2mRo*WicSlUzz7z}TnB_K0S6If7i0OV~edY^Wv)tg3{7@z7sGn_` zrl%6_W(*Li?=i>6ue5c}3Yu$(8ARAM47GUVI;SW!b? zljH5QU#{-sC@eP*w~DB(^+zCP3tKzbaV(n|cWX4Rv}-=wEsDkTT?ruecqio~LUtRhEDl^hmW=z8is-BtEeA&Zm^iR^ zbz}I0V9m-4h&`HT4rwDjczcHTzT@HC)v4hOImOyflJukWy3Sz7_`LqJKenu0?sP%t zpGhvQ1Fya0gMQQI%6d=-{Q+vYKCd3tyC)R9!uawRoB9^r-gr~0SoC}1)#ThERHA7* zB<}68%K3FNr(*3-ZJO@)yJSc7wMUNa(``Rv2INpLe74dp-h!;W!NNdt5`Q-OG{oBZ z=YHB3XN`;*>;p#|V%NO*VhYl+1yQ<;)e;~9`G(1u-FRZ7mZvu3a`(DkGM^{1^Dcv! z+p8uOX7Dx8B3RF;U^2EIdqY0syBVRgQeid@_kxckO}@oKHxW*|j}j_tW6F2CqW=t$ zla8Mic;qvk4b(VgxB&A8miFNeF^KfL#ZnG`48MPP))bI5`L)}u>1?*JcAdU`cwWpg zqc7W)T!qBmiP=TP)rV%+-~0(?HY79m!OVG6etQR19FD6K+x}w}H*V$|<{?p9^(}(> zCh>cXuK3+6tny2?+Ip56LuXH)So%=&E-;$7a8C-K+xQod&@|>SX6+AtvPidaZ=u=8 znJs_S7TcZV{~;je2%moSd}6?cUCHa46e7XM*0X>Ob1kBMzsYudCPLqm#HChqj&&WK zclcQ2;(2zvCvAYCcl{tkn3L6!u972L=!gVGj3brT7&q{p@1nyo<$x_tKY)NfTLmrd zV?QEAT;xX0dm&kh*mpYofSjMdn0gXK>gwt!rZA6{;6t?I@`Usq)2M#BH*W6R|Hsx_ zM#UL6%c2QEf(LgA8iMQK1P{U826r3WEw~So;DZy~2N~QUI0SbKt`poZ-@a#`yU$(c z@ALCr@2alu>aIEi{A%-$dIM3#CUkJEdD!E~w;NorM>($YmNMnrx4fU63P697j3Xv> z7@YjdXt^g-%M#Gc5tg3*@zR6W)Vu~=rk7kx!Ih(8)O3g=r2m)AJ|TnCYxH2me{W&_ zk4)Cr)7DqAw>TAlm#n2D62c*HZ*mbEGn1EGMvL%Mh9YED0JX`JQ0ayRNJ#-X^?qGk z2(my7W`3_`<+AWIbtXC&9GSE4`{7#)j)KpJZ|aV$m{R-F)H|=g9bY`9kf$lkpAjL| z6+=c|C?)PBa)59HerVjFjH(K9Jv6RUGFjt@Me2ReGA^(Hly|zv(U8ey?e zp-ff#>Ih?AMdMiHEb?mU!AVxP*clW1D(sd!6PD3<6K40fSt6BLy`Zv`qZ0d; z@TKd_lB2e;rEz`h{g$v@@HaPi?L25PTIEx+HA$J&#Rh9V#+t;#mtPCjyWN@AMcyx% z3ge!}rnM+%hJHwlN8s%{XlGAtIQQ-BowlloTEsvpg9g^B)RhYTt7tLBH5Y7`H9sY^ z2F|P1x_qTP1CwzCuIv?!qF#OlH7zonb(3M-?p99FZ3aSn!BN%Mwd1t?s%(AI?$MqE zexjCv)=A;1xR%m@83oLI+d3+O0t5bagLu~yUf7IY$c7JYj^6|QX#kvai%ge)>nDd| zH(?BQM>~C)NYZj9>}3p4vVYpGye1S*)qY1AaDVFD=FxyqZP)^SnV87#jyDWMe}SI` z1RGI`1-;xA2gY{_{=+rwbRsQguHH7T8H*n}+5@(Y1|NVo{Kv>Mt!4Wjn&!oUUX6$B( zu?@u|&Y~2baKiQ(K$#Sr1m9=N@L<;GmX(vHW>n|pUoccP7~&kf+y{}q_7u4mC2yag ztJYKw{pVXB$b&3kAq@PI45K8B#{by5j;Er~r7Y(mCDSBn)-oef%xu>hoBvcWtFW}T zeXIxwAwIE3jFX(RaVbMeJlG9+rPXiO(lA+9d94o|r0k5)^$yyOZN3HYKwdpI#O9*j@=FNm~rFH^RB^5K4~bS7g$}6Oz9@%xt=jIE+dotkwu(+ zEc>F8O1v;_TNEU+E-5>YTJLW3#mo~)kYSm#RyevbNTwcZ@+fnXcP_j!kI*f?p}@O_ z60?1F3rID4WxOaF(jBE$f2CbuR!HeU+pterI(V+p3e%}G%?TfALQJ*75nZQQTCU2g zyTx;HI@ zR7zVL&&PLZYI!w0FNjS+@zTVn4BKqGJuREE?^a6ebamP6f9Vo${tsPZJJRMy0lJJ8 z5k{j2i>{D~2X^;g^58|zHxX8dSo0r_!5{e{v`)SZn^$9zXh^A6gdld*LjisRL0G%% zIZEmWFey&dbeFA1-ygORi{|0{Dr;kc}kp5+WXjj~+ehHb4MDJJh`&|@Hv*|q9`G}6Yx0h^K#=rT) zIWG_yM)A@b6wIcodXpTG8RmsCQcz=A-SRt*xDEx`b2}bz4_m8pOZQ0c2M#$oXQTR? zKc-!pnHqPd53#vn&E>hnNGsnpP4YRRD?VvjlaxqW1&S0|qHuBpg1a}B+_39&8_Kc9 zC>lztD!(Y6U?xU)xIK}N8wkbW5yfwZ#8ADS`Y^TmZyG=<1>)6{skRobu$>O)++Jrmhk&*vXX<2@TE1o5{i6cc(YSZ*bIGgeR-gLOu zAK_qiZgQd9=6^xARwfvvf6}C~t{Ijxg&a%b!|8ZD7~M<-diZqAMzL1KA5{PVZ}-QX zZF-&1^MKur%}w4HK%e&0_rG`NhcFw9F!(mFGGe@nn-R{MR(gi6Ng+pNy>~_W z)|vZ~wt$G%*HwJ&mrlnIdWv1i(Ov1$J*4r}jZjQw22_2z*vnOs%fnRo1zz!aul8CG zc6>)r>bTJ>l8S&|;EvB&osS!I&pCnc)LXc|<96WV)cTg#^Q|Mimnf&ZHag}uCgsKT9D(CFVp5IpEE%DRpoCRo-kok24N|1wiWwoX?Y`b%gb%+ zGe-#nSrI{G!70F6NZFk2if!e<*qkk}tTTK>5#SWY2IevBpWQuz&3R$YlU8r|O!KZ- zmwu5xQe3fajw)-k)o9cxC@n^!cskjqw3S`{!nouk#39NX3NQ7TafkGe&EfGIUGRBf(y7JyaNSkJme!@owYAV|FhhMkAitoMAkG2Pdf!@#+W=$V zR>D^q-REI>N@yl5I|z$&{l8%p@qfaoBfKcKi=*mXZx0Q(Cj=?K`|bBiWc#) z2#4T(js0oxh|v4gVj_?uyPs%_$onQMM9@0oN{1Z3$jpP#+f+|vk9nRIQ3`}jdZ}%h zK3q#FJi?E;)4JFmAjaB8lAhBn;zrM&+uH)3fQKUozlT}D=bQD4?fINvPQJ?#v#}I* zOhSKD@fx*7Zf}(ka@IzSU$dOPTj7+3B6WYK^q6PCC_-f+9t{0U&vGjL%cDzi_FYU3 zincMj8t)*Q0$s_IOa&}8G_4Uuk>jC6Xz5M68D$J#me<-bphqg+H`Vx(#Q2;f6vn`L za!vADNoj0_m1c6f55iqbNMEaUAZvz9#+1l%2bjuVu+n!(tO8_{*;zU_Q54UZ9XF9 zS#Rb_D?jgs;l4;ubzMDZx7)TJQ`1aiJ}xg^=~A&iH?ZYh`*hYmv9n~M7ma5smyvJT|LdKEPEV^BKgyFIt-9TnuWmtKQHCOlV%Jzz^>bT9j-9c4ug4@vM`)uUbo&{C z6RsZXDap>dHxct_1qSg*+bo1~9)g!T9;7O(>)-F;9`*6=rluf7GkLT9Y0P}9eC!|L zB(bDLlY(<`DM20>V_0T>&KMMUA|?B!y^ATCuu0W8bP7$_jBXrs4B*tziVS!ldyOU| zB@k&SA+r@f>)|*I&s5>oh|lgfRL~FSC_C%^>5Ts)9A`hv_1o||Ux@b+#z1O#?eSEB z;(Wx>6J`mCjX27$<-yh|u0PcrUxy?-A$WQqkj z8~B4;sz_(tG&U{u!@fEjox#BJW2sKf2Q*a;z@FsB7}$!>+j+tLd|9N=EoDwnDDsv6 zn00QzIb5_J%QLs73DrHM(wgj~r``gYi0lAihyda!5*O1x@05Q+^I7)Dsd5|n5G7MZ zXfpaRn{eiuui#fF#h4_;ojYGaX(tlvyGm;k8okipAhM$`+h6dO!j~s`|HNhIDaB5J zO`US~91m*CX#6$x1+N zq4z0A)`zgL>ul2co4NdC+?~}~>%$gs(Kxg9QETwrDb)HzIA~z^wZh+$+8%;)i{P3X zydAN_yV@$Na7sbOsyyF(LOk@R5_XOvmjHKX9sh(Ua^-=+)=vsoE%#ji!QPX3| z*1EWQaJc#S9v6T&W}e)!3Nzsv3$YD_@2-*i3}RPPMf7wmvFaw=WnMHmJts&1ZF2uIXEo+enRgp=S(cAjO%D?Pr{cpP5pHr$%tvWOvnj<8l`{ry-!H zLF0_g^C+J1F!xEy!a>d0)8V3{i-Q~v6x|zYfO|KGeR4YqNk`U<`@>1Th3_3xT9;s+ zJhKwYf*28Ns!Ev$9bV*JeNLYBXgM=>nG_*aZZ8V|i!5u>5?OU^T2jHIsYzYtK1)00 zclR=SoXs5H4;$^Q4_oOECG})KPYF#&g5jj~aq}B~y%GGYPRN6{%Gj!;&H5b4_B%iYCg*pVIdQ)D@=Wg`+REH_ zIZkxryf>npu(}*1LK()3BW~?aF?Hg=5>D%NB14}o;EyWHw%!xye`4^spS67pB{Ccc z^xm|1e9h`UH!>6qez}C^Z1+zWpZ|$^{YFpP=l6Fv@JE#D?Y=8?9q057%;s9t?1*mu z2!isrTGdFF<&;p@?KGq8etb+BtL(v86SRvt@7RfWQ+t#5wD+7CqnIXcAdKycAH)zc zyo3G5T9BLab%Cetn^gU>^XoBJucmuk@T@^UybK+-;)ge{@3bnI`Ib4A9}$ACRwN7pF-d*O zCs)*C8lPqAujjV4mNEUjF8GyRxxwwbf&;bAE0ext~PHJ2NZOX?oNTXIw_bJE4igQ1a^y&8W_1MK(�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

W96+` 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%0A?$-If;HYGC%^okXbw_;GweoeT% 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 z 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


+Q|?_@CJb+T1-tqQ~NrIpK2n7Nz(IzA8>| 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

Q60qfS_!^`yB;1 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 aHyH1TnEB$`x&fAX(YUR6jL2mL=7o0;PP literal 0 HcmV?d00001 diff --git a/resources/super_resolution_exp.png b/resources/super_resolution_exp.png new file mode 100644 index 0000000000000000000000000000000000000000..3635593c1f3f03ec3a5ae8d0479f3929b6046e63 GIT binary patch literal 370266 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
@@ -174,6 +175,14 @@ private record FileSignature( // Video new("66747970", FileType.FVideo, [".mp4"], MustStartWith: false), // ftyp 在偏移 4 new("1A45DFA3", FileType.FVideo, [".webm"], MustStartWith: true), // EBML + + // Archive (FWebZip) + new("504B0304", FileType.FWebZip, [".zip"], MustStartWith: true), // ZIP local file header + new("504B0506", FileType.FWebZip, [".zip"], MustStartWith: true), // ZIP empty archive (end of central directory) + new("504B0708", FileType.FWebZip, [".zip"], MustStartWith: true), // ZIP spanned archive + new("526172211A07", FileType.FWebZip, [".rar"], MustStartWith: true), // RAR4 (Rar!\x1a\x07) + new("526172211A070100", FileType.FWebZip, [".rar"], MustStartWith: true), // RAR5 + new("377ABCAF271C", FileType.FWebZip, [".7z"], MustStartWith: true), // 7z (7z\xbc\xaf\x27\x1c) ]; /// diff --git a/src/VirtualPaper.Grpc.Service/Protos/common_models.proto b/src/VirtualPaper.Grpc.Service/Protos/common_models.proto index 62d57c8c..cdf62f7c 100644 --- a/src/VirtualPaper.Grpc.Service/Protos/common_models.proto +++ b/src/VirtualPaper.Grpc.Service/Protos/common_models.proto @@ -390,6 +390,7 @@ enum Grpc_FileType { f_picture = 1; f_gif = 2; f_video = 3; + f_web_zip = 4; } enum Grpc_RuntimeType { @@ -397,6 +398,7 @@ enum Grpc_RuntimeType { r_image = 1; r_image3d = 2; r_video = 3; + r_web = 4; } enum Grpc_ScreensaverState { diff --git a/src/VirtualPaper.Models/Cores/Interfaces/IWpPlayerData.cs b/src/VirtualPaper.Models/Cores/Interfaces/IWpPlayerData.cs index 82485fc9..69648696 100644 --- a/src/VirtualPaper.Models/Cores/Interfaces/IWpPlayerData.cs +++ b/src/VirtualPaper.Models/Cores/Interfaces/IWpPlayerData.cs @@ -1,4 +1,4 @@ -using VirtualPaper.Common; +using VirtualPaper.Common; namespace VirtualPaper.Models.Cores.Interfaces { public interface IWpPlayerData { @@ -6,7 +6,7 @@ public interface IWpPlayerData { RuntimeType RType { get; set; } WallpaperArrangement Arrangement { get; set; } string FilePath { get; set; } - string DepthFilePath { get; set; } + string? DepthFilePath { get; set; } string FolderPath { get; set; } string ThumbnailPath { get; set; } string WpEffectFilePathTemplate { get; set; } diff --git a/src/VirtualPaper.Models/Cores/WpBasicData.cs b/src/VirtualPaper.Models/Cores/WpBasicData.cs index bf5c257b..bf0c0fef 100644 --- a/src/VirtualPaper.Models/Cores/WpBasicData.cs +++ b/src/VirtualPaper.Models/Cores/WpBasicData.cs @@ -30,11 +30,12 @@ public string Title { public FileType FType { get => _fType; set { - _fType = value; + _fType = Enum.IsDefined(value) ? value : FileType.FUnknown; this.IsSingleRType = - value switch { + _fType switch { FileType.FImage or FileType.FGif => false, FileType.FVideo => true, + FileType.FWebZip => true, _ => false, }; } diff --git a/src/VirtualPaper.Models/Cores/WpPlayerData.cs b/src/VirtualPaper.Models/Cores/WpPlayerData.cs index 3dfd1021..d389cab1 100644 --- a/src/VirtualPaper.Models/Cores/WpPlayerData.cs +++ b/src/VirtualPaper.Models/Cores/WpPlayerData.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; using VirtualPaper.Common; using VirtualPaper.Common.Utils.Storage; using VirtualPaper.Models.Cores.Interfaces; @@ -9,7 +9,7 @@ public class WpPlayerData : IWpPlayerData { public RuntimeType RType { get; set; } = RuntimeType.RUnknown; public WallpaperArrangement Arrangement { get; set; } public string FilePath { get; set; } = string.Empty; - public string DepthFilePath { get; set; } = string.Empty; + public string? DepthFilePath { get; set; } = string.Empty; public string FolderPath { get; set; } = string.Empty; public string ThumbnailPath { get; set; } = string.Empty; public string WpEffectFilePathTemplate { get; set; } = string.Empty; diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/default.html b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/default.html index 994018c0..825536cd 100644 --- a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/default.html +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/default.html @@ -47,6 +47,13 @@ object-fit: fill; } + /* RWeb iframe 专用:允许鼠标事件穿透,移除不适用的 object-fit */ + .rweb-frame { + object-fit: unset; + pointer-events: auto; + border: none; + } + /* 淡入效果 */ .fade-in { opacity: 0; diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js index eebf7b50..223e920b 100644 --- a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js @@ -31,6 +31,15 @@ function resourceLoad(wallpaperType, filePath) { `; break; + case 'RWeb': + newElement = ` +
+ +
`; + break; default: return; } diff --git a/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageOnlyDataConfig.xaml.cs b/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageOnlyDataConfig.xaml.cs index 227a0079..ec6604e7 100644 --- a/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageOnlyDataConfig.xaml.cs +++ b/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageOnlyDataConfig.xaml.cs @@ -1,5 +1,4 @@ using System; -using VirtualPaper.Common.Runtime.PlayerWeb; using VirtualPaper.UIComponent.Templates; using VirtualPaper.UIComponent.Utils; diff --git a/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml b/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml index f0645360..ed5ddab6 100644 --- a/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml +++ b/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml @@ -23,7 +23,6 @@ NavigationCompleted="Webview2_NavigationCompleted"/> PlayingFileWeb.PlayerWeb, "RImage3D" => PlayingFileWeb.PlayerWeb3D, "RVideo" => PlayingFileWeb.PlayerWeb, + "RWeb" => PlayingFileWeb.PlayerWeb, // RWeb 同样用 default.html 作为宿主页 _ => throw new ArgumentException(nameof(_startArgs.RuntimeType)), }; } diff --git a/src/VirtualPaper.PlayerWeb/Form1.cs b/src/VirtualPaper.PlayerWeb/Form1.cs index d4256a49..9cf23ffa 100644 --- a/src/VirtualPaper.PlayerWeb/Form1.cs +++ b/src/VirtualPaper.PlayerWeb/Form1.cs @@ -182,6 +182,19 @@ string GetWallpaperVirtualPath(string? filePath) { return $"https://{CoreWebView2Extensions.WallpaperHost}/{Path.GetFileNameWithoutExtension(fileName)}/{fileName}"; } + // RWeb: filePath = {wallpapers}/{wpId}/index.html + // WallpaperHost → {wallpapers}/ + // 结果: https://wallpaper.localhost/{wpId}/index.html + // iframe 内部的相对引用(js/css/图片)会自动基于此 URL 解析,整个目录可访问 + string GetWallpaperVirtualPathForWeb(string? filePath) { + if (string.IsNullOrEmpty(filePath)) + throw new ArgumentNullException(nameof(filePath)); + + var wpFolder = Path.GetFileName(Path.GetDirectoryName(filePath)); + var htmlFile = Path.GetFileName(filePath); + return $"https://{CoreWebView2Extensions.WallpaperHost}/{wpFolder}/{htmlFile}"; + } + string GetWallpaperRootVirtualPath(string? fileName, string? filePath) { if (string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(filePath)) throw new ArgumentNullException(nameof(filePath)); @@ -351,6 +364,10 @@ private void Run() { UpdateRectToWebview(); _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, GetWallpaperVirtualPath(_startArgs.FilePath), GetWallpaperRootVirtualPath(Path.GetFileNameWithoutExtension(_startArgs.FilePath), _startArgs.DepthFilePath)); break; + case "RWeb": + UpdateRectToWebview(); + _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, _startArgs.RuntimeType, GetWallpaperVirtualPathForWeb(_startArgs.FilePath)); + break; default: break; } @@ -388,6 +405,7 @@ private string GetPlayingFile() { "RImage" => PlayingFileWeb.PlayerWeb, "RImage3D" => PlayingFileWeb.PlayerWeb3D, "RVideo" => PlayingFileWeb.PlayerWeb, + "RWeb" => PlayingFileWeb.PlayerWeb, _ => throw new ArgumentException(nameof(_startArgs.RuntimeType)), }; } @@ -500,6 +518,53 @@ private void RunParallax(bool isParallaxOn) { StopParallax(); } } + + /// + /// RWeb 专用鼠标追踪:将鼠标坐标实时推送给 window.wallpaper.__mouseMove。 + /// 壁纸作者按需监听 onMouseMove,不监听则无任何开销影响。 + /// 复用 _isParallaxRunning 锁,与 StopParallax 共享停止信号。 + /// + private void StartWebMouseTracking() { + if (Interlocked.CompareExchange(ref _isParallaxRunning, 1, 0) == 1) return; + + Task.Run(() => { + try { + bool lastInside = false; + + while (_isParallaxRunning == 1) { + if (_isFocusOnDesk) { + var pos = RawInput.GetMousePos(); + int mouseX = pos.X, mouseY = pos.Y; + + bool inside = _windowRc.Left <= mouseX && mouseX <= _windowRc.Right && + _windowRc.Top <= mouseY && mouseY <= _windowRc.Bottom; + + if (inside) { + _scriptExecutor?.EnqueueState( + key: "MouseMove", + functionName: Fields.WpApiMouseMove, + mouseX, mouseY + ); + } + else if (lastInside) { + // 鼠标离开窗口,通知壁纸 + _scriptExecutor?.EnqueueState( + key: "MouseMove", + functionName: Fields.WpApiMouseMove, + -1, -1 + ); + } + + lastInside = inside; + } + } + } + catch (Exception ex) when (ex is OperationCanceledException) { } + catch (Exception e) { + ArcLog.GetLogger().Error("[WebMouseTracking] Loop error", e); + } + }); + } #endregion private readonly StartArgsWeb _startArgs; diff --git a/src/VirtualPaper.PlayerWeb/PLAYER_Web/3d_depth_map.html b/src/VirtualPaper.PlayerWeb/PLAYER_Web/3d_depth_map.html deleted file mode 100644 index 0ad454e9..00000000 --- a/src/VirtualPaper.PlayerWeb/PLAYER_Web/3d_depth_map.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - PlayerWeb3DDepthMap - - - - - -
-
-
- - - - - \ No newline at end of file diff --git a/src/VirtualPaper.PlayerWeb/PLAYER_Web/default.html b/src/VirtualPaper.PlayerWeb/PLAYER_Web/default.html deleted file mode 100644 index 994018c0..00000000 --- a/src/VirtualPaper.PlayerWeb/PLAYER_Web/default.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - PlayerWebDefault - - - - - -
- - - - - diff --git a/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/run.js b/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/run.js deleted file mode 100644 index aa7653f9..00000000 --- a/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/run.js +++ /dev/null @@ -1,223 +0,0 @@ -import * as THREE from './three.module.min.js'; - -// --- 全局变量 --- -let width = window.innerWidth; -let height = window.innerHeight; -let mouse = new THREE.Vector2(); - -let camera, scene, renderer; -let planeMesh; -let imgAspect = 1; -let currentFitMode = 'fill'; - -function resourceLoad3D(imgFilePath, depthFilePath) { - // DOM 清理逻辑 - const root = document.querySelector('.root'); - const oldContent = document.getElementById('content'); - if (oldContent) { - oldContent.setAttribute('class', 'fade-out'); - setTimeout(() => { oldContent.remove(); }, 500); - } - - const newContent = document.createElement('div'); - newContent.id = 'content'; - newContent.className = 'source fade-in'; - newContent.setAttribute('draggable', 'false'); - root.appendChild(newContent); - - // 初始化 Scene - scene = new THREE.Scene(); - scene.background = null; - - // 初始化 Camera - const fov = 100; - const aspect = width / height; - const near = 0.1; - const far = 1000; - camera = new THREE.PerspectiveCamera(fov, aspect, near, far); - camera.position.set(0, 0, 4); // 相机位置 z=4 - - // 加载纹理并处理宽高比 (异步修正) - const textureLoader = new THREE.TextureLoader(); - - // 加载主图,加载完成后更新比例并重新计算布局 - const texture = textureLoader.load(imgFilePath, (tex) => { - imgAspect = tex.image.width / tex.image.height; - resizeContent(); // 图片加载完了,重新根据比例缩放一次 - }); - - const dapthTexture = textureLoader.load(depthFilePath); - - // 创建 Mesh - const geometry = new THREE.PlaneGeometry(1, 1); // 基础尺寸 1x1 - - const material = new THREE.ShaderMaterial({ - uniforms: { - uTexture: { value: texture }, - uDepthTexture: { value: dapthTexture }, - uMouse: { value: mouse }, - }, - vertexShader: ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); - } - `, - fragmentShader: ` - uniform sampler2D uTexture; - uniform sampler2D uDepthTexture; - uniform vec2 uMouse; - varying vec2 vUv; - void main() { - vec4 color = texture2D(uTexture, vUv); - vec4 depth = texture2D(uDepthTexture, vUv); - float depthValue = depth.r; - // 简单的视差计算 - float x = vUv.x + (uMouse.x * 0.02 * depthValue); // 稍微调小一点系数防止撕裂 - float y = vUv.y + (uMouse.y * 0.02 * depthValue); - gl_FragColor = texture2D(uTexture, vec2(x, y)); - } - `, - }); - - planeMesh = new THREE.Mesh(geometry, material); - scene.add(planeMesh); - - // 初始化 Renderer (注意:去掉 const) - renderer = new THREE.WebGLRenderer({ - antialias: true, - alpha: true, - }); - renderer.setClearAlpha(0); - renderer.setPixelRatio(window.devicePixelRatio); - renderer.setSize(width, height); // 使用全局 width/height - - // 挂载 Canvas - newContent.appendChild(renderer.domElement); - - // 启动动画循环 (只保留一个) - function animate() { - requestAnimationFrame(animate); - // 更新鼠标 Uniform - if(planeMesh && planeMesh.material) { - planeMesh.material.uniforms.uMouse.value = mouse; - } - renderer.render(scene, camera); - } - animate(); - - // 立即调用一次 resize 确保初始状态正确 - resizeContent(); - - return 'init success'; -} - -/** - * 计算 Object-Fit 对应的 Mesh Scale - */ -function resizeContent() { - // 关键检查:确保全局变量已初始化 - if (!camera || !planeMesh || !renderer) { - console.warn('ThreeJS resources not ready yet.'); - return; - } - - const screenWidth = window.innerWidth; - const screenHeight = window.innerHeight; - const screenAspect = screenWidth / screenHeight; - - // 更新渲染尺寸 - renderer.setSize(screenWidth, screenHeight); - camera.aspect = screenAspect; - camera.updateProjectionMatrix(); - - // 计算相机在 z=0 平面(Mesh所在位置)的可见高度 - // distance = camera.z (4) - mesh.z (0) = 4 - const distance = camera.position.z - planeMesh.position.z; - const vFov = THREE.MathUtils.degToRad(camera.fov); // 转弧度 - const visibleHeight = 2 * Math.tan(vFov / 2) * distance; - const visibleWidth = visibleHeight * screenAspect; - - let scaleX, scaleY; - - switch (currentFitMode) { - case 'cover': - if (screenAspect > imgAspect) { - // 屏幕更宽:宽度对齐,高度溢出 - scaleX = visibleWidth; - scaleY = visibleWidth / imgAspect; - } else { - // 屏幕更高:高度对齐,宽度溢出 - scaleY = visibleHeight; - scaleX = visibleHeight * imgAspect; - } - break; - - case 'contain': - case 'scale-down': - if (screenAspect > imgAspect) { - // 屏幕更宽:高度对齐,两侧留白 - scaleY = visibleHeight; - scaleX = visibleHeight * imgAspect; - } else { - // 屏幕更高:宽度对齐,上下留白 - scaleX = visibleWidth; - scaleY = visibleWidth / imgAspect; - } - break; - - case 'none': - // 原始比例,假设高度占满屏幕的 80% 或者 1:1 映射 - // 这里暂且按"高度填满"处理,或者你可以定一个固定单位值 - scaleY = visibleHeight; - scaleX = visibleHeight * imgAspect; - break; - - case 'fill': - default: - // 强制拉伸 - scaleX = visibleWidth; - scaleY = visibleHeight; - break; - } - - // 应用缩放 - planeMesh.scale.set(scaleX, scaleY, 1); -} - -function updateFit3D(mode) { - console.log('Update Fit Mode:', mode); - currentFitMode = mode; - resizeContent(); - return 'done'; -} - -/* 监听窗口变化 */ -window.addEventListener('resize', () => { - width = window.innerWidth; - height = window.innerHeight; - resizeContent(); -}); - -function mouseMove3D(x, y) { - // 归一化鼠标坐标 (-1 到 1) - mouse.x = (x / window.innerWidth) * 2 - 1; - mouse.y = -(y / window.innerHeight) * 2 + 1; // WebGL Y轴通常向上,DOM Y轴向下,建议反转 -} - -function mouseOut3D() { - mouse.x = 0; - mouse.y = 0; -} - -function updateDimensions3D(w, h) { - width = w; - height = h; -} - -window.resourceLoad = resourceLoad3D; -window.updateDimensions = updateDimensions3D; -window.mouseMove = mouseMove3D; -window.mouseOut = mouseOut3D; -window.updateFit3D = updateFit3D; \ No newline at end of file diff --git a/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/three.module.min.js b/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/three.module.min.js deleted file mode 100644 index 9807b610..00000000 --- a/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/three.module.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @license - * Copyright 2010-2023 Three.js Authors - * SPDX-License-Identifier: MIT - */ -const t="160",e={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},i=0,r=1,s=2,a=3,o=0,l=1,c=2,h=3,u=0,d=1,p=2,m=2,f=0,g=1,_=2,v=3,x=4,y=5,M=100,S=101,b=102,E=103,T=104,w=200,A=201,R=202,C=203,P=204,L=205,I=206,U=207,N=208,D=209,O=210,F=211,B=212,z=213,H=214,V=0,k=1,G=2,W=3,X=4,j=5,q=6,Y=7,Z=0,J=1,K=2,$=0,Q=1,tt=2,et=3,nt=4,it=5,rt=6,st="attached",at="detached",ot=300,lt=301,ct=302,ht=303,ut=304,dt=306,pt=1e3,mt=1001,ft=1002,gt=1003,_t=1004,vt=1004,xt=1005,yt=1005,Mt=1006,St=1007,bt=1007,Et=1008,Tt=1008,wt=1009,At=1010,Rt=1011,Ct=1012,Pt=1013,Lt=1014,It=1015,Ut=1016,Nt=1017,Dt=1018,Ot=1020,Ft=1021,Bt=1023,zt=1024,Ht=1025,Vt=1026,kt=1027,Gt=1028,Wt=1029,Xt=1030,jt=1031,qt=1033,Yt=33776,Zt=33777,Jt=33778,Kt=33779,$t=35840,Qt=35841,te=35842,ee=35843,ne=36196,ie=37492,re=37496,se=37808,ae=37809,oe=37810,le=37811,ce=37812,he=37813,ue=37814,de=37815,pe=37816,me=37817,fe=37818,ge=37819,_e=37820,ve=37821,xe=36492,ye=36494,Me=36495,Se=36283,be=36284,Ee=36285,Te=36286,we=2200,Ae=2201,Re=2202,Ce=2300,Pe=2301,Le=2302,Ie=2400,Ue=2401,Ne=2402,De=2500,Oe=2501,Fe=0,Be=1,ze=2,He=3e3,Ve=3001,ke=3200,Ge=3201,We=0,Xe=1,je="",qe="srgb",Ye="srgb-linear",Ze="display-p3",Je="display-p3-linear",Ke="linear",$e="srgb",Qe="rec709",tn="p3",en=0,nn=7680,rn=7681,sn=7682,an=7683,on=34055,ln=34056,cn=5386,hn=512,un=513,dn=514,pn=515,mn=516,fn=517,gn=518,_n=519,vn=512,xn=513,yn=514,Mn=515,Sn=516,bn=517,En=518,Tn=519,wn=35044,An=35048,Rn=35040,Cn=35045,Pn=35049,Ln=35041,In=35046,Un=35050,Nn=35042,Dn="100",On="300 es",Fn=1035,Bn=2e3,zn=2001;class Hn{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e>8&255]+Vn[t>>16&255]+Vn[t>>24&255]+"-"+Vn[255&e]+Vn[e>>8&255]+"-"+Vn[e>>16&15|64]+Vn[e>>24&255]+"-"+Vn[63&n|128]+Vn[n>>8&255]+"-"+Vn[n>>16&255]+Vn[n>>24&255]+Vn[255&i]+Vn[i>>8&255]+Vn[i>>16&255]+Vn[i>>24&255]).toLowerCase()}function jn(t,e,n){return Math.max(e,Math.min(n,t))}function qn(t,e){return(t%e+e)%e}function Yn(t,e,n){return(1-n)*t+n*e}function Zn(t){return 0==(t&t-1)&&0!==t}function Jn(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Kn(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function $n(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const Qn={DEG2RAD:Gn,RAD2DEG:Wn,generateUUID:Xn,clamp:jn,euclideanModulo:qn,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:Yn,damp:function(t,e,n,i){return Yn(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(qn(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){void 0!==t&&(kn=t);let e=kn+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function(t){return t*Gn},radToDeg:function(t){return t*Wn},isPowerOfTwo:Zn,ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:Jn,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:$n,denormalize:Kn};class ti{constructor(t=0,e=0){ti.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(jn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class ei{constructor(t,e,n,i,r,s,a,o,l){ei.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l)}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],_=i[1],v=i[4],x=i[7],y=i[2],M=i[5],S=i[8];return r[0]=s*m+a*_+o*y,r[3]=s*f+a*v+o*M,r[6]=s*g+a*x+o*S,r[1]=l*m+c*_+h*y,r[4]=l*f+c*v+h*M,r[7]=l*g+c*x+h*S,r[2]=u*m+d*_+p*y,r[5]=u*f+d*v+p*M,r[8]=u*g+d*x+p*S,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(ni.makeScale(t,e)),this}rotate(t){return this.premultiply(ni.makeRotation(-t)),this}translate(t,e){return this.premultiply(ni.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const ni=new ei;function ii(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const ri={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function si(t,e){return new ri[t](e)}function ai(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function oi(){const t=ai("canvas");return t.style.display="block",t}const li={};function ci(t){t in li||(li[t]=!0,console.warn(t))}const hi=(new ei).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),ui=(new ei).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),di={[Ye]:{transfer:Ke,primaries:Qe,toReference:t=>t,fromReference:t=>t},[qe]:{transfer:$e,primaries:Qe,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[Je]:{transfer:Ke,primaries:tn,toReference:t=>t.applyMatrix3(ui),fromReference:t=>t.applyMatrix3(hi)},[Ze]:{transfer:$e,primaries:tn,toReference:t=>t.convertSRGBToLinear().applyMatrix3(ui),fromReference:t=>t.applyMatrix3(hi).convertLinearToSRGB()}},pi=new Set([Ye,Je]),mi={enabled:!0,_workingColorSpace:Ye,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!pi.has(t))throw new Error(`Unsupported working color space, "${t}".`);this._workingColorSpace=t},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=di[e].toReference;return(0,di[n].fromReference)(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return di[t].primaries},getTransfer:function(t){return t===je?Ke:di[t].transfer}};function fi(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function gi(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}let _i;class vi{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===_i&&(_i=ai("canvas")),_i.width=t.width,_i.height=t.height;const n=_i.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=_i}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=ai("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==ot)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case pt:t.x=t.x-Math.floor(t.x);break;case mt:t.x=t.x<0?0:1;break;case ft:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case pt:t.y=t.y-Math.floor(t.y);break;case mt:t.y=t.y<0?0:1;break;case ft:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return ci("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===qe?Ve:He}set encoding(t){ci("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=t===Ve?qe:je}}bi.DEFAULT_IMAGE=null,bi.DEFAULT_MAPPING=ot,bi.DEFAULT_ANISOTROPY=1;class Ei{constructor(t=0,e=0,n=0,i=1){Ei.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)o&&t>_?t_?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!0===e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(jn(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Ui{constructor(t=0,e=0,n=0){Ui.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Di.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Di.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=2*(s*i-a*n),c=2*(a*e-r*i),h=2*(r*n-s*e);return this.x=e+o*l+s*h-a*c,this.y=n+o*c+a*l-r*h,this.z=i+o*h+r*c-s*l,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Ni.copy(this).projectOnVector(t),this.sub(Ni)}reflect(t){return this.sub(Ni.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(jn(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ni=new Ui,Di=new Ii;class Oi{constructor(t=new Ui(1/0,1/0,1/0),e=new Ui(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Bi),Bi.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ji),qi.subVectors(this.max,ji),Hi.subVectors(t.a,ji),Vi.subVectors(t.b,ji),ki.subVectors(t.c,ji),Gi.subVectors(Vi,Hi),Wi.subVectors(ki,Vi),Xi.subVectors(Hi,ki);let e=[0,-Gi.z,Gi.y,0,-Wi.z,Wi.y,0,-Xi.z,Xi.y,Gi.z,0,-Gi.x,Wi.z,0,-Wi.x,Xi.z,0,-Xi.x,-Gi.y,Gi.x,0,-Wi.y,Wi.x,0,-Xi.y,Xi.x,0];return!!Ji(e,Hi,Vi,ki,qi)&&(e=[1,0,0,0,1,0,0,0,1],!!Ji(e,Hi,Vi,ki,qi)&&(Yi.crossVectors(Gi,Wi),e=[Yi.x,Yi.y,Yi.z],Ji(e,Hi,Vi,ki,qi)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Bi).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Bi).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Fi[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Fi[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Fi[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Fi[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Fi[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Fi[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Fi[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Fi[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Fi)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Fi=[new Ui,new Ui,new Ui,new Ui,new Ui,new Ui,new Ui,new Ui],Bi=new Ui,zi=new Oi,Hi=new Ui,Vi=new Ui,ki=new Ui,Gi=new Ui,Wi=new Ui,Xi=new Ui,ji=new Ui,qi=new Ui,Yi=new Ui,Zi=new Ui;function Ji(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Zi.fromArray(t,s);const a=r.x*Math.abs(Zi.x)+r.y*Math.abs(Zi.y)+r.z*Math.abs(Zi.z),o=e.dot(Zi),l=n.dot(Zi),c=i.dot(Zi);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Ki=new Oi,$i=new Ui,Qi=new Ui;class tr{constructor(t=new Ui,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Ki.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;ethis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;$i.subVectors(t,this.center);const e=$i.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector($i,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(Qi.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint($i.copy(t.center).add(Qi)),this.expandByPoint($i.copy(t.center).sub(Qi))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const er=new Ui,nr=new Ui,ir=new Ui,rr=new Ui,sr=new Ui,ar=new Ui,or=new Ui;class lr{constructor(t=new Ui,e=new Ui(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,er)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=er.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(er.copy(this.origin).addScaledVector(this.direction,e),er.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){nr.copy(t).add(e).multiplyScalar(.5),ir.copy(e).sub(t).normalize(),rr.copy(this.origin).sub(nr);const r=.5*t.distanceTo(e),s=-this.direction.dot(ir),a=rr.dot(this.direction),o=-rr.dot(ir),l=rr.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(nr).addScaledVector(ir,u),d}intersectSphere(t,e){er.subVectors(t.center,this.origin);const n=er.dot(this.direction),i=er.dot(er)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,er)}intersectTriangle(t,e,n,i,r){sr.subVectors(e,t),ar.subVectors(n,t),or.crossVectors(sr,ar);let s,a=this.direction.dot(or);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}rr.subVectors(this.origin,t);const o=s*this.direction.dot(ar.crossVectors(rr,ar));if(o<0)return null;const l=s*this.direction.dot(sr.cross(rr));if(l<0)return null;if(o+l>a)return null;const c=-s*rr.dot(or);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class cr{constructor(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){cr.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f)}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new cr).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/hr.setFromMatrixColumn(t,0).length(),r=1/hr.setFromMatrixColumn(t,1).length(),s=1/hr.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(dr,t,pr)}lookAt(t,e,n){const i=this.elements;return gr.subVectors(t,e),0===gr.lengthSq()&&(gr.z=1),gr.normalize(),mr.crossVectors(n,gr),0===mr.lengthSq()&&(1===Math.abs(n.z)?gr.x+=1e-4:gr.z+=1e-4,gr.normalize(),mr.crossVectors(n,gr)),mr.normalize(),fr.crossVectors(gr,mr),i[0]=mr.x,i[4]=fr.x,i[8]=gr.x,i[1]=mr.y,i[5]=fr.y,i[9]=gr.y,i[2]=mr.z,i[6]=fr.z,i[10]=gr.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],_=n[3],v=n[7],x=n[11],y=n[15],M=i[0],S=i[4],b=i[8],E=i[12],T=i[1],w=i[5],A=i[9],R=i[13],C=i[2],P=i[6],L=i[10],I=i[14],U=i[3],N=i[7],D=i[11],O=i[15];return r[0]=s*M+a*T+o*C+l*U,r[4]=s*S+a*w+o*P+l*N,r[8]=s*b+a*A+o*L+l*D,r[12]=s*E+a*R+o*I+l*O,r[1]=c*M+h*T+u*C+d*U,r[5]=c*S+h*w+u*P+d*N,r[9]=c*b+h*A+u*L+d*D,r[13]=c*E+h*R+u*I+d*O,r[2]=p*M+m*T+f*C+g*U,r[6]=p*S+m*w+f*P+g*N,r[10]=p*b+m*A+f*L+g*D,r[14]=p*E+m*R+f*I+g*O,r[3]=_*M+v*T+x*C+y*U,r[7]=_*S+v*w+x*P+y*N,r[11]=_*b+v*A+x*L+y*D,r[15]=_*E+v*R+x*I+y*O,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],_=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,v=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,y=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=e*_+n*v+i*x+r*y;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return t[0]=_*S,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*S,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*S,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*S,t[4]=v*S,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*S,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*S,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*S,t[8]=x*S,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*S,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*S,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*S,t[12]=y*S,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*S,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*S,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*S,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,_=o*l,v=o*c,x=o*h,y=n.x,M=n.y,S=n.z;return i[0]=(1-(m+g))*y,i[1]=(d+x)*y,i[2]=(p-v)*y,i[3]=0,i[4]=(d-x)*M,i[5]=(1-(u+g))*M,i[6]=(f+_)*M,i[7]=0,i[8]=(p+v)*S,i[9]=(f-_)*S,i[10]=(1-(u+m))*S,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=hr.set(i[0],i[1],i[2]).length();const s=hr.set(i[4],i[5],i[6]).length(),a=hr.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],ur.copy(this);const o=1/r,l=1/s,c=1/a;return ur.elements[0]*=o,ur.elements[1]*=o,ur.elements[2]*=o,ur.elements[4]*=l,ur.elements[5]*=l,ur.elements[6]*=l,ur.elements[8]*=c,ur.elements[9]*=c,ur.elements[10]*=c,e.setFromRotationMatrix(ur),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s,a=2e3){const o=this.elements,l=2*r/(e-t),c=2*r/(n-i),h=(e+t)/(e-t),u=(n+i)/(n-i);let d,p;if(a===Bn)d=-(s+r)/(s-r),p=-2*s*r/(s-r);else{if(a!==zn)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);d=-s/(s-r),p=-s*r/(s-r)}return o[0]=l,o[4]=0,o[8]=h,o[12]=0,o[1]=0,o[5]=c,o[9]=u,o[13]=0,o[2]=0,o[6]=0,o[10]=d,o[14]=p,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,r,s,a=2e3){const o=this.elements,l=1/(e-t),c=1/(n-i),h=1/(s-r),u=(e+t)*l,d=(n+i)*c;let p,m;if(a===Bn)p=(s+r)*h,m=-2*h;else{if(a!==zn)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);p=r*h,m=-1*h}return o[0]=2*l,o[4]=0,o[8]=0,o[12]=-u,o[1]=0,o[5]=2*c,o[9]=0,o[13]=-d,o[2]=0,o[6]=0,o[10]=m,o[14]=-p,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const hr=new Ui,ur=new cr,dr=new Ui(0,0,0),pr=new Ui(1,1,1),mr=new Ui,fr=new Ui,gr=new Ui,_r=new cr,vr=new Ii;class xr{constructor(t=0,e=0,n=0,i=xr.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(jn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-jn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(jn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-jn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(jn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-jn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return _r.makeRotationFromQuaternion(t),this.setFromRotationMatrix(_r,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return vr.setFromEuler(this),this.setFromQuaternion(vr,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}xr.DEFAULT_ORDER="XYZ";class yr{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map((t=>({boxInitialized:t.boxInitialized,boxMin:t.box.min.toArray(),boxMax:t.box.max.toArray(),sphereInitialized:t.sphereInitialized,sphereRadius:t.sphere.radius,sphereCenter:t.sphere.center.toArray()}))),i.maxGeometryCount=this._maxGeometryCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(t),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){Dr.subVectors(i,e),Or.subVectors(n,e),Fr.subVectors(t,e);const s=Dr.dot(Dr),a=Dr.dot(Or),o=Dr.dot(Fr),l=Or.dot(Or),c=Or.dot(Fr),h=s*l-a*a;if(0===h)return r.set(0,0,0),null;const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return null!==this.getBarycoord(t,e,n,i,Br)&&(Br.x>=0&&Br.y>=0&&Br.x+Br.y<=1)}static getUV(t,e,n,i,r,s,a,o){return!1===Xr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Xr=!0),this.getInterpolation(t,e,n,i,r,s,a,o)}static getInterpolation(t,e,n,i,r,s,a,o){return null===this.getBarycoord(t,e,n,i,Br)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,Br.x),o.addScaledVector(s,Br.y),o.addScaledVector(a,Br.z),o)}static isFrontFacing(t,e,n,i){return Dr.subVectors(n,e),Or.subVectors(t,e),Dr.cross(Or).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Dr.subVectors(this.c,this.b),Or.subVectors(this.a,this.b),.5*Dr.cross(Or).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return jr.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return jr.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return!1===Xr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Xr=!0),jr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}getInterpolation(t,e,n,i,r){return jr.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return jr.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return jr.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;zr.subVectors(i,n),Hr.subVectors(r,n),kr.subVectors(t,n);const o=zr.dot(kr),l=Hr.dot(kr);if(o<=0&&l<=0)return e.copy(n);Gr.subVectors(t,i);const c=zr.dot(Gr),h=Hr.dot(Gr);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(zr,s);Wr.subVectors(t,r);const d=zr.dot(Wr),p=Hr.dot(Wr);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(Hr,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Vr.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Vr,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(zr,s).addScaledVector(Hr,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const qr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Yr={h:0,s:0,l:0},Zr={h:0,s:0,l:0};function Jr(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Kr{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=qe){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,mi.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=mi.workingColorSpace){return this.r=t,this.g=e,this.b=n,mi.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=mi.workingColorSpace){if(t=qn(t,1),e=jn(e,0,1),n=jn(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=Jr(r,i,t+1/3),this.g=Jr(r,i,t),this.b=Jr(r,i,t-1/3)}return mi.toWorkingColorSpace(this,i),this}setStyle(t,e=qe){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=qe){const n=qr[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=fi(t.r),this.g=fi(t.g),this.b=fi(t.b),this}copyLinearToSRGB(t){return this.r=gi(t.r),this.g=gi(t.g),this.b=gi(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=qe){return mi.fromWorkingColorSpace($r.copy(this),t),65536*Math.round(jn(255*$r.r,0,255))+256*Math.round(jn(255*$r.g,0,255))+Math.round(jn(255*$r.b,0,255))}getHexString(t=qe){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=mi.workingColorSpace){mi.fromWorkingColorSpace($r.copy(this),e);const n=$r.r,i=$r.g,r=$r.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const t=s-a;switch(l=c<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),this.side!==u&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),this.blendSrc!==P&&(n.blendSrc=this.blendSrc),this.blendDst!==L&&(n.blendDst=this.blendDst),this.blendEquation!==M&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==nn&&(n.stencilFail=this.stencilFail),this.stencilZFail!==nn&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==nn&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}class es extends ts{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Kr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const ns=is();function is(){const t=new ArrayBuffer(4),e=new Float32Array(t),n=new Uint32Array(t),i=new Uint32Array(512),r=new Uint32Array(512);for(let t=0;t<256;++t){const e=t-127;e<-27?(i[t]=0,i[256|t]=32768,r[t]=24,r[256|t]=24):e<-14?(i[t]=1024>>-e-14,i[256|t]=1024>>-e-14|32768,r[t]=-e-1,r[256|t]=-e-1):e<=15?(i[t]=e+15<<10,i[256|t]=e+15<<10|32768,r[t]=13,r[256|t]=13):e<128?(i[t]=31744,i[256|t]=64512,r[t]=24,r[256|t]=24):(i[t]=31744,i[256|t]=64512,r[t]=13,r[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function rs(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=jn(t,-65504,65504),ns.floatView[0]=t;const e=ns.uint32View[0],n=e>>23&511;return ns.baseTable[n]+((8388607&e)>>ns.shiftTable[n])}function ss(t){const e=t>>10;return ns.uint32View[0]=ns.mantissaTable[ns.offsetTable[e]+(1023&t)]+ns.exponentTable[e],ns.floatView[0]}const as={toHalfFloat:rs,fromHalfFloat:ss},os=new Ui,ls=new ti;class cs{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=wn,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=It,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return console.warn("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t(t.far-t.near)**2)return}Rs.copy(r).invert(),Cs.copy(t.ray).applyMatrix4(Rs),null!==n.boundingBox&&!1===Cs.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,Cs)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,l=r.attributes.uv,c=r.attributes.uv1,h=r.attributes.normal,u=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let r=0,o=u.length;rn.far?null:{distance:c,point:Ws.clone(),object:t}}(t,e,n,i,Is,Us,Ns,Gs);if(h){r&&(Fs.fromBufferAttribute(r,o),Bs.fromBufferAttribute(r,l),zs.fromBufferAttribute(r,c),h.uv=jr.getInterpolation(Gs,Is,Us,Ns,Fs,Bs,zs,new ti)),s&&(Fs.fromBufferAttribute(s,o),Bs.fromBufferAttribute(s,l),zs.fromBufferAttribute(s,c),h.uv1=jr.getInterpolation(Gs,Is,Us,Ns,Fs,Bs,zs,new ti),h.uv2=h.uv1),a&&(Hs.fromBufferAttribute(a,o),Vs.fromBufferAttribute(a,l),ks.fromBufferAttribute(a,c),h.normal=jr.getInterpolation(Gs,Is,Us,Ns,Hs,Vs,ks,new Ui),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));const t={a:o,b:l,c:c,normal:new Ui,materialIndex:0};jr.getNormal(Is,Us,Ns,t.normal),h.face=t}return h}class qs extends As{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,_){const v=s/f,x=p/g,y=s/2,M=p/2,S=m/2,b=f+1,E=g+1;let T=0,w=0;const A=new Ui;for(let s=0;s0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Qs extends Nr{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new cr,this.projectionMatrix=new cr,this.projectionMatrixInverse=new cr,this.coordinateSystem=Bn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class ta extends Qs{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*Wn*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Gn*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*Wn*Math.atan(Math.tan(.5*Gn*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Gn*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const ea=-90;class na extends Nr{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new ta(ea,1,t,e);i.layers=this.layers,this.add(i);const r=new ta(ea,1,t,e);r.layers=this.layers,this.add(r);const s=new ta(ea,1,t,e);s.layers=this.layers,this.add(s);const a=new ta(ea,1,t,e);a.layers=this.layers,this.add(a);const o=new ta(ea,1,t,e);o.layers=this.layers,this.add(o);const l=new ta(ea,1,t,e);l.layers=this.layers,this.add(l)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,i,r,s,a,o]=e;for(const t of e)this.remove(t);if(t===Bn)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else{if(t!==zn)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1)}for(const t of e)this.add(t),t.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,s,a,o,l,c]=this.children,h=t.getRenderTarget(),u=t.getActiveCubeFace(),d=t.getActiveMipmapLevel(),p=t.xr.enabled;t.xr.enabled=!1;const m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,i),t.render(e,r),t.setRenderTarget(n,1,i),t.render(e,s),t.setRenderTarget(n,2,i),t.render(e,a),t.setRenderTarget(n,3,i),t.render(e,o),t.setRenderTarget(n,4,i),t.render(e,l),n.texture.generateMipmaps=m,t.setRenderTarget(n,5,i),t.render(e,c),t.setRenderTarget(h,u,d),t.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class ia extends bi{constructor(t,e,n,i,r,s,a,o,l,c){super(t=void 0!==t?t:[],e=void 0!==e?e:lt,n,i,r,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class ra extends wi{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];void 0!==e.encoding&&(ci("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===Ve?qe:je),this.texture=new ia(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:Mt}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new qs(5,5,5),r=new $s({name:"CubemapFromEquirect",uniforms:Ys(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:0});r.uniforms.tEquirect.value=e;const s=new Xs(i,r),a=e.minFilter;e.minFilter===Et&&(e.minFilter=Mt);return new na(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}const sa=new Ui,aa=new Ui,oa=new ei;class la{constructor(t=new Ui(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=sa.subVectors(n,e).cross(aa.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(sa),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||oa.getNormalMatrix(t),i=this.coplanarPoint(sa).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const ca=new tr,ha=new Ui;class ua{constructor(t=new la,e=new la,n=new la,i=new la,r=new la,s=new la){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=2e3){const n=this.planes,i=t.elements,r=i[0],s=i[1],a=i[2],o=i[3],l=i[4],c=i[5],h=i[6],u=i[7],d=i[8],p=i[9],m=i[10],f=i[11],g=i[12],_=i[13],v=i[14],x=i[15];if(n[0].setComponents(o-r,u-l,f-d,x-g).normalize(),n[1].setComponents(o+r,u+l,f+d,x+g).normalize(),n[2].setComponents(o+s,u+c,f+p,x+_).normalize(),n[3].setComponents(o-s,u-c,f-p,x-_).normalize(),n[4].setComponents(o-a,u-h,f-m,x-v).normalize(),e===Bn)n[5].setComponents(o+a,u+h,f+m,x+v).normalize();else{if(e!==zn)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);n[5].setComponents(a,h,m,v).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),ca.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),ca.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(ca)}intersectsSprite(t){return ca.center.set(0,0,0),ca.radius=.7071067811865476,ca.applyMatrix4(t.matrixWorld),this.intersectsSphere(ca)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)0?t.max.x:t.min.x,ha.y=i.normal.y>0?t.max.y:t.min.y,ha.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(ha)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function da(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function pa(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor *= toneMappingExposure;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\treturn color;\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},ga={common:{diffuse:{value:new Kr(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new ei},alphaMap:{value:null},alphaMapTransform:{value:new ei},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new ei}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new ei}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new ei}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new ei},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new ei},normalScale:{value:new ti(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new ei},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new ei}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new ei}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new ei}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Kr(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Kr(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new ei},alphaTest:{value:0},uvTransform:{value:new ei}},sprite:{diffuse:{value:new Kr(16777215)},opacity:{value:1},center:{value:new ti(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new ei},alphaMap:{value:null},alphaMapTransform:{value:new ei},alphaTest:{value:0}}},_a={basic:{uniforms:Zs([ga.common,ga.specularmap,ga.envmap,ga.aomap,ga.lightmap,ga.fog]),vertexShader:fa.meshbasic_vert,fragmentShader:fa.meshbasic_frag},lambert:{uniforms:Zs([ga.common,ga.specularmap,ga.envmap,ga.aomap,ga.lightmap,ga.emissivemap,ga.bumpmap,ga.normalmap,ga.displacementmap,ga.fog,ga.lights,{emissive:{value:new Kr(0)}}]),vertexShader:fa.meshlambert_vert,fragmentShader:fa.meshlambert_frag},phong:{uniforms:Zs([ga.common,ga.specularmap,ga.envmap,ga.aomap,ga.lightmap,ga.emissivemap,ga.bumpmap,ga.normalmap,ga.displacementmap,ga.fog,ga.lights,{emissive:{value:new Kr(0)},specular:{value:new Kr(1118481)},shininess:{value:30}}]),vertexShader:fa.meshphong_vert,fragmentShader:fa.meshphong_frag},standard:{uniforms:Zs([ga.common,ga.envmap,ga.aomap,ga.lightmap,ga.emissivemap,ga.bumpmap,ga.normalmap,ga.displacementmap,ga.roughnessmap,ga.metalnessmap,ga.fog,ga.lights,{emissive:{value:new Kr(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:fa.meshphysical_vert,fragmentShader:fa.meshphysical_frag},toon:{uniforms:Zs([ga.common,ga.aomap,ga.lightmap,ga.emissivemap,ga.bumpmap,ga.normalmap,ga.displacementmap,ga.gradientmap,ga.fog,ga.lights,{emissive:{value:new Kr(0)}}]),vertexShader:fa.meshtoon_vert,fragmentShader:fa.meshtoon_frag},matcap:{uniforms:Zs([ga.common,ga.bumpmap,ga.normalmap,ga.displacementmap,ga.fog,{matcap:{value:null}}]),vertexShader:fa.meshmatcap_vert,fragmentShader:fa.meshmatcap_frag},points:{uniforms:Zs([ga.points,ga.fog]),vertexShader:fa.points_vert,fragmentShader:fa.points_frag},dashed:{uniforms:Zs([ga.common,ga.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:fa.linedashed_vert,fragmentShader:fa.linedashed_frag},depth:{uniforms:Zs([ga.common,ga.displacementmap]),vertexShader:fa.depth_vert,fragmentShader:fa.depth_frag},normal:{uniforms:Zs([ga.common,ga.bumpmap,ga.normalmap,ga.displacementmap,{opacity:{value:1}}]),vertexShader:fa.meshnormal_vert,fragmentShader:fa.meshnormal_frag},sprite:{uniforms:Zs([ga.sprite,ga.fog]),vertexShader:fa.sprite_vert,fragmentShader:fa.sprite_frag},background:{uniforms:{uvTransform:{value:new ei},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:fa.background_vert,fragmentShader:fa.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:fa.backgroundCube_vert,fragmentShader:fa.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:fa.cube_vert,fragmentShader:fa.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:fa.equirect_vert,fragmentShader:fa.equirect_frag},distanceRGBA:{uniforms:Zs([ga.common,ga.displacementmap,{referencePosition:{value:new Ui},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:fa.distanceRGBA_vert,fragmentShader:fa.distanceRGBA_frag},shadow:{uniforms:Zs([ga.lights,ga.fog,{color:{value:new Kr(0)},opacity:{value:1}}]),vertexShader:fa.shadow_vert,fragmentShader:fa.shadow_frag}};_a.physical={uniforms:Zs([_a.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new ei},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new ei},clearcoatNormalScale:{value:new ti(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new ei},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new ei},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new ei},sheen:{value:0},sheenColor:{value:new Kr(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new ei},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new ei},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new ei},transmissionSamplerSize:{value:new ti},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new ei},attenuationDistance:{value:0},attenuationColor:{value:new Kr(0)},specularColor:{value:new Kr(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new ei},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new ei},anisotropyVector:{value:new ti},anisotropyMap:{value:null},anisotropyMapTransform:{value:new ei}}]),vertexShader:fa.meshphysical_vert,fragmentShader:fa.meshphysical_frag};const va={r:0,b:0,g:0};function xa(t,e,n,i,r,s,a){const o=new Kr(0);let l,c,h=!0===s?0:1,p=null,m=0,f=null;function g(e,n){e.getRGB(va,Js(t)),i.buffers.color.setClear(va.r,va.g,va.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),h=e,g(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,g(o,h)},render:function(s,_){let v=!1,x=!0===_.isScene?_.background:null;if(x&&x.isTexture){x=(_.backgroundBlurriness>0?n:e).get(x)}null===x?g(o,h):x&&x.isColor&&(g(x,1),v=!0);const y=t.xr.getEnvironmentBlendMode();"additive"===y?i.buffers.color.setClear(0,0,0,1,a):"alpha-blend"===y&&i.buffers.color.setClear(0,0,0,0,a),(t.autoClear||v)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),x&&(x.isCubeTexture||x.mapping===dt)?(void 0===c&&(c=new Xs(new qs(1,1,1),new $s({name:"BackgroundCubeMaterial",uniforms:Ys(_a.backgroundCube.uniforms),vertexShader:_a.backgroundCube.vertexShader,fragmentShader:_a.backgroundCube.fragmentShader,side:d,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(c)),c.material.uniforms.envMap.value=x,c.material.uniforms.flipEnvMap.value=x.isCubeTexture&&!1===x.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=_.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=_.backgroundIntensity,c.material.toneMapped=mi.getTransfer(x.colorSpace)!==$e,p===x&&m===x.version&&f===t.toneMapping||(c.material.needsUpdate=!0,p=x,m=x.version,f=t.toneMapping),c.layers.enableAll(),s.unshift(c,c.geometry,c.material,0,0,null)):x&&x.isTexture&&(void 0===l&&(l=new Xs(new ma(2,2),new $s({name:"BackgroundMaterial",uniforms:Ys(_a.background.uniforms),vertexShader:_a.background.vertexShader,fragmentShader:_a.background.fragmentShader,side:u,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(l)),l.material.uniforms.t2D.value=x,l.material.uniforms.backgroundIntensity.value=_.backgroundIntensity,l.material.toneMapped=mi.getTransfer(x.colorSpace)!==$e,!0===x.matrixAutoUpdate&&x.updateMatrix(),l.material.uniforms.uvTransform.value.copy(x.matrix),p===x&&m===x.version&&f===t.toneMapping||(l.material.needsUpdate=!0,p=x,m=x.version,f=t.toneMapping),l.layers.enableAll(),s.unshift(l,l.geometry,l.material,0,0,null))}}}function ya(t,e,n,i){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function d(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function p(t){const e=[],n=[],i=[];for(let t=0;t=0){const n=r[e];let i=s[e];if(void 0===i&&("instanceMatrix"===e&&t.instanceMatrix&&(i=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(i=t.instanceColor)),void 0===n)return!0;if(n.attribute!==i)return!0;if(i&&n.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==i}(r,x,d,y),M&&function(t,e,n,i){const r={},s=e.attributes;let a=0;const o=n.getAttributes();for(const e in o){if(o[e].location>=0){let n=s[e];void 0===n&&("instanceMatrix"===e&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===e&&t.instanceColor&&(n=t.instanceColor));const i={};i.attribute=n,n&&n.data&&(i.data=n.data),r[e]=i,a++}}c.attributes=r,c.attributesNum=a,c.index=i}(r,x,d,y)}else{const t=!0===l.wireframe;c.geometry===x.id&&c.program===d.id&&c.wireframe===t||(c.geometry=x.id,c.program=d.id,c.wireframe=t,M=!0)}null!==y&&n.update(y,t.ELEMENT_ARRAY_BUFFER),(M||h)&&(h=!1,function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;m();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const s=c[e];if(s.location>=0){let a=l[e];if(void 0===a&&("instanceMatrix"===e&&r.instanceMatrix&&(a=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(a=r.instanceColor)),void 0!==a){const e=a.normalized,l=a.itemSize,c=n.get(a);if(void 0===c)continue;const h=c.buffer,u=c.type,d=c.bytesPerElement,p=!0===i.isWebGL2&&(u===t.INT||u===t.UNSIGNED_INT||a.gpuType===Pt);if(a.isInterleavedBufferAttribute){const n=a.data,i=n.stride,c=a.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===t.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),m=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),g=t.getParameter(t.MAX_VARYING_VECTORS),_=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),v=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:_,vertexTextures:v,floatFragmentTextures:x,floatVertexTextures:v&&x,maxSamples:s?t.getParameter(t.MAX_SAMPLES):0}}function ba(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new la,o=new ei,l={value:null,needsUpdate:!1};function c(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=c(u,o,e,h);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function Ea(t){let e=new WeakMap;function n(t,e){return e===ht?t.mapping=lt:e===ut&&(t.mapping=ct),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping;if(s===ht||s===ut){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new ra(s.height/2);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class Ta extends Qs{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const wa=[.125,.215,.35,.446,.526,.582],Aa=20,Ra=new Ta,Ca=new Kr;let Pa=null,La=0,Ia=0;const Ua=(1+Math.sqrt(5))/2,Na=1/Ua,Da=[new Ui(1,1,1),new Ui(-1,1,1),new Ui(1,1,-1),new Ui(-1,1,-1),new Ui(0,Ua,Na),new Ui(0,Ua,-Na),new Ui(Na,0,Ua),new Ui(-Na,0,Ua),new Ui(Ua,Na,0),new Ui(-Ua,Na,0)];class Oa{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Pa=this._renderer.getRenderTarget(),La=this._renderer.getActiveCubeFace(),Ia=this._renderer.getActiveMipmapLevel(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Ha(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=za(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tt-4?o=wa[a-t+4-1]:0===a&&(o=0),i.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,_=new Float32Array(m*p*d),v=new Float32Array(f*p*d),x=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];_.set(i,m*p*t),v.set(u,f*p*t);const r=[t,t,t,t,t,t];x.set(r,g*p*t)}const y=new As;y.setAttribute("position",new cs(_,m)),y.setAttribute("uv",new cs(v,f)),y.setAttribute("faceIndex",new cs(x,g)),e.push(y),r>4&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}(i)),this._blurMaterial=function(t,e,n){const i=new Float32Array(Aa),r=new Ui(0,1,0),s=new $s({name:"SphericalGaussianBlur",defines:{n:Aa,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Va(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1});return s}(i,t,e)}return i}_compileMaterial(t){const e=new Xs(this._lodPlanes[0],t);this._renderer.compile(e,Ra)}_sceneToCubeUV(t,e,n,i){const r=new ta(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(Ca),o.toneMapping=$,o.autoClear=!1;const h=new es({name:"PMREM.Background",side:d,depthWrite:!1,depthTest:!1}),u=new Xs(new qs,h);let p=!1;const m=t.background;m?m.isColor&&(h.color.copy(m),t.background=null,p=!0):(h.color.copy(Ca),p=!0);for(let e=0;e<6;e++){const n=e%3;0===n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1===n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e]));const l=this._cubeSize;Ba(i,n*l,e>2?l:0,l,l),o.setRenderTarget(i),p&&o.render(u,r),o.render(t,r)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===lt||t.mapping===ct;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Ha()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=za());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Xs(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;Ba(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,Ra)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;eAa&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;t_-4?i-_+4:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(e),o.render(c,Ra)}}function Fa(t,e,n){const i=new wi(t,e,n);return i.texture.mapping=dt,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Ba(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function za(){return new $s({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Va(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ha(){return new $s({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Va(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Va(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function ka(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===ht||s===ut,o=s===lt||s===ct;if(a||o){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let i=e.get(r);return null===n&&(n=new Oa(t)),i=a?n.fromEquirectangular(r,i):n.fromCubemap(r,i),e.set(r,i),i.texture}if(e.has(r))return e.get(r).texture;{const s=r.image;if(a&&s&&s.height>0||o&&s&&function(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(T=Math.ceil(E/e.maxTextureSize),E=e.maxTextureSize);const w=new Float32Array(E*T*4*p),A=new Ai(w,E,T,p);A.type=It,A.needsUpdate=!0;const R=4*b;for(let P=0;P0)return t;const r=e*n;let s=io[r];if(void 0===s&&(s=new Float32Array(r),io[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function co(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${r}: ${n[t]}`)}return i.join("\n")}(t.getShaderSource(e),i)}return r}function ll(t,e){const n=function(t){const e=mi.getPrimaries(mi.workingColorSpace),n=mi.getPrimaries(t);let i;switch(e===n?i="":e===tn&&n===Qe?i="LinearDisplayP3ToLinearSRGB":e===Qe&&n===tn&&(i="LinearSRGBToLinearDisplayP3"),t){case Ye:case Je:return[i,"LinearTransferOETF"];case qe:case Ze:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[i,"LinearTransferOETF"]}}(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function cl(t,e){let n;switch(e){case Q:n="Linear";break;case tt:n="Reinhard";break;case et:n="OptimizedCineon";break;case nt:n="ACESFilmic";break;case rt:n="AgX";break;case it:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function hl(t){return""!==t}function ul(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function dl(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const pl=/^[ \t]*#include +<([\w\d./]+)>/gm;function ml(t){return t.replace(pl,gl)}const fl=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function gl(t,e){let n=fa[e];if(void 0===n){const t=fl.get(e);if(void 0===t)throw new Error("Can not resolve #include <"+e+">");n=fa[t],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,t)}return ml(n)}const _l=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function vl(t){return t.replace(_l,xl)}function xl(t,e,n,i){let r="";for(let t=parseInt(e);t0&&(y+="\n"),M=[g,"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,v].filter(hl).join("\n"),M.length>0&&(M+="\n")):(y=[yl(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,v,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(hl).join("\n"),M=[g,yl(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,v,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+u:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==$?"#define TONE_MAPPING":"",n.toneMapping!==$?fa.tonemapping_pars_fragment:"",n.toneMapping!==$?cl("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",fa.colorspace_pars_fragment,ll("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(hl).join("\n")),a=ml(a),a=ul(a,n),a=dl(a,n),o=ml(o),o=ul(o,n),o=dl(o,n),a=vl(a),o=vl(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(S="#version 300 es\n",y=[_,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+y,M=["precision mediump sampler2DArray;","#define varying in",n.glslVersion===On?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===On?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+M);const b=S+y+a,E=S+M+o,T=rl(r,r.VERTEX_SHADER,b),w=rl(r,r.FRAGMENT_SHADER,E);function A(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(x).trim(),i=r.getShaderInfoLog(T).trim(),s=r.getShaderInfoLog(w).trim();let a=!0,o=!0;if(!1===r.getProgramParameter(x,r.LINK_STATUS))if(a=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,x,T,w);else{const t=ol(r,T,"vertex"),e=ol(r,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(x,r.VALIDATE_STATUS)+"\n\nProgram Info Log: "+n+"\n"+t+"\n"+e)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):""!==i&&""!==s||(o=!1);o&&(e.diagnostics={runnable:a,programLog:n,vertexShader:{log:i,prefix:y},fragmentShader:{log:s,prefix:M}})}r.deleteShader(T),r.deleteShader(w),R=new il(r,x),C=function(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r0,q=s.clearcoat>0,Y=s.iridescence>0,Z=s.sheen>0,J=s.transmission>0,K=j&&!!s.anisotropyMap,Q=q&&!!s.clearcoatMap,tt=q&&!!s.clearcoatNormalMap,et=q&&!!s.clearcoatRoughnessMap,nt=Y&&!!s.iridescenceMap,it=Y&&!!s.iridescenceThicknessMap,rt=Z&&!!s.sheenColorMap,st=Z&&!!s.sheenRoughnessMap,at=!!s.specularMap,ot=!!s.specularColorMap,lt=!!s.specularIntensityMap,ct=J&&!!s.transmissionMap,ht=J&&!!s.thicknessMap,ut=!!s.gradientMap,pt=!!s.alphaMap,mt=s.alphaTest>0,ft=!!s.alphaHash,gt=!!s.extensions,_t=!!y.attributes.uv1,vt=!!y.attributes.uv2,xt=!!y.attributes.uv3;let yt=$;return s.toneMapped&&(null!==I&&!0!==I.isXRRenderTarget||(yt=t.toneMapping)),{isWebGL2:h,shaderID:E,shaderType:s.type,shaderName:s.name,vertexShader:A,fragmentShader:R,defines:s.defines,customVertexShaderID:C,customFragmentShaderID:P,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:m,batching:N,instancing:U,instancingColor:U&&null!==v.instanceColor,supportsVertexTextures:p,outputColorSpace:null===I?t.outputColorSpace:!0===I.isXRRenderTarget?I.texture.colorSpace:Ye,map:D,matcap:O,envMap:F,envMapMode:F&&S.mapping,envMapCubeUVHeight:b,aoMap:B,lightMap:z,bumpMap:H,normalMap:V,displacementMap:p&&k,emissiveMap:G,normalMapObjectSpace:V&&1===s.normalMapType,normalMapTangentSpace:V&&0===s.normalMapType,metalnessMap:W,roughnessMap:X,anisotropy:j,anisotropyMap:K,clearcoat:q,clearcoatMap:Q,clearcoatNormalMap:tt,clearcoatRoughnessMap:et,iridescence:Y,iridescenceMap:nt,iridescenceThicknessMap:it,sheen:Z,sheenColorMap:rt,sheenRoughnessMap:st,specularMap:at,specularColorMap:ot,specularIntensityMap:lt,transmission:J,transmissionMap:ct,thicknessMap:ht,gradientMap:ut,opaque:!1===s.transparent&&1===s.blending,alphaMap:pt,alphaTest:mt,alphaHash:ft,combine:s.combine,mapUv:D&&g(s.map.channel),aoMapUv:B&&g(s.aoMap.channel),lightMapUv:z&&g(s.lightMap.channel),bumpMapUv:H&&g(s.bumpMap.channel),normalMapUv:V&&g(s.normalMap.channel),displacementMapUv:k&&g(s.displacementMap.channel),emissiveMapUv:G&&g(s.emissiveMap.channel),metalnessMapUv:W&&g(s.metalnessMap.channel),roughnessMapUv:X&&g(s.roughnessMap.channel),anisotropyMapUv:K&&g(s.anisotropyMap.channel),clearcoatMapUv:Q&&g(s.clearcoatMap.channel),clearcoatNormalMapUv:tt&&g(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:et&&g(s.clearcoatRoughnessMap.channel),iridescenceMapUv:nt&&g(s.iridescenceMap.channel),iridescenceThicknessMapUv:it&&g(s.iridescenceThicknessMap.channel),sheenColorMapUv:rt&&g(s.sheenColorMap.channel),sheenRoughnessMapUv:st&&g(s.sheenRoughnessMap.channel),specularMapUv:at&&g(s.specularMap.channel),specularColorMapUv:ot&&g(s.specularColorMap.channel),specularIntensityMapUv:lt&&g(s.specularIntensityMap.channel),transmissionMapUv:ct&&g(s.transmissionMap.channel),thicknessMapUv:ht&&g(s.thicknessMap.channel),alphaMapUv:pt&&g(s.alphaMap.channel),vertexTangents:!!y.attributes.tangent&&(V||j),vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!y.attributes.color&&4===y.attributes.color.itemSize,vertexUv1s:_t,vertexUv2s:vt,vertexUv3s:xt,pointsUvs:!0===v.isPoints&&!!y.attributes.uv&&(D||pt),fog:!!x,useFog:!0===s.fog,fogExp2:x&&x.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==y.morphAttributes.position,morphNormals:void 0!==y.morphAttributes.normal,morphColors:void 0!==y.morphAttributes.color,morphTargetsCount:w,morphTextureStride:L,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:yt,useLegacyLights:t._useLegacyLights,decodeVideoTexture:D&&!0===s.map.isVideoTexture&&mi.getTransfer(s.map.colorSpace)===$e,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:s.side===d,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:gt&&!0===s.extensions.derivatives,extensionFragDepth:gt&&!0===s.extensions.fragDepth,extensionDrawBuffers:gt&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:gt&&!0===s.extensions.shaderTextureLOD,extensionClipCullDistance:gt&&s.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.numLightProbes),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.isWebGL2&&o.enable(0);e.supportsVertexTextures&&o.enable(1);e.instancing&&o.enable(2);e.instancingColor&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);e.alphaHash&&o.enable(18);e.batching&&o.enable(19);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.useLegacyLights&&o.enable(10);e.doubleSided&&o.enable(11);e.flipSided&&o.enable(12);e.useDepthPacking&&o.enable(13);e.dithering&&o.enable(14);e.transmission&&o.enable(15);e.sheen&&o.enable(16);e.opaque&&o.enable(17);e.pointsUvs&&o.enable(18);e.decodeVideoTexture&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=f[t.type];let n;if(e){const t=_a[e];n=Ks.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=c.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)},unshift:function(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)},finish:function(){for(let n=e,i=t.length;n1&&n.sort(t||Al),i.length>1&&i.sort(e||Rl),r.length>1&&r.sort(e||Rl)}}}function Pl(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new Cl,t.set(e,[r])):n>=i.length?(r=new Cl,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function Ll(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Ui,color:new Kr};break;case"SpotLight":n={position:new Ui,direction:new Ui,color:new Kr,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Ui,color:new Kr,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Ui,skyColor:new Kr,groundColor:new Kr};break;case"RectAreaLight":n={color:new Kr,position:new Ui,halfWidth:new Ui,halfHeight:new Ui}}return t[e.id]=n,n}}}let Il=0;function Ul(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function Nl(t,e){const n=new Ll,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ti};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ti,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let t=0;t<9;t++)r.probe.push(new Ui);const s=new Ui,a=new cr,o=new cr;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,_=0,v=0,x=0,y=0;s.sort(Ul);const M=!0===a?Math.PI:1;for(let t=0,e=s.length;t0&&(e.isWebGL2?!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=ga.LTC_FLOAT_1,r.rectAreaLTC2=ga.LTC_FLOAT_2):(r.rectAreaLTC1=ga.LTC_HALF_1,r.rectAreaLTC2=ga.LTC_HALF_2):!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=ga.LTC_FLOAT_1,r.rectAreaLTC2=ga.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=ga.LTC_HALF_1,r.rectAreaLTC2=ga.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const S=r.hash;S.directionalLength===h&&S.pointLength===u&&S.spotLength===d&&S.rectAreaLength===p&&S.hemiLength===m&&S.numDirectionalShadows===f&&S.numPointShadows===g&&S.numSpotShadows===_&&S.numSpotMaps===v&&S.numLightProbes===y||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=_,r.spotShadowMap.length=_,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=_+v-x,r.spotLightMap.length=v,r.numSpotLightShadowsWithMaps=x,r.numLightProbes=y,S.directionalLength=h,S.pointLength=u,S.spotLength=d,S.rectAreaLength=p,S.hemiLength=m,S.numDirectionalShadows=f,S.numPointShadows=g,S.numSpotShadows=_,S.numSpotMaps=v,S.numLightProbes=y,r.version=Il++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e=s.length?(a=new Dl(t,e),s.push(a)):a=s[r],a},dispose:function(){n=new WeakMap}}}class Fl extends ts{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class Bl extends ts{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function zl(t,e,n){let i=new ua;const r=new ti,s=new ti,a=new Ei,o=new Fl({depthPacking:3201}),c=new Bl,p={},m=n.maxTextureSize,f={[u]:d,[d]:u,2:2},g=new $s({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ti},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),_=g.clone();_.defines.HORIZONTAL_PASS=1;const v=new As;v.setAttribute("position",new cs(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new Xs(v,g),y=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=l;let M=this.type;function S(n,i){const s=e.update(x);g.defines.VSM_SAMPLES!==n.blurSamples&&(g.defines.VSM_SAMPLES=n.blurSamples,_.defines.VSM_SAMPLES=n.blurSamples,g.needsUpdate=!0,_.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new wi(r.x,r.y)),g.uniforms.shadow_pass.value=n.map.texture,g.uniforms.resolution.value=n.mapSize,g.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,g,x,null),_.uniforms.shadow_pass.value=n.mapPass.texture,_.uniforms.resolution.value=n.mapSize,_.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,_,x,null)}function b(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?c:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=p[t];void 0===i&&(i={},p[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r,n.addEventListener("dispose",T)),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===h?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:f[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function E(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===h)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),l=n.material;if(Array.isArray(l)){const e=i.groups;for(let c=0,h=e.length;cm||r.y>m)&&(r.x>m&&(s.x=Math.floor(m/g.x),r.x=s.x*g.x,u.mapSize.x=s.x),r.y>m&&(s.y=Math.floor(m/g.y),r.y=s.y*g.y,u.mapSize.y=s.y)),null===u.map||!0===p||!0===f){const t=this.type!==h?{minFilter:gt,magFilter:gt}:{};null!==u.map&&u.map.dispose(),u.map=new wi(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const _=u.getViewportCount();for(let t=0;t<_;t++){const e=u.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),u.updateMatrices(c,t),i=u.getFrustum(),E(n,o,u.camera,c,this.type)}!0!==u.isPointLightShadow&&this.type===h&&S(u,o),u.needsUpdate=!1}M=this.type,y.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function Hl(t,e,n){const i=n.isWebGL2;const r=new function(){let e=!1;const n=new Ei;let i=null;const r=new Ei(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},s=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(e){e?j(t.DEPTH_TEST):q(t.DEPTH_TEST)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){switch(e){case 0:t.depthFunc(t.NEVER);break;case 1:t.depthFunc(t.ALWAYS);break;case 2:t.depthFunc(t.LESS);break;case 3:default:t.depthFunc(t.LEQUAL);break;case 4:t.depthFunc(t.EQUAL);break;case 5:t.depthFunc(t.GEQUAL);break;case 6:t.depthFunc(t.GREATER);break;case 7:t.depthFunc(t.NOTEQUAL)}i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},a=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null;return{setTest:function(n){e||(n?j(t.STENCIL_TEST):q(t.STENCIL_TEST))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&l===i||(t.stencilOp(e,n,i),a=e,o=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null}}},o=new WeakMap,l=new WeakMap;let c={},h={},u=new WeakMap,p=[],m=null,f=!1,g=null,_=null,v=null,x=null,y=null,S=null,b=null,E=new Kr(0,0,0),T=0,w=!1,A=null,R=null,C=null,I=null,U=null;const N=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let D=!1,O=0;const F=t.getParameter(t.VERSION);-1!==F.indexOf("WebGL")?(O=parseFloat(/^WebGL (\d)/.exec(F)[1]),D=O>=1):-1!==F.indexOf("OpenGL ES")&&(O=parseFloat(/^OpenGL ES (\d)/.exec(F)[1]),D=O>=2);let B=null,z={};const H=t.getParameter(t.SCISSOR_BOX),V=t.getParameter(t.VIEWPORT),k=(new Ei).fromArray(H),G=(new Ei).fromArray(V);function W(e,n,r,s){const a=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;oi||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Jn:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===u&&(u=m(s,a));const o=n?m(s,a):u;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function g(t){return Zn(t.width)&&Zn(t.height)}function _(t,e){return t.generateMipmaps&&e&&t.minFilter!==gt&&t.minFilter!==Mt}function v(e){t.generateMipmap(e)}function x(n,i,r,s,a=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;if(i===t.RED&&(r===t.FLOAT&&(l=t.R32F),r===t.HALF_FLOAT&&(l=t.R16F),r===t.UNSIGNED_BYTE&&(l=t.R8)),i===t.RED_INTEGER&&(r===t.UNSIGNED_BYTE&&(l=t.R8UI),r===t.UNSIGNED_SHORT&&(l=t.R16UI),r===t.UNSIGNED_INT&&(l=t.R32UI),r===t.BYTE&&(l=t.R8I),r===t.SHORT&&(l=t.R16I),r===t.INT&&(l=t.R32I)),i===t.RG&&(r===t.FLOAT&&(l=t.RG32F),r===t.HALF_FLOAT&&(l=t.RG16F),r===t.UNSIGNED_BYTE&&(l=t.RG8)),i===t.RGBA){const e=a?Ke:mi.getTransfer(s);r===t.FLOAT&&(l=t.RGBA32F),r===t.HALF_FLOAT&&(l=t.RGBA16F),r===t.UNSIGNED_BYTE&&(l=e===$e?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(l=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(l=t.RGB5_A1)}return l!==t.R16F&&l!==t.R32F&&l!==t.RG16F&&l!==t.RG32F&&l!==t.RGBA16F&&l!==t.RGBA32F||e.get("EXT_color_buffer_float"),l}function y(t,e,n){return!0===_(t,n)||t.isFramebufferTexture&&t.minFilter!==gt&&t.minFilter!==Mt?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function M(e){return e===gt||e===_t||e===xt?t.NEAREST:t.LINEAR}function S(t){const e=t.target;e.removeEventListener("dispose",S),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=d.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&E(t),0===Object.keys(r).length&&d.delete(n)}i.remove(t)}(e),e.isVideoTexture&&h.delete(e)}function b(e){const n=e.target;n.removeEventListener("dispose",b),function(e){const n=e.texture,r=i.get(e),s=i.get(n);void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++){if(Array.isArray(r.__webglFramebuffer[e]))for(let n=0;n0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void I(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const A={[pt]:t.REPEAT,[mt]:t.CLAMP_TO_EDGE,[ft]:t.MIRRORED_REPEAT},R={[gt]:t.NEAREST,[_t]:t.NEAREST_MIPMAP_NEAREST,[xt]:t.NEAREST_MIPMAP_LINEAR,[Mt]:t.LINEAR,[St]:t.LINEAR_MIPMAP_NEAREST,[Et]:t.LINEAR_MIPMAP_LINEAR},C={512:t.NEVER,519:t.ALWAYS,513:t.LESS,515:t.LEQUAL,514:t.EQUAL,518:t.GEQUAL,516:t.GREATER,517:t.NOTEQUAL};function P(n,s,a){if(a?(t.texParameteri(n,t.TEXTURE_WRAP_S,A[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,A[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,A[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,R[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,R[s.minFilter])):(t.texParameteri(n,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(n,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),s.wrapS===mt&&s.wrapT===mt||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,t.TEXTURE_MAG_FILTER,M(s.magFilter)),t.texParameteri(n,t.TEXTURE_MIN_FILTER,M(s.minFilter)),s.minFilter!==gt&&s.minFilter!==Mt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,C[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.magFilter===gt)return;if(s.minFilter!==xt&&s.minFilter!==Et)return;if(s.type===It&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===Ut&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function L(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",S));const r=n.source;let s=d.get(r);void 0===s&&(s={},d.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&E(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function I(e,a,l){let c=t.TEXTURE_2D;(a.isDataArrayTexture||a.isCompressedArrayTexture)&&(c=t.TEXTURE_2D_ARRAY),a.isData3DTexture&&(c=t.TEXTURE_3D);const h=L(e,a),u=a.source;n.bindTexture(c,e.__webglTexture,t.TEXTURE0+l);const d=i.get(u);if(u.version!==d.__version||!0===h){n.activeTexture(t.TEXTURE0+l);const e=mi.getPrimaries(mi.workingColorSpace),i=a.colorSpace===je?null:mi.getPrimaries(a.colorSpace),p=a.colorSpace===je||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,p);const m=function(t){return!o&&(t.wrapS!==mt||t.wrapT!==mt||t.minFilter!==gt&&t.minFilter!==Mt)}(a)&&!1===g(a.image);let M=f(a.image,m,!1,r.maxTextureSize);M=B(a,M);const S=g(M)||o,b=s.convert(a.format,a.colorSpace);let E,T=s.convert(a.type),w=x(a.internalFormat,b,T,a.colorSpace,a.isVideoTexture);P(c,a,S);const A=a.mipmaps,R=o&&!0!==a.isVideoTexture&&w!==ne,C=void 0===d.__version||!0===h,L=y(a,M,S);if(a.isDepthTexture)w=t.DEPTH_COMPONENT,o?w=a.type===It?t.DEPTH_COMPONENT32F:a.type===Lt?t.DEPTH_COMPONENT24:a.type===Ot?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT16:a.type===It&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),a.format===Vt&&w===t.DEPTH_COMPONENT&&a.type!==Ct&&a.type!==Lt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),a.type=Lt,T=s.convert(a.type)),a.format===kt&&w===t.DEPTH_COMPONENT&&(w=t.DEPTH_STENCIL,a.type!==Ot&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),a.type=Ot,T=s.convert(a.type))),C&&(R?n.texStorage2D(t.TEXTURE_2D,1,w,M.width,M.height):n.texImage2D(t.TEXTURE_2D,0,w,M.width,M.height,0,b,T,null));else if(a.isDataTexture)if(A.length>0&&S){R&&C&&n.texStorage2D(t.TEXTURE_2D,L,w,A[0].width,A[0].height);for(let e=0,i=A.length;e>=1,i>>=1}}else if(A.length>0&&S){R&&C&&n.texStorage2D(t.TEXTURE_2D,L,w,A[0].width,A[0].height);for(let e=0,i=A.length;e>h),i=Math.max(1,r.height>>h);c===t.TEXTURE_3D||c===t.TEXTURE_2D_ARRAY?n.texImage3D(c,h,p,e,i,r.depth,0,u,d,null):n.texImage2D(c,h,p,e,i,0,u,d,null)}n.bindFramebuffer(t.FRAMEBUFFER,e),F(r)?l.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,o,c,i.get(a).__webglTexture,0,O(r)):(c===t.TEXTURE_2D||c>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&c<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,o,c,i.get(a).__webglTexture,h),n.bindFramebuffer(t.FRAMEBUFFER,null)}function N(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer&&!n.stencilBuffer){let r=!0===o?t.DEPTH_COMPONENT24:t.DEPTH_COMPONENT16;if(i||F(n)){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===It?r=t.DEPTH_COMPONENT32F:e.type===Lt&&(r=t.DEPTH_COMPONENT24));const i=O(n);F(n)?l.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,i,r,n.width,n.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,i,r,n.width,n.height)}else t.renderbufferStorage(t.RENDERBUFFER,r,n.width,n.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)}else if(n.depthBuffer&&n.stencilBuffer){const r=O(n);i&&!1===F(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):F(n)?l.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,r,t.DEPTH24_STENCIL8,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let r=0;r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function B(t,n){const i=t.colorSpace,r=t.format,s=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===Fn||i!==Ye&&i!==je&&(mi.getTransfer(i)===$e?!1===o?!0===e.has("EXT_sRGB")&&r===Bt?(t.format=Fn,t.minFilter=Mt,t.generateMipmaps=!1):n=vi.sRGBToLinear(n):r===Bt&&s===wt||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",i)),n}this.allocateTextureUnit=function(){const t=T;return t>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+r.maxTextures),T+=1,t},this.resetTextureUnits=function(){T=0},this.setTexture2D=w,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?I(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?I(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,a){const l=i.get(e);e.version>0&&l.__version!==e.version?function(e,a,l){if(6!==a.image.length)return;const c=L(e,a),h=a.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+l);const u=i.get(h);if(h.version!==u.__version||!0===c){n.activeTexture(t.TEXTURE0+l);const e=mi.getPrimaries(mi.workingColorSpace),i=a.colorSpace===je?null:mi.getPrimaries(a.colorSpace),d=a.colorSpace===je||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);const p=a.isCompressedTexture||a.image[0].isCompressedTexture,m=a.image[0]&&a.image[0].isDataTexture,M=[];for(let t=0;t<6;t++)M[t]=p||m?m?a.image[t].image:a.image[t]:f(a.image[t],!1,!0,r.maxCubemapSize),M[t]=B(a,M[t]);const S=M[0],b=g(S)||o,E=s.convert(a.format,a.colorSpace),T=s.convert(a.type),w=x(a.internalFormat,E,T,a.colorSpace),A=o&&!0!==a.isVideoTexture,R=void 0===u.__version||!0===c;let C,L=y(a,S,b);if(P(t.TEXTURE_CUBE_MAP,a,b),p){A&&R&&n.texStorage2D(t.TEXTURE_CUBE_MAP,L,w,S.width,S.height);for(let e=0;e<6;e++){C=M[e].mipmaps;for(let i=0;i0&&L++,n.texStorage2D(t.TEXTURE_CUBE_MAP,L,w,M[0].width,M[0].height));for(let e=0;e<6;e++)if(m){A?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,M[e].width,M[e].height,E,T,M[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,w,M[e].width,M[e].height,0,E,T,M[e].data);for(let i=0;i0){c.__webglFramebuffer[e]=[];for(let n=0;n0){c.__webglFramebuffer=[];for(let e=0;e0&&!1===F(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0)for(let i=0;i0)for(let n=0;n0&&!1===F(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=[],h=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,u=i.get(e),d=!0===e.isWebGLMultipleRenderTargets;if(d)for(let e=0;eo+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Xl)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new Wl;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}class ql extends Hn{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let f=null,g=null;const _=[],v=[],x=new ti;let y=null;const M=new ta;M.layers.enable(1),M.viewport=new Ei;const S=new ta;S.layers.enable(2),S.viewport=new Ei;const b=[M,S],E=new Gl;E.layers.enable(1),E.layers.enable(2);let T=null,w=null;function A(t){const e=v.indexOf(t.inputSource);if(-1===e)return;const n=_[e];void 0!==n&&(n.update(t.inputSource,t.frame,l||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function R(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",R),i.removeEventListener("inputsourceschange",C);for(let t=0;t<_.length;t++){const e=v[t];null!==e&&(v[t]=null,_[t].disconnect(e))}T=null,w=null,t.setRenderTarget(f),d=null,u=null,h=null,i=null,g=null,N.stop(),n.isPresenting=!1,t.setPixelRatio(y),t.setSize(x.width,x.height,!1),n.dispatchEvent({type:"sessionend"})}function C(t){for(let e=0;e=0&&(v[i]=null,_[i].disconnect(n))}for(let e=0;e=v.length){v.push(n),i=t;break}if(null===v[t]){v[t]=n,i=t;break}}if(-1===i)break}const r=_[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=_[t];return void 0===e&&(e=new jl,_[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=_[t];return void 0===e&&(e=new jl,_[t]=e),e.getGripSpace()},this.getHand=function(t){let e=_[t];return void 0===e&&(e=new jl,_[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(t){l=t},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(c){if(i=c,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",A),i.addEventListener("selectstart",A),i.addEventListener("selectend",A),i.addEventListener("squeeze",A),i.addEventListener("squeezestart",A),i.addEventListener("squeezeend",A),i.addEventListener("end",R),i.addEventListener("inputsourceschange",C),!0!==m.xrCompatible&&await e.makeXRCompatible(),y=t.getPixelRatio(),t.getSize(x),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),t.setPixelRatio(1),t.setSize(d.framebufferWidth,d.framebufferHeight,!1),g=new wi(d.framebufferWidth,d.framebufferHeight,{format:Bt,type:wt,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?kt:Vt,s=m.stencil?Ot:Lt);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};h=new XRWebGLBinding(i,e),u=h.createProjectionLayer(o),i.updateRenderState({layers:[u]}),t.setPixelRatio(1),t.setSize(u.textureWidth,u.textureHeight,!1),g=new wi(u.textureWidth,u.textureHeight,{format:Bt,type:wt,depthTexture:new Ka(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0});t.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await i.requestReferenceSpace(a),N.setContext(i),N.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode};const P=new Ui,L=new Ui;function I(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;E.near=S.near=M.near=t.near,E.far=S.far=M.far=t.far,T===E.near&&w===E.far||(i.updateRenderState({depthNear:E.near,depthFar:E.far}),T=E.near,w=E.far);const e=t.parent,n=E.cameras;I(E,e);for(let t=0;t0&&(i.alphaTest.value=r.alphaTest);const s=e.get(r).envMap;if(s&&(i.envMap.value=s,i.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const e=!0===t._useLegacyLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*e,n(r.lightMap,i.lightMapTransform)}r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity,n(r.aoMap,i.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,Js(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,i){t.metalness.value=i.metalness,i.metalnessMap&&(t.metalnessMap.value=i.metalnessMap,n(i.metalnessMap,t.metalnessMapTransform));t.roughness.value=i.roughness,i.roughnessMap&&(t.roughnessMap.value=i.roughnessMap,n(i.roughnessMap,t.roughnessMapTransform));const r=e.get(i).envMap;r&&(t.envMapIntensity.value=i.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===d&&t.clearcoatNormalScale.value.negate()));e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap,n(e.anisotropyMap,t.anisotropyMapTransform)));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform));e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform));e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function Zl(t,e,n,i){let r={},s={},a=[];const o=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(t,e,n,i){const r=t.value,s=e+"_"+n;if(void 0===i[s])return i[s]="number"==typeof r||"boolean"==typeof r?r:r.clone(),!0;{const t=i[s];if("number"==typeof r||"boolean"==typeof r){if(t!==r)return i[s]=r,!0}else if(!1===t.equals(r))return t.copy(r),!0}return!1}function c(t){const e={boundary:0,storage:0};return"number"==typeof t||"boolean"==typeof t?(e.boundary=4,e.storage=4):t.isVector2?(e.boundary=8,e.storage=8):t.isVector3||t.isColor?(e.boundary=16,e.storage=12):t.isVector4?(e.boundary=16,e.storage=16):t.isMatrix3?(e.boundary=48,e.storage=48):t.isMatrix4?(e.boundary=64,e.storage=64):t.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",t),e}function h(e){const n=e.target;n.removeEventListener("dispose",h);const i=a.indexOf(n.__bindingPointIndex);a.splice(i,1),t.deleteBuffer(r[n.id]),delete r[n.id],delete s[n.id]}return{bind:function(t,e){const n=e.program;i.uniformBlockBinding(t,n)},update:function(n,u){let d=r[n.id];void 0===d&&(!function(t){const e=t.uniforms;let n=0;const i=16;for(let t=0,r=e.length;t0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t0),u=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color;let m=$;i.toneMapped&&(null!==T&&!0!==T.isXRRenderTarget||(m=M.toneMapping));const f=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,g=void 0!==f?f.length:0,_=et.get(i),x=v.state.lights;if(!0===k&&(!0===G||t!==A)){const e=t===A&&i.id===w;dt.setState(i,t,e)}let y=!1;i.version===_.__version?_.needsLights&&_.lightsStateVersion!==x.state.version||_.outputColorSpace!==o||r.isBatchedMesh&&!1===_.batching?y=!0:r.isBatchedMesh||!0!==_.batching?r.isInstancedMesh&&!1===_.instancing?y=!0:r.isInstancedMesh||!0!==_.instancing?r.isSkinnedMesh&&!1===_.skinning?y=!0:r.isSkinnedMesh||!0!==_.skinning?r.isInstancedMesh&&!0===_.instancingColor&&null===r.instanceColor||r.isInstancedMesh&&!1===_.instancingColor&&null!==r.instanceColor||_.envMap!==l||!0===i.fog&&_.fog!==s?y=!0:void 0===_.numClippingPlanes||_.numClippingPlanes===dt.numPlanes&&_.numIntersection===dt.numIntersection?(_.vertexAlphas!==c||_.vertexTangents!==h||_.morphTargets!==u||_.morphNormals!==d||_.morphColors!==p||_.toneMapping!==m||!0===K.isWebGL2&&_.morphTargetsCount!==g)&&(y=!0):y=!0:y=!0:y=!0:y=!0:(y=!0,_.__version=i.version);let S=_.currentProgram;!0===y&&(S=Kt(i,e,r));let b=!1,E=!1,R=!1;const C=S.getUniforms(),P=_.uniforms;Q.useProgram(S.program)&&(b=!0,E=!0,R=!0);i.id!==w&&(w=i.id,E=!0);if(b||A!==t){C.setValue(Mt,"projectionMatrix",t.projectionMatrix),C.setValue(Mt,"viewMatrix",t.matrixWorldInverse);const e=C.map.cameraPosition;void 0!==e&&e.setValue(Mt,q.setFromMatrixPosition(t.matrixWorld)),K.logarithmicDepthBuffer&&C.setValue(Mt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&C.setValue(Mt,"isOrthographic",!0===t.isOrthographicCamera),A!==t&&(A=t,E=!0,R=!0)}if(r.isSkinnedMesh){C.setOptional(Mt,r,"bindMatrix"),C.setOptional(Mt,r,"bindMatrixInverse");const t=r.skeleton;t&&(K.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),C.setValue(Mt,"boneTexture",t.boneTexture,nt)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}r.isBatchedMesh&&(C.setOptional(Mt,r,"batchingTexture"),C.setValue(Mt,"batchingTexture",r._matricesTexture,nt));const L=n.morphAttributes;(void 0!==L.position||void 0!==L.normal||void 0!==L.color&&!0===K.isWebGL2)&&ft.update(r,n,S);(E||_.receiveShadow!==r.receiveShadow)&&(_.receiveShadow=r.receiveShadow,C.setValue(Mt,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(P.envMap.value=l,P.flipEnvMap.value=l.isCubeTexture&&!1===l.isRenderTargetTexture?-1:1);E&&(C.setValue(Mt,"toneMappingExposure",M.toneMappingExposure),_.needsLights&&(U=R,(I=P).ambientLightColor.needsUpdate=U,I.lightProbe.needsUpdate=U,I.directionalLights.needsUpdate=U,I.directionalLightShadows.needsUpdate=U,I.pointLights.needsUpdate=U,I.pointLightShadows.needsUpdate=U,I.spotLights.needsUpdate=U,I.spotLightShadows.needsUpdate=U,I.rectAreaLights.needsUpdate=U,I.hemisphereLights.needsUpdate=U),s&&!0===i.fog&&ct.refreshFogUniforms(P,s),ct.refreshMaterialUniforms(P,i,D,N,W),il.upload(Mt,$t(_),P,nt));var I,U;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(il.upload(Mt,$t(_),P,nt),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&C.setValue(Mt,"center",r.center);if(C.setValue(Mt,"modelViewMatrix",r.modelViewMatrix),C.setValue(Mt,"normalMatrix",r.normalMatrix),C.setValue(Mt,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e{function n(){i.forEach((function(t){et.get(t).currentProgram.isReady()&&i.delete(t)})),0!==i.size?setTimeout(n,10):e(t)}null!==J.get("KHR_parallel_shader_compile")?n():setTimeout(n,10)}))};let Ht=null;function Vt(){Gt.stop()}function kt(){Gt.start()}const Gt=new da;function Xt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)v.pushLight(t),t.castShadow&&v.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||V.intersectsSprite(t)){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(X);const e=ot.update(t),r=t.material;r.visible&&_.push(t,e,r,n,q.z,null)}}else if((t.isMesh||t.isLine||t.isPoints)&&(!t.frustumCulled||V.intersectsObject(t))){const e=ot.update(t),r=t.material;if(i&&(void 0!==t.boundingSphere?(null===t.boundingSphere&&t.computeBoundingSphere(),q.copy(t.boundingSphere.center)):(null===e.boundingSphere&&e.computeBoundingSphere(),q.copy(e.boundingSphere.center)),q.applyMatrix4(t.matrixWorld).applyMatrix4(X)),Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s0&&function(t,e,n,i){const r=!0===n.isScene?n.overrideMaterial:null;if(null!==r)return;const s=K.isWebGL2;null===W&&(W=new wi(1,1,{generateMipmaps:!0,type:J.has("EXT_color_buffer_half_float")?Ut:wt,minFilter:Et,samples:s?4:0}));M.getDrawingBufferSize(j),s?W.setSize(j.x,j.y):W.setSize(Jn(j.x),Jn(j.y));const a=M.getRenderTarget();M.setRenderTarget(W),M.getClearColor(L),I=M.getClearAlpha(),I<1&&M.setClearColor(16777215,.5);M.clear();const o=M.toneMapping;M.toneMapping=$,Zt(t,n,i),nt.updateMultisampleRenderTarget(W),nt.updateRenderTargetMipmap(W);let l=!1;for(let t=0,r=e.length;t0&&Zt(r,e,n),s.length>0&&Zt(s,e,n),a.length>0&&Zt(a,e,n),Q.buffers.depth.setTest(!0),Q.buffers.depth.setMask(!0),Q.buffers.color.setMask(!0),Q.setPolygonOffset(!1)}function Zt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r0?y[y.length-1]:null,x.pop(),_=x.length>0?x[x.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return E},this.getRenderTarget=function(){return T},this.setRenderTargetTextures=function(t,e,n){et.get(t.texture).__webglTexture=e,et.get(t.depthTexture).__webglTexture=n;const i=et.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===J.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=et.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){T=t,b=e,E=n;let i=!0,r=null,s=!1,a=!1;if(t){const o=et.get(t);void 0!==o.__useDefaultFramebuffer?(Q.bindFramebuffer(Mt.FRAMEBUFFER,null),i=!1):void 0===o.__webglFramebuffer?nt.setupRenderTarget(t):o.__hasExternalTextures&&nt.rebindTextures(t,et.get(t.texture).__webglTexture,et.get(t.depthTexture).__webglTexture);const l=t.texture;(l.isData3DTexture||l.isDataArrayTexture||l.isCompressedArrayTexture)&&(a=!0);const c=et.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=Array.isArray(c[e])?c[e][n]:c[e],s=!0):r=K.isWebGL2&&t.samples>0&&!1===nt.useMultisampledRTT(t)?et.get(t).__webglMultisampledFramebuffer:Array.isArray(c)?c[n]:c,R.copy(t.viewport),C.copy(t.scissor),P=t.scissorTest}else R.copy(B).multiplyScalar(D).floor(),C.copy(z).multiplyScalar(D).floor(),P=H;if(Q.bindFramebuffer(Mt.FRAMEBUFFER,r)&&K.drawBuffers&&i&&Q.drawBuffers(t,r),Q.viewport(R),Q.scissor(C),Q.setScissorTest(P),s){const i=et.get(t.texture);Mt.framebufferTexture2D(Mt.FRAMEBUFFER,Mt.COLOR_ATTACHMENT0,Mt.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=et.get(t.texture),r=e||0;Mt.framebufferTextureLayer(Mt.FRAMEBUFFER,Mt.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}w=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=et.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Q.bindFramebuffer(Mt.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==Bt&&vt.convert(o)!==Mt.getParameter(Mt.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Ut&&(J.has("EXT_color_buffer_half_float")||K.isWebGL2&&J.has("EXT_color_buffer_float"));if(!(l===wt||vt.convert(l)===Mt.getParameter(Mt.IMPLEMENTATION_COLOR_READ_TYPE)||l===It&&(K.isWebGL2||J.has("OES_texture_float")||J.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&Mt.readPixels(e,n,i,r,vt.convert(o),vt.convert(l),s)}finally{const t=null!==T?et.get(T).__webglFramebuffer:null;Q.bindFramebuffer(Mt.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);nt.setTexture2D(e,0),Mt.copyTexSubImage2D(Mt.TEXTURE_2D,n,0,0,t.x,t.y,r,s),Q.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=vt.convert(n.format),o=vt.convert(n.type);nt.setTexture2D(n,0),Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL,n.flipY),Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Mt.pixelStorei(Mt.UNPACK_ALIGNMENT,n.unpackAlignment),e.isDataTexture?Mt.texSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?Mt.compressedTexSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):Mt.texSubImage2D(Mt.TEXTURE_2D,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&Mt.generateMipmap(Mt.TEXTURE_2D),Q.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(M.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=vt.convert(i.format),c=vt.convert(i.type);let h;if(i.isData3DTexture)nt.setTexture3D(i,0),h=Mt.TEXTURE_3D;else{if(!i.isDataArrayTexture&&!i.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");nt.setTexture2DArray(i,0),h=Mt.TEXTURE_2D_ARRAY}Mt.pixelStorei(Mt.UNPACK_FLIP_Y_WEBGL,i.flipY),Mt.pixelStorei(Mt.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),Mt.pixelStorei(Mt.UNPACK_ALIGNMENT,i.unpackAlignment);const u=Mt.getParameter(Mt.UNPACK_ROW_LENGTH),d=Mt.getParameter(Mt.UNPACK_IMAGE_HEIGHT),p=Mt.getParameter(Mt.UNPACK_SKIP_PIXELS),m=Mt.getParameter(Mt.UNPACK_SKIP_ROWS),f=Mt.getParameter(Mt.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[r]:n.image;Mt.pixelStorei(Mt.UNPACK_ROW_LENGTH,g.width),Mt.pixelStorei(Mt.UNPACK_IMAGE_HEIGHT,g.height),Mt.pixelStorei(Mt.UNPACK_SKIP_PIXELS,t.min.x),Mt.pixelStorei(Mt.UNPACK_SKIP_ROWS,t.min.y),Mt.pixelStorei(Mt.UNPACK_SKIP_IMAGES,t.min.z),n.isDataTexture||n.isData3DTexture?Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Mt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):Mt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),Mt.pixelStorei(Mt.UNPACK_ROW_LENGTH,u),Mt.pixelStorei(Mt.UNPACK_IMAGE_HEIGHT,d),Mt.pixelStorei(Mt.UNPACK_SKIP_PIXELS,p),Mt.pixelStorei(Mt.UNPACK_SKIP_ROWS,m),Mt.pixelStorei(Mt.UNPACK_SKIP_IMAGES,f),0===r&&i.generateMipmaps&&Mt.generateMipmap(h),Q.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?nt.setTextureCube(t,0):t.isData3DTexture?nt.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?nt.setTexture2DArray(t,0):nt.setTexture2D(t,0),Q.unbindTexture()},this.resetState=function(){b=0,E=0,T=null,Q.reset(),xt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Bn}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===Ze?"display-p3":"srgb",e.unpackColorSpace=mi.workingColorSpace===Je?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===qe?Ve:He}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Ve?qe:Ye}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Kl extends Jl{}Kl.prototype.isWebGL1Renderer=!0;class $l{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Kr(t),this.density=e}clone(){return new $l(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Ql{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Kr(t),this.near=e,this.far=n}clone(){return new Ql(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class tc extends Nr{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class ec{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=wn,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Xn()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return console.warn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:ac.clone(),uv:jr.getInterpolation(ac,dc,pc,mc,fc,gc,_c,new ti),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function xc(t,e,n,i,r,s){cc.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(hc.x=s*cc.x-r*cc.y,hc.y=r*cc.x+s*cc.y):hc.copy(cc),t.copy(e),t.x+=hc.x,t.y+=hc.y,t.applyMatrix4(uc)}const yc=new Ui,Mc=new Ui;class Sc extends Nr{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t0){let n,i;for(n=1,i=e.length;n0){yc.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(yc);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){yc.setFromMatrixPosition(t.matrixWorld),Mc.setFromMatrixPosition(this.matrixWorld);const n=yc.distanceTo(Mc)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;i=n.length&&n.push({start:-1,count:-1,z:-1});const r=n[this.index];i.push(r),this.index++,r.start=t.start,r.count=t.count,r.z=e}reset(){this.list.length=0,this.index=0}}const Jc="batchId",Kc=new cr,$c=new cr,Qc=new cr,th=new cr,eh=new ua,nh=new Oi,ih=new tr,rh=new Ui,sh=new Zc,ah=new Xs,oh=[];function lh(t,e,n=0){const i=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let s=0;s65536?new Uint32Array(r):new Uint16Array(r);e.setIndex(new cs(t,1))}const s=i>65536?new Uint32Array(n):new Uint16Array(n);e.setAttribute(Jc,new cs(s,1)),this._geometryInitialized=!0}}_validateGeometry(t){if(t.getAttribute(Jc))throw new Error(`BatchedMesh: Geometry cannot use attribute "${Jc}"`);const e=this.geometry;if(Boolean(t.getIndex())!==Boolean(e.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const n in e.attributes){if(n===Jc)continue;if(!t.hasAttribute(n))throw new Error(`BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const i=t.getAttribute(n),r=e.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(t){return this.customSort=t,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Oi);const t=this._geometryCount,e=this.boundingBox,n=this._active;e.makeEmpty();for(let i=0;i=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const i={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let r=null;const s=this._reservedRanges,a=this._drawRanges,o=this._bounds;0!==this._geometryCount&&(r=s[s.length-1]),i.vertexCount=-1===e?t.getAttribute("position").count:e,i.vertexStart=null===r?0:r.vertexStart+r.vertexCount;const l=t.getIndex(),c=null!==l;if(c&&(i.indexCount=-1===n?l.count:n,i.indexStart=null===r?0:r.indexStart+r.indexCount),-1!==i.indexStart&&i.indexStart+i.indexCount>this._maxIndexCount||i.vertexStart+i.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const h=this._visibility,u=this._active,d=this._matricesTexture,p=this._matricesTexture.image.data;h.push(!0),u.push(!0);const m=this._geometryCount;this._geometryCount++,Qc.toArray(p,16*m),d.needsUpdate=!0,s.push(i),a.push({start:c?i.indexStart:i.vertexStart,count:-1}),o.push({boxInitialized:!1,box:new Oi,sphereInitialized:!1,sphere:new tr});const f=this.geometry.getAttribute(Jc);for(let t=0;t=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(e);const n=this.geometry,i=null!==n.getIndex(),r=n.getIndex(),s=e.getIndex(),a=this._reservedRanges[t];if(i&&s.count>a.indexCount||e.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const o=a.vertexStart,l=a.vertexCount;for(const t in n.attributes){if(t===Jc)continue;const i=e.getAttribute(t),r=n.getAttribute(t);lh(i,r,o);const s=i.itemSize;for(let t=i.count,e=l;t=e.length||!1===e[t]||(e[t]=!1,this._visibilityChanged=!0),this}getBoundingBoxAt(t,e){if(!1===this._active[t])return this;const n=this._bounds[t],i=n.box,r=this.geometry;if(!1===n.boxInitialized){i.makeEmpty();const e=r.index,s=r.attributes.position,a=this._drawRanges[t];for(let t=a.start,n=a.start+a.count;t=this._geometryCount||!1===n[t]||(e.toArray(r,16*t),i.needsUpdate=!0),this}getMatrixAt(t,e){const n=this._active,i=this._matricesTexture.image.data;return t>=this._geometryCount||!1===n[t]?null:e.fromArray(i,16*t)}setVisibleAt(t,e){const n=this._visibility,i=this._active;return t>=this._geometryCount||!1===i[t]||n[t]===e||(n[t]=e,this._visibilityChanged=!0),this}getVisibleAt(t){const e=this._visibility,n=this._active;return!(t>=this._geometryCount||!1===n[t])&&e[t]}raycast(t,e){const n=this._visibility,i=this._active,r=this._drawRanges,s=this._geometryCount,a=this.matrixWorld,o=this.geometry;ah.material=this.material,ah.geometry.index=o.index,ah.geometry.attributes=o.attributes,null===ah.geometry.boundingBox&&(ah.geometry.boundingBox=new Oi),null===ah.geometry.boundingSphere&&(ah.geometry.boundingSphere=new tr);for(let o=0;o({...t}))),this._reservedRanges=t._reservedRanges.map((t=>({...t}))),this._visibility=t._visibility.slice(),this._active=t._active.slice(),this._bounds=t._bounds.map((t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()}))),this._maxGeometryCount=t._maxGeometryCount,this._maxVertexCount=t._maxVertexCount,this._maxIndexCount=t._maxIndexCount,this._geometryInitialized=t._geometryInitialized,this._geometryCount=t._geometryCount,this._multiDrawCounts=t._multiDrawCounts.slice(),this._multiDrawStarts=t._multiDrawStarts.slice(),this._matricesTexture=t._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(t,e,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=i.getIndex(),a=null===s?1:s.array.BYTES_PER_ELEMENT,o=this._visibility,l=this._multiDrawStarts,c=this._multiDrawCounts,h=this._drawRanges,u=this.perObjectFrustumCulled;u&&(th.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),eh.setFromProjectionMatrix(th,t.isWebGPURenderer?zn:Bn));let d=0;if(this.sortObjects){$c.copy(this.matrixWorld).invert(),rh.setFromMatrixPosition(n.matrixWorld).applyMatrix4($c);for(let t=0,e=o.length;to)continue;u.applyMatrix4(this.matrixWorld);const s=t.ray.origin.distanceTo(u);st.far||e.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(m.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);it.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;tr.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class Rh extends bi{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:Mt,this.magFilter=void 0!==r?r:Mt,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Ch extends bi{constructor(t,e){super({width:t,height:e}),this.isFramebufferTexture=!0,this.magFilter=gt,this.minFilter=gt,this.generateMipmaps=!1,this.needsUpdate=!0}}class Ph extends bi{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class Lh extends Ph{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=mt}}class Ih extends Ph{constructor(t,e,n){super(void 0,t[0].width,t[0].height,e,n,lt),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=t}}class Uh extends bi{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Nh{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new ti:new Ui);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Ui,i=[],r=[],s=[],a=new Ui,o=new cr;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Ui)}r[0]=new Ui,s[0]=new Ui;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(jn(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(jn(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Dh extends Nh{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new ti,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(Bh.subVectors(i[0],i[1]).add(i[0]),a=Bh);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Gh(a,o.x,l.x,c.x,h.x),Gh(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class nu extends As{constructor(t=[new ti(0,-.5),new ti(.5,0),new ti(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=jn(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],l=[],c=1/e,h=new Ui,u=new ti,d=new Ui,p=new Ui,m=new Ui;let f=0,g=0;for(let e=0;e<=t.length-1;e++)switch(e){case 0:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:f=t[e+1].x-t[e].x,g=t[e+1].y-t[e].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let r=0;r<=e;r++){const d=n+r*c*i,p=Math.sin(d),m=Math.cos(d);for(let n=0;n<=t.length-1;n++){h.x=t[n].x*p,h.y=t[n].y,h.z=t[n].x*m,s.push(h.x,h.y,h.z),u.x=r/e,u.y=n/(t.length-1),a.push(u.x,u.y);const i=o[3*n+0]*p,c=o[3*n+1],d=o[3*n+0]*m;l.push(i,c,d)}}for(let n=0;n0&&_(!0),e>0&&_(!1)),this.setIndex(c),this.setAttribute("position",new vs(h,3)),this.setAttribute("normal",new vs(u,3)),this.setAttribute("uv",new vs(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new su(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class au extends su{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new au(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ou extends As{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new vs(r,3)),this.setAttribute("normal",new vs(r.slice(),3)),this.setAttribute("uv",new vs(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new ou(t.vertices,t.indices,t.radius,t.details)}}class lu extends ou{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new lu(t.radius,t.detail)}}const cu=new Ui,hu=new Ui,uu=new Ui,du=new jr;class pu extends As{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(Gn*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t80*n){o=c=t[0],l=h=t[1];for(let e=n;ec&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return vu(s,a,n,o,l,p,0),a};function gu(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s0)for(s=e;s=e;s-=i)a=Fu(s,t[s],t[s+1],a);return a&&Lu(a,a.next)&&(Bu(a),a=a.next),a}function _u(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!Lu(i,i.next)&&0!==Pu(i.prev,i,i.next))i=i.next;else{if(Bu(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function vu(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{0===r.z&&(r.z=wu(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?yu(t,i,r,s):xu(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(l.i/n|0),Bu(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?vu(t=Mu(_u(t),e,n),e,n,i,r,s,2):2===a&&Su(t,e,n,i,r,s):vu(_u(t),e,n,i,r,s,1);break}}function xu(t){const e=t.prev,n=t,i=t.next;if(Pu(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,l=n.y,c=i.y,h=rs?r>a?r:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let m=i.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=p&&Ru(r,o,s,l,a,c,m.x,m.y)&&Pu(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function yu(t,e,n,i){const r=t.prev,s=t,a=t.next;if(Pu(r,s,a)>=0)return!1;const o=r.x,l=s.x,c=a.x,h=r.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,_=wu(p,m,e,n,i),v=wu(f,g,e,n,i);let x=t.prevZ,y=t.nextZ;for(;x&&x.z>=_&&y&&y.z<=v;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Ru(o,h,l,u,c,d,x.x,x.y)&&Pu(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Ru(o,h,l,u,c,d,y.x,y.y)&&Pu(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;x&&x.z>=_;){if(x.x>=p&&x.x<=f&&x.y>=m&&x.y<=g&&x!==r&&x!==a&&Ru(o,h,l,u,c,d,x.x,x.y)&&Pu(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;y&&y.z<=v;){if(y.x>=p&&y.x<=f&&y.y>=m&&y.y<=g&&y!==r&&y!==a&&Ru(o,h,l,u,c,d,y.x,y.y)&&Pu(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function Mu(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!Lu(r,s)&&Iu(r,i,i.next,s)&&Du(r,s)&&Du(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),Bu(i),Bu(i.next),i=t=s),i=i.next}while(i!==t);return _u(i)}function Su(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&Cu(a,t)){let o=Ou(a,t);return a=_u(a,a.next),o=_u(o,o.next),vu(a,e,n,i,r,s,0),void vu(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function bu(t,e){return t.x-e.x}function Eu(t,e){const n=function(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x=i.x&&i.x>=l&&s!==i.x&&Ru(an.x||i.x===n.x&&Tu(n,i)))&&(n=i,u=h)),i=i.next}while(i!==o);return n}(t,e);if(!n)return e;const i=Ou(n,t);return _u(i,i.next),_u(n,n.next)}function Tu(t,e){return Pu(t.prev,t,e.prev)<0&&Pu(e.next,t,t.next)<0}function wu(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Au(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function Cu(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Iu(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Du(t,e)&&Du(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(Pu(t.prev,t,e.prev)||Pu(t,e.prev,e))||Lu(t,e)&&Pu(t.prev,t,t.next)>0&&Pu(e.prev,e,e.next)>0)}function Pu(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Lu(t,e){return t.x===e.x&&t.y===e.y}function Iu(t,e,n,i){const r=Nu(Pu(t,e,n)),s=Nu(Pu(t,e,i)),a=Nu(Pu(n,i,t)),o=Nu(Pu(n,i,e));return r!==s&&a!==o||(!(0!==r||!Uu(t,n,e))||(!(0!==s||!Uu(t,i,e))||(!(0!==a||!Uu(n,t,i))||!(0!==o||!Uu(n,e,i)))))}function Uu(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Nu(t){return t>0?1:t<0?-1:0}function Du(t,e){return Pu(t.prev,t,t.next)<0?Pu(t,e,t.next)>=0&&Pu(t,t.prev,e)>=0:Pu(t,e,t.prev)<0||Pu(t,t.next,e)<0}function Ou(t,e){const n=new zu(t.i,t.x,t.y),i=new zu(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function Fu(t,e,n,i){const r=new zu(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Bu(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function zu(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Hu{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r2&&t[e-1].equals(t[0])&&t.pop()}function ku(t,e){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new ti(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new ti(i/s,r/s)}const L=[];for(let t=0,e=w.length,n=e-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=w.length;t=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t0)&&d.push(e,r,l),(t!==n-1||o0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class od extends ts{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Kr(16777215),this.specular=new Kr(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Kr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ti(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class ld extends ts{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Kr(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Kr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ti(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class cd extends ts{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ti(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class hd extends ts{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Kr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Kr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ti(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class ud extends ts{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Kr(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ti(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class dd extends hh{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function pd(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function md(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function fd(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n}function gd(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function _d(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}const vd={convertArray:pd,isTypedArray:md,getKeyframeOrder:fd,sortedArray:gd,flattenJSON:_d,subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t=i)){l.push(e.times[t]);for(let n=0;ns.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t=i.times[u]){const t=u*l+o,e=t+l-o;d=i.values.slice(t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=t.resultBuffer.slice(e,n)}if("quaternion"===r){(new Ii).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t=r)break t;{const a=e[1];t=r)break e}s=n,n=0}}for(;n>>1;te;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=n.slice(r,s),this.values=this.values.slice(r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,e,i),t=!1;break}if(null!==s&&s>i){console.error("THREE.KeyframeTrack: Out of order keys.",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&md(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,e,n),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===Le,r=t.length-1;let s=1;for(let a=1;a0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=t.slice(0,s),this.values=e.slice(0,s*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}bd.prototype.TimeBufferType=Float32Array,bd.prototype.ValueBufferType=Float32Array,bd.prototype.DefaultInterpolation=Pe;class Ed extends bd{}Ed.prototype.ValueTypeName="bool",Ed.prototype.ValueBufferType=Array,Ed.prototype.DefaultInterpolation=Ce,Ed.prototype.InterpolantFactoryMethodLinear=void 0,Ed.prototype.InterpolantFactoryMethodSmooth=void 0;class Td extends bd{}Td.prototype.ValueTypeName="color";class wd extends bd{}wd.prototype.ValueTypeName="number";class Ad extends xd{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)Ii.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Rd extends bd{InterpolantFactoryMethodLinear(t){return new Ad(this.times,this.values,this.getValueSize(),t)}}Rd.prototype.ValueTypeName="quaternion",Rd.prototype.DefaultInterpolation=Pe,Rd.prototype.InterpolantFactoryMethodSmooth=void 0;class Cd extends bd{}Cd.prototype.ValueTypeName="string",Cd.prototype.ValueBufferType=Array,Cd.prototype.DefaultInterpolation=Ce,Cd.prototype.InterpolantFactoryMethodLinear=void 0,Cd.prototype.InterpolantFactoryMethodSmooth=void 0;class Pd extends bd{}Pd.prototype.ValueTypeName="vector";class Ld{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=Xn(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(Id(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(bd.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];_d(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t{e&&e(r),this.manager.itemEnd(t)}),0),r;if(void 0!==Fd[t])return void Fd[t].push({onLoad:e,onProgress:n,onError:i});Fd[t]=[],Fd[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=Fd[t],i=e.body.getReader(),r=e.headers.get("Content-Length")||e.headers.get("X-File-Size"),s=r?parseInt(r):0,a=0!==s;let o=0;const l=new ReadableStream({start(t){!function e(){i.read().then((({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then((t=>(new DOMParser).parseFromString(t,a)));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then((t=>i.decode(t)))}}})).then((e=>{Ud.add(t,e);const n=Fd[t];delete Fd[t];for(let t=0,i=n.length;t{const n=Fd[t];if(void 0===n)throw this.manager.itemError(t),e;delete Fd[t];for(let t=0,i=n.length;t{this.manager.itemEnd(t)})),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class Hd extends Od{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new zd(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):console.error(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new Kr).setHex(r.value);break;case"v2":i.uniforms[e].value=(new ti).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new Ui).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new Ei).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new ei).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new cr).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new ti).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new ti).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial:id,SpriteMaterial:rc,RawShaderMaterial:rd,ShaderMaterial:$s,PointsMaterial:Mh,MeshPhysicalMaterial:ad,MeshStandardMaterial:sd,MeshPhongMaterial:od,MeshToonMaterial:ld,MeshNormalMaterial:cd,MeshLambertMaterial:hd,MeshDepthMaterial:Fl,MeshDistanceMaterial:Bl,MeshBasicMaterial:es,MeshMatcapMaterial:ud,LineDashedMaterial:dd,LineBasicMaterial:hh,Material:ts}[t]}}class dp{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n0){const n=new Nd(e);r=new kd(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e0){i=new kd(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e{const e=new Oi;e.min.fromArray(t.boxMin),e.max.fromArray(t.boxMax);const n=new tr;return n.radius=t.sphereRadius,n.center.fromArray(t.sphereCenter),{boxInitialized:t.boxInitialized,box:e,sphereInitialized:t.sphereInitialized,sphere:n}})),s._maxGeometryCount=t.maxGeometryCount,s._maxVertexCount=t.maxVertexCount,s._maxIndexCount=t.maxIndexCount,s._geometryInitialized=t.geometryInitialized,s._geometryCount=t.geometryCount,s._matricesTexture=h(t.matricesTexture.uuid);break;case"LOD":s=new Sc;break;case"Line":s=new gh(l(t.geometry),c(t.material));break;case"LineLoop":s=new yh(l(t.geometry),c(t.material));break;case"LineSegments":s=new xh(l(t.geometry),c(t.material));break;case"PointCloud":case"Points":s=new wh(l(t.geometry),c(t.material));break;case"Sprite":s=new vc(c(t.material));break;case"Group":s=new Wl;break;case"Bone":s=new Uc;break;default:s=new Nr}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(s.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(s.matrixAutoUpdate=t.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.up&&s.up.fromArray(t.up),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(s.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.frustumCulled&&(s.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(s.renderOrder=t.renderOrder),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.layers&&(s.layers.mask=t.layers),void 0!==t.children){const a=t.children;for(let t=0;t{e&&e(n),r.manager.itemEnd(t)})).catch((t=>{i&&i(t)})):(setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s);const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",a.headers=this.requestHeader;const o=fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:"none"}))})).then((function(n){return Ud.add(t,n),e&&e(n),r.manager.itemEnd(t),n})).catch((function(e){i&&i(e),Ud.remove(t),r.manager.itemError(t),r.manager.itemEnd(t)}));Ud.add(t,o),r.manager.itemStart(t)}}let yp;class Mp{static getContext(){return void 0===yp&&(yp=new(window.AudioContext||window.webkitAudioContext)),yp}static setContext(t){yp=t}}class Sp extends Od{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new zd(this.manager);function a(e){i?i(e):console.error(e),r.manager.itemError(t)}s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(t){try{const n=t.slice(0);Mp.getContext().decodeAudioData(n,(function(t){e(t)})).catch(a)}catch(t){a(t)}}),n,i)}}const bp=new cr,Ep=new cr,Tp=new cr;class wp{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ta,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ta,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep,Tp.copy(t.projectionMatrix);const n=e.eyeSep/2,i=n*e.near/e.focus,r=e.near*Math.tan(Gn*e.fov*.5)/e.zoom;let s,a;Ep.elements[12]=-n,bp.elements[12]=n,s=-r*e.aspect+i,a=r*e.aspect+i,Tp.elements[0]=2*e.near/(a-s),Tp.elements[8]=(a+s)/(a-s),this.cameraL.projectionMatrix.copy(Tp),s=-r*e.aspect-i,a=r*e.aspect-i,Tp.elements[0]=2*e.near/(a-s),Tp.elements[8]=(a+s)/(a-s),this.cameraR.projectionMatrix.copy(Tp)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(Ep),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(bp)}}class Ap{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Rp(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Rp();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Rp(){return("undefined"==typeof performance?Date:performance).now()}const Cp=new Ui,Pp=new Ii,Lp=new Ui,Ip=new Ui;class Up extends Nr{constructor(){super(),this.type="AudioListener",this.context=Mp.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Ap}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Cp,Pp,Lp),Ip.set(0,0,-1).applyQuaternion(Pp),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Cp.x,t),e.positionY.linearRampToValueAtTime(Cp.y,t),e.positionZ.linearRampToValueAtTime(Cp.z,t),e.forwardX.linearRampToValueAtTime(Ip.x,t),e.forwardY.linearRampToValueAtTime(Ip.y,t),e.forwardZ.linearRampToValueAtTime(Ip.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Cp.x,Cp.y,Cp.z),e.setOrientation(Ip.x,Ip.y,Ip.z,n.x,n.y,n.z)}}class Np extends Nr{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,null!==this.source&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Ii.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Ii.multiplyQuaternionsFlat(t,s,t,e,t,n),Ii.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const kp="\\[\\]\\.:\\/",Gp=new RegExp("["+kp+"]","g"),Wp="[^"+kp+"]",Xp="[^"+kp.replace("\\.","")+"]",jp=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",Wp)+/(WCOD+)?/.source.replace("WCOD",Xp)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Wp)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Wp)+"$"),qp=["material","materials","bones","map"];class Yp{constructor(t,e,n){this.path=e,this.parsedPath=n||Yp.parseTrackName(e),this.node=Yp.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Yp.Composite(t,e,n):new Yp(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Gp,"")}static parseTrackName(t){const e=jp.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==qp.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new Yp(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class Jp{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:Ie,endingEnd:Ie};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===Oe)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=Ue,i.endingEnd=Ue):(i.endingStart=t?this.zeroSlopeAtStart?Ue:Ie:Ne,i.endingEnd=e?this.zeroSlopeAtEnd?Ue:Ie:Ne)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const Kp=new Float32Array(1);class $p extends Hn{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)++h.referenceCount,s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new Vp(Yp.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;tthis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,cm).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const um=new Ui,dm=new Ui;class pm{constructor(t=new Ui,e=new Ui){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){um.subVectors(t,this.start),dm.subVectors(this.end,this.start);const n=dm.dot(dm);let i=dm.dot(um)/n;return e&&(i=jn(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const mm=new Ui;class fm extends Nr{constructor(t,e){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new As,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t1)for(let n=0;n.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Hm.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Hm,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class Wm extends xh{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new As;n.setAttribute("position",new vs(e,3)),n.setAttribute("color",new vs([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new hh({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Kr,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Xm{constructor(){this.type="ShapePath",this.color=new Kr,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new eu,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;sNumber.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=Hu.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new mu,a.curves=s.curves,o.push(a),o;let l=!n(i[0].getPoints());l=t?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let e=0,a=i.length;e1){let t=!1,n=0;for(let t=0,e=h.length;t0&&!1===t&&(p=c)}for(let t=0,e=h.length;t= duskEnd) { - return phases.night; - } - // dawn 过渡:night → day - if (now >= dawnStart && now < safeDawnEnd) { - const t = (now - dawnStart) / (safeDawnEnd - dawnStart); - return lerpPhase(phases.night, phases.day, easeInOut(t)); - } - // 纯白天 - if (now >= safeDawnEnd && now < safeDuskStart) { - return phases.day; - } - // dusk 过渡:day → night - if (now >= safeDuskStart && now < duskEnd) { - const t = (now - safeDuskStart) / (duskEnd - safeDuskStart); - return lerpPhase(phases.day, phases.night, easeInOut(t)); - } - - return phases.night; // 兜底改为 night 更安全(走到这里说明时间异常) -} - -function lerpPhase(a, b, t) { - return { - brightness: lerp(a.brightness, b.brightness, t), - hue: lerp(a.hue, b.hue, t), - saturate: lerp(a.saturate, b.saturate, t) - }; -} - -function lerp(a, b, t) { - return a + (b - a) * t; -} - -function easeInOut(t) { - return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; -} diff --git a/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/default/run.js b/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/default/run.js deleted file mode 100644 index eebf7b50..00000000 --- a/src/VirtualPaper.PlayerWeb/PLAYER_Web/js/default/run.js +++ /dev/null @@ -1,113 +0,0 @@ -const scale = 1.05; // 缩放系数 -let centerX; -let centerY; -let parallaxBackground; -let volume = 0.8; -let speed = 1.0; -let muted = false; - -function resourceLoad(wallpaperType, filePath) { - if (curVideoElementId) { - videoRelease(); - } - - const element = document.querySelector('.root'); - const oldContent = document.getElementById('content'); - - let newElement; - switch (wallpaperType) { - case 'RImage': - newElement = ` -
- -
`; - break; - case 'RVideo': - curVideoElementId = 'videoEle'; - newElement = ` -
- -
`; - break; - default: - return; - } - - if (newElement) { - // 动态插入新内容后立即移除旧内容,以减少闪烁 - element.insertAdjacentHTML('beforeend', newElement); - parallaxBackground = document.getElementById('content'); - - if (oldContent) { - oldContent.setAttribute('class', 'fade-out'); - setTimeout(() => { - oldContent.remove(); - }, 300); - } - } - - return "resourceLoad success"; -} - -function videoRelease() { - curVideoElementId = null; - var videoElement = document.getElementById('videoEle'); - if (videoElement) { - videoElement.pause(); - videoElement.removeAttribute('src'); - videoElement = null; - - return "videoRelease success"; - } -} - -//在某些浏览器(例如 Chrome 70.0)中,如果没有设置 muted 属性,autoplay 将不会生效。 -function play() { - var videoElement = document.getElementById('videoEle'); - if (videoElement) { - videoElement.play(); - - return "play success"; - } -} - -function playbackChanged(isPaused) { - var videoElement = document.getElementById('videoEle'); - if (videoElement) { - if (isPaused) videoElement.pause(); - else videoElement.play(); - - return "playbackChanged success"; - } -} - -function audioMuteChanged(isMuted) { - var videoElement = document.getElementById('videoEle'); - if (videoElement) { - videoElement.muted = isMuted; - - return "audioMuteChanged success"; - } -} - -function mouseMove(x, y) { - // 计算鼠标与中心点的相对位置百分比 - const relX = (x - centerX) / centerX; - const relY = (y - centerY) / centerY; - - const rotateX = relY * 2; // X轴旋转角度,根据Y轴偏移量调整 - const rotateY = relX * 2; // Y轴旋转角度,根据X轴偏移量调整 - - parallaxBackground.style.transform = `scale(${scale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; -} - -function mouseOut() { - parallaxBackground.style.transform = 'scale(1) rotateX(0deg) rotateY(0deg)'; -} - -function updateDimensions(width, height) { - centerX = width / 2; - centerY = height / 2; -} \ No newline at end of file diff --git a/src/VirtualPaper.PlayerWeb/VirtualPaper.PlayerWeb.csproj b/src/VirtualPaper.PlayerWeb/VirtualPaper.PlayerWeb.csproj index 73fbc0da..aa9c0c04 100644 --- a/src/VirtualPaper.PlayerWeb/VirtualPaper.PlayerWeb.csproj +++ b/src/VirtualPaper.PlayerWeb/VirtualPaper.PlayerWeb.csproj @@ -25,24 +25,10 @@ - + + PLAYER_Web\%(RecursiveDir)%(Filename)%(Extension) Always - - - Always - - - Always - - - Always - - - Always - - - Always - + diff --git a/src/VirtualPaper.WpSettingsPanel/ViewModels/AddToLibViewModel.cs b/src/VirtualPaper.WpSettingsPanel/ViewModels/AddToLibViewModel.cs index 18a741f8..04fc66a0 100644 --- a/src/VirtualPaper.WpSettingsPanel/ViewModels/AddToLibViewModel.cs +++ b/src/VirtualPaper.WpSettingsPanel/ViewModels/AddToLibViewModel.cs @@ -39,7 +39,7 @@ private void InitCommand() { private async Task FileBrowseActionAsync() { var storage = await _storagePicker.PickFilesAsync( WindowConsts.WindowHandle, - [.. FileFilter.FileTypeToExtension[FileType.FImage], .. FileFilter.FileTypeToExtension[FileType.FGif], .. FileFilter.FileTypeToExtension[FileType.FVideo]], + [.. FileFilter.FileTypeToExtension[FileType.FImage], .. FileFilter.FileTypeToExtension[FileType.FGif], .. FileFilter.FileTypeToExtension[FileType.FVideo], .. FileFilter.FileTypeToExtension[FileType.FWebZip]], true); if (storage == null || storage.Length < 1) return; diff --git a/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs b/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs index ca0b81e7..0c7fec9e 100644 --- a/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs +++ b/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs @@ -135,7 +135,7 @@ internal void ShowDetail(IWpBasicData data) { } var onlyDetailWindow = data.FType switch { - FileType.FImage or FileType.FGif or FileType.FVideo => new OnlyDetails(DataConfigTab.GeneralInfo, data), + FileType.FImage or FileType.FGif or FileType.FVideo or FileType.FWebZip => new OnlyDetails(DataConfigTab.GeneralInfo, data), _ => throw new NotImplementedException(), }; onlyDetailWindow.Closed += (sender, args) => { @@ -239,7 +239,7 @@ await loadingCtx.RunAsync( var jsonString = await _wpControlClient.GetPlayerStartArgsAsync(data, rtype, depthFilePath, token); var previewWindow = rtype switch { - RuntimeType.RImage or RuntimeType.RImage3D or RuntimeType.RVideo => new PreviewWithWeb(jsonString), + RuntimeType.RImage or RuntimeType.RImage3D or RuntimeType.RVideo or RuntimeType.RWeb => new PreviewWithWeb(jsonString), _ or RuntimeType.RUnknown => throw new NotImplementedException(), }; previewWindow.Closed += (sender, args) => { @@ -511,6 +511,8 @@ private async Task GetWallpaperRTypeByFTypeAsync(FileType ftype) { }; case FileType.FVideo: return RuntimeType.RVideo; + case FileType.FWebZip: + return RuntimeType.RWeb; default: return RuntimeType.RUnknown; } diff --git a/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs b/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs index 444f5635..27ea3124 100644 --- a/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs +++ b/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs @@ -20,6 +20,7 @@ using VirtualPaper.Models.Cores.Interfaces; using VirtualPaper.Services.Interfaces; using VirtualPaper.Utils; +using VirtualPaper.Utils.BasicDataBuilders; using VirtualPaper.Utils.Interfcaes; using WinEventHook; using static VirtualPaper.Common.Errors; @@ -477,33 +478,14 @@ public IWpBasicData CreateBasicData( folderPath = Path.Combine(_userSettings.Settings.WallpaperDir, folderName); data.FolderPath = folderPath; - // 创建壁纸存储路径与自定义配置文件路径,将原壁纸复制到 folder 下 + // 委托给对应 FileType 的 Builder 完成类型特定的构建 Directory.CreateDirectory(folderPath); - string destFilePath = Path.Combine(folderPath, folderName + Path.GetExtension(filePath)); - if (filePath != destFilePath) { - File.Copy(filePath, destFilePath, true); - } - data.FilePath = destFilePath; - - #region 创建展示缩略图 - string thumbnailPath = Path.Combine(folderPath, folderName + Constants.Field.ThumGifSuff); - WallpaperUtil.CreateGif(filePath, thumbnailPath, ftype, token); - data.ThumbnailPath = thumbnailPath; - #endregion + _builderRegistry.Get(ftype).Build(filePath, folderPath, folderName, data, token); - #region 文件元数据 - var fileProperty = WallpaperUtil.GetWpProperty(filePath, ftype); - data.Resolution = fileProperty.Resolution; - data.AspectRatio = fileProperty.AspectRatio; - data.FileSize = fileProperty.FileSize; - data.FileExtension = fileProperty.FileExtension; data.CreatedTime = DateTime.UtcNow; - - string basicDatafilePath = Path.Combine(folderPath, Constants.Field.WpBasicDataFileName); if (isAutoSave) { data.Save(); } - #endregion } catch (OperationCanceledException) when (token.IsCancellationRequested) { if (Directory.Exists(folderPath)) { @@ -1032,5 +1014,10 @@ public void Dispose() { private readonly IMonitorManager _monitorManager; private readonly INativeService _nativeService; private readonly IJobService _jobService; + private readonly WpBasicDataBuilderRegistry _builderRegistry = new WpBasicDataBuilderRegistry() + .Register(FileType.FImage, new ImageBasicDataBuilder()) + .Register(FileType.FGif, new ImageBasicDataBuilder()) + .Register(FileType.FVideo, new VideoBasicDataBuilder()) + .Register(FileType.FWebZip, new WebZipBasicDataBuilder()); } } diff --git a/src/VirtualPaper/Factories/WallpaperFactory.cs b/src/VirtualPaper/Factories/WallpaperFactory.cs index f4dd664b..d2124022 100644 --- a/src/VirtualPaper/Factories/WallpaperFactory.cs +++ b/src/VirtualPaper/Factories/WallpaperFactory.cs @@ -10,7 +10,8 @@ public IWpPlayer CreatePlayer(IWpPlayerData data, IMonitor? monitor, bool isPrev switch (data.RType) { case RuntimeType.RImage: case RuntimeType.RImage3D: - case RuntimeType.RVideo: { + case RuntimeType.RVideo: + case RuntimeType.RWeb: { return new WpPlayerWeb(data, monitor, isPreview); } @@ -108,7 +109,7 @@ public IWpPlayer CreatePlayer(IWpPlayerData data, IMonitor? monitor, bool isPrev public string? CreatePlayerStartArgs(IWpPlayerData data, bool isPreview) { return data.RType switch { - RuntimeType.RImage or RuntimeType.RImage3D or RuntimeType.RVideo => new PlayerWebSrartArgs(data, isPreview).ToJson(), + RuntimeType.RImage or RuntimeType.RImage3D or RuntimeType.RVideo or RuntimeType.RWeb => new PlayerWebSrartArgs(data, isPreview).ToJson(), _ => null }; } diff --git a/src/VirtualPaper/Models/WpWebProjectData.cs b/src/VirtualPaper/Models/WpWebProjectData.cs new file mode 100644 index 00000000..4eccba83 --- /dev/null +++ b/src/VirtualPaper/Models/WpWebProjectData.cs @@ -0,0 +1,35 @@ +using System.Text.Json.Serialization; + +namespace VirtualPaper.Models { + [JsonSerializable(typeof(WpWebProjectData))] + public partial class WpWebProjectDataContext : JsonSerializerContext { } + + /// + /// zip 包内 project.json 的反序列化模型(VP 标准 web 壁纸) + /// + public class WpWebProjectData { + /// 壁纸标题 + [JsonPropertyName("title")] + public string Title { get; set; } = string.Empty; + + /// 壁纸描述 + [JsonPropertyName("description")] + public string Desc { get; set; } = string.Empty; + + /// 作者 + [JsonPropertyName("authors")] + public string Authors { get; set; } = string.Empty; + + /// 标签,分号分隔 + [JsonPropertyName("tags")] + public string Tags { get; set; } = string.Empty; + + /// HTML 入口文件(相对路径),默认 index.html + [JsonPropertyName("file")] + public string File { get; set; } = "index.html"; + + /// 预览图文件(相对路径),默认 preview.jpg + [JsonPropertyName("preview")] + public string Preview { get; set; } = "preview.jpg"; + } +} diff --git a/src/VirtualPaper/Utils/BasicDataBuilders/IWpBasicDataBuilder.cs b/src/VirtualPaper/Utils/BasicDataBuilders/IWpBasicDataBuilder.cs new file mode 100644 index 00000000..f704191a --- /dev/null +++ b/src/VirtualPaper/Utils/BasicDataBuilders/IWpBasicDataBuilder.cs @@ -0,0 +1,19 @@ +using VirtualPaper.Models.Cores; + +namespace VirtualPaper.Utils.BasicDataBuilders { + /// + /// 针对不同 FileType,填充 WpBasicData 中类型特定的字段。 + /// 通用字段(WallpaperUid / AppInfo / FolderPath 等)由调用方在调用前统一设置。 + /// + internal interface IWpBasicDataBuilder { + /// + /// 根据源文件构建类型特定的元数据,写入 。 + /// + /// 源文件路径(图片/视频/zip) + /// 已创建的库目标文件夹路径 + /// 文件夹名(用于统一命名缩略图等产物) + /// 待填充的数据对象 + /// 取消令牌 + void Build(string srcPath, string folderPath, string folderName, WpBasicData data, CancellationToken token); + } +} diff --git a/src/VirtualPaper/Utils/BasicDataBuilders/ImageBasicDataBuilder.cs b/src/VirtualPaper/Utils/BasicDataBuilders/ImageBasicDataBuilder.cs new file mode 100644 index 00000000..0d87ed9a --- /dev/null +++ b/src/VirtualPaper/Utils/BasicDataBuilders/ImageBasicDataBuilder.cs @@ -0,0 +1,31 @@ +using System.IO; +using VirtualPaper.Common; +using VirtualPaper.Models.Cores; + +namespace VirtualPaper.Utils.BasicDataBuilders { + /// + /// 处理静态图(FImage)和动图(FGif)的元数据构建。 + /// + internal class ImageBasicDataBuilder : IWpBasicDataBuilder { + public void Build(string srcPath, string folderPath, string folderName, WpBasicData data, CancellationToken token) { + // 复制源文件到库目录 + string destFilePath = Path.Combine(folderPath, folderName + Path.GetExtension(srcPath)); + if (srcPath != destFilePath) { + File.Copy(srcPath, destFilePath, overwrite: true); + } + data.FilePath = destFilePath; + + // 生成缩略图 GIF + string thumbnailPath = Path.Combine(folderPath, folderName + Constants.Field.ThumGifSuff); + WallpaperUtil.CreateGif(srcPath, thumbnailPath, data.FType, token); + data.ThumbnailPath = thumbnailPath; + + // 文件属性(分辨率、尺寸等) + var prop = WallpaperUtil.GetWpProperty(srcPath, data.FType); + data.Resolution = prop.Resolution; + data.AspectRatio = prop.AspectRatio; + data.FileSize = prop.FileSize; + data.FileExtension = prop.FileExtension; + } + } +} diff --git a/src/VirtualPaper/Utils/BasicDataBuilders/VideoBasicDataBuilder.cs b/src/VirtualPaper/Utils/BasicDataBuilders/VideoBasicDataBuilder.cs new file mode 100644 index 00000000..5b211f06 --- /dev/null +++ b/src/VirtualPaper/Utils/BasicDataBuilders/VideoBasicDataBuilder.cs @@ -0,0 +1,31 @@ +using System.IO; +using VirtualPaper.Common; +using VirtualPaper.Models.Cores; + +namespace VirtualPaper.Utils.BasicDataBuilders { + /// + /// 处理视频(FVideo)的元数据构建。 + /// + internal class VideoBasicDataBuilder : IWpBasicDataBuilder { + public void Build(string srcPath, string folderPath, string folderName, WpBasicData data, CancellationToken token) { + // 复制源文件到库目录 + string destFilePath = Path.Combine(folderPath, folderName + Path.GetExtension(srcPath)); + if (srcPath != destFilePath) { + File.Copy(srcPath, destFilePath, overwrite: true); + } + data.FilePath = destFilePath; + + // 生成缩略图 GIF(取前 3 秒帧) + string thumbnailPath = Path.Combine(folderPath, folderName + Constants.Field.ThumGifSuff); + WallpaperUtil.CreateGif(srcPath, thumbnailPath, data.FType, token); + data.ThumbnailPath = thumbnailPath; + + // 文件属性(分辨率、帧率等) + var prop = WallpaperUtil.GetWpProperty(srcPath, data.FType); + data.Resolution = prop.Resolution; + data.AspectRatio = prop.AspectRatio; + data.FileSize = prop.FileSize; + data.FileExtension = prop.FileExtension; + } + } +} diff --git a/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs b/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs new file mode 100644 index 00000000..176de7fd --- /dev/null +++ b/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs @@ -0,0 +1,78 @@ +using System.IO; +using SharpCompress.Archives; +using SharpCompress.Common; +using VirtualPaper.Common; +using VirtualPaper.Common.Utils.Storage; +using VirtualPaper.Models; +using VirtualPaper.Models.Cores; + +namespace VirtualPaper.Utils.BasicDataBuilders { + /// + /// 处理 VP 标准 Web 壁纸包(FWebZip)的元数据构建 + /// 支持 .zip / .rar / .7z,包内必须含 project.json + /// + internal class WebZipBasicDataBuilder : IWpBasicDataBuilder { + public void Build(string srcPath, string folderPath, string folderName, WpBasicData data, CancellationToken token) { + // 1. 解压压缩包(zip/rar/7z 统一走 SharpCompress) + using (var archive = ArchiveFactory.Open(srcPath)) { + foreach (var entry in archive.Entries.Where(e => !e.IsDirectory)) { + token.ThrowIfCancellationRequested(); + entry.WriteToDirectory(folderPath, new ExtractionOptions { + ExtractFullPath = true, + Overwrite = true + }); + } + } + + token.ThrowIfCancellationRequested(); + + // 2. 读 project.json + string projectJsonPath = Path.Combine(folderPath, "project.json"); + if (!File.Exists(projectJsonPath)) + throw new FileNotFoundException("压缩包内缺少 project.json", projectJsonPath); + + var project = JsonSaver.Load(projectJsonPath, WpWebProjectDataContext.Default); + + // 3. HTML 入口路径 + string entryRelative = NormalizePath(project.File); + string entryAbsolute = Path.Combine(folderPath, entryRelative); + if (!File.Exists(entryAbsolute)) + throw new FileNotFoundException($"project.json 指定的 HTML 入口不存在:{project.File}", entryAbsolute); + + data.FilePath = entryAbsolute; + + // 4. 缩略图:将 preview 复制为库规范命名 + string thumbnailPath = Path.Combine(folderPath, folderName + Constants.Field.ThumGifSuff); + string previewRelative = NormalizePath(project.Preview); + if (!string.IsNullOrEmpty(previewRelative)) { + string previewAbsolute = Path.Combine(folderPath, previewRelative); + if (File.Exists(previewAbsolute)) { + File.Copy(previewAbsolute, thumbnailPath, overwrite: true); + data.ThumbnailPath = thumbnailPath; + } + } + // 找不到 preview 留空,UI 层显示默认占位图 + + // 5. 文件属性(以原始压缩包大小计) + var fileInfo = new FileInfo(srcPath); + double sizeMb = fileInfo.Length / 1024.0 / 1024.0; + data.FileSize = sizeMb >= 0.01 ? $"{sizeMb:0.00} MB" : $"{fileInfo.Length / 1024.0:0.00} KB"; + data.FileExtension = Path.GetExtension(srcPath).ToLowerInvariant(); + data.AspectRatio = "-"; + data.Resolution = "-"; + + // 6. 元数据字段 + data.Title = string.IsNullOrWhiteSpace(project.Title) + ? Path.GetFileNameWithoutExtension(srcPath) + : project.Title; + data.Desc = project.Desc; + data.Authors = project.Authors; + data.Tags = project.Tags; + } + + private static string NormalizePath(string? raw) { + if (string.IsNullOrWhiteSpace(raw)) return string.Empty; + return raw.Replace('\\', '/').TrimStart('/'); + } + } +} diff --git a/src/VirtualPaper/Utils/BasicDataBuilders/WpBasicDataBuilderRegistry.cs b/src/VirtualPaper/Utils/BasicDataBuilders/WpBasicDataBuilderRegistry.cs new file mode 100644 index 00000000..b32b7a84 --- /dev/null +++ b/src/VirtualPaper/Utils/BasicDataBuilders/WpBasicDataBuilderRegistry.cs @@ -0,0 +1,26 @@ +using VirtualPaper.Common; + +namespace VirtualPaper.Utils.BasicDataBuilders { + /// + /// FileType → IWpBasicDataBuilder 的注册与查找。 + /// 添加新类型只需调用 Register,无需修改其他代码。 + /// + internal class WpBasicDataBuilderRegistry { + private readonly Dictionary _builders = []; + + public WpBasicDataBuilderRegistry Register(FileType fileType, IWpBasicDataBuilder builder) { + _builders[fileType] = builder; + return this; + } + + /// + /// 获取对应 FileType 的 Builder,找不到时抛出明确异常。 + /// + public IWpBasicDataBuilder Get(FileType fileType) { + if (_builders.TryGetValue(fileType, out var builder)) + return builder; + + throw new NotSupportedException($"FileType '{fileType}' 尚未注册对应的 Builder。"); + } + } +} diff --git a/src/VirtualPaper/Utils/WallpaperUtil.cs b/src/VirtualPaper/Utils/WallpaperUtil.cs index 9283fbd1..e8530364 100644 --- a/src/VirtualPaper/Utils/WallpaperUtil.cs +++ b/src/VirtualPaper/Utils/WallpaperUtil.cs @@ -8,6 +8,7 @@ using VirtualPaper.Common; using VirtualPaper.Common.Utils.Files.Models; using VirtualPaper.Common.Utils.Storage; +using VirtualPaper.Models; using VirtualPaper.Models.Cores; using VirtualPaper.Models.Cores.Interfaces; using Size = OpenCvSharp.Size; @@ -51,7 +52,7 @@ internal static string CreateWpEffectFileTemplate( } switch (rtype) { - case RuntimeType.RImage: + case RuntimeType.RImage: PictureAndGifCostumise pictureAndGifCostumize = new(); JsonSaver.Save(wpEffectFilePathTemplate, pictureAndGifCostumize, PictureAndGifCostumiseContext.Default); break; @@ -63,6 +64,10 @@ internal static string CreateWpEffectFileTemplate( VideoCostumize videoCostumize = new(); JsonSaver.Save(wpEffectFilePathTemplate, videoCostumize, VideoCostumizeContext.Default); break; + case RuntimeType.RWeb: + WebCostumize webCostumize = new(); + JsonSaver.Save(wpEffectFilePathTemplate, webCostumize, WebCostumizeContext.Default); + break; default: break; } @@ -293,5 +298,72 @@ private static string GetRatio(double aspectRatio) { // Add NETSCAPE2.0 Application Extension for looping. private readonly static byte[] _applicationExtension = [33, 255, 11, 78, 69, 84, 83, 67, 65, 80, 69, 50, 46, 48, 3, 1, 0, 0, 0]; + + #region web zip + /// + /// 解压 zip 并从 project.json 构建 WpBasicData 元数据。 + /// + /// zip 文件路径 + /// 目标解压目录(已创建) + /// 库文件夹名(用于缩略图命名) + /// 待填充的 WpBasicData 实例 + internal static void BuildBasicDataFromWebZip( + string zipPath, + string folderPath, + string folderName, + WpBasicData data) { + + // 解压 zip 到目标目录 + System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, folderPath, overwriteFiles: true); + + // 读 project.json + string projectJsonPath = Path.Combine(folderPath, "project.json"); + if (!File.Exists(projectJsonPath)) + throw new FileNotFoundException("zip 包内缺少 project.json", projectJsonPath); + + var project = JsonSaver.Load( + projectJsonPath, + WpWebProjectDataContext.Default); + + // HTML 入口文件路径 + string entryRelative = NormalizeRelativePath(project.File); + string entryAbsolute = Path.Combine(folderPath, entryRelative); + if (!File.Exists(entryAbsolute)) + throw new FileNotFoundException($"project.json 中指定的 HTML 入口不存在:{project.File}", entryAbsolute); + + data.FilePath = entryAbsolute; + + // 缩略图:复制 preview 到库规范命名 + string thumbnailPath = Path.Combine(folderPath, folderName + Constants.Field.ThumGifSuff); + string previewRelative = NormalizeRelativePath(project.Preview); + string previewAbsolute = Path.Combine(folderPath, previewRelative); + if (File.Exists(previewAbsolute)) { + File.Copy(previewAbsolute, thumbnailPath, overwrite: true); + } + // 找不到预览图则不设置,UI 层显示默认占位图 + data.ThumbnailPath = File.Exists(thumbnailPath) ? thumbnailPath : string.Empty; + + // 文件元数据 + var zipInfo = new FileInfo(zipPath); + double sizeMb = zipInfo.Length / 1024.0 / 1024.0; + data.FileSize = sizeMb >= 0.01 ? $"{sizeMb:0.00} MB" : $"{zipInfo.Length / 1024.0:0.00} KB"; + data.FileExtension = ".zip"; + data.Resolution = "Web"; + data.AspectRatio = "-"; + + // 元数据字段 + data.Title = string.IsNullOrWhiteSpace(project.Title) + ? Path.GetFileNameWithoutExtension(zipPath) + : project.Title; + data.Desc = project.Desc; + data.Authors = project.Authors; + data.Tags = project.Tags; + } + + private static string NormalizeRelativePath(string? raw) { + if (string.IsNullOrWhiteSpace(raw)) return string.Empty; + return raw.Replace('\\', '/').TrimStart('/'); + } + #endregion } } diff --git a/src/VirtualPaper/VirtualPaper.csproj b/src/VirtualPaper/VirtualPaper.csproj index cd82646d..fef5ef31 100644 --- a/src/VirtualPaper/VirtualPaper.csproj +++ b/src/VirtualPaper/VirtualPaper.csproj @@ -21,13 +21,13 @@ Without this, .xaml files copied there by plugin builds (e.g. VirtualPaper.WpSettingsPanel) are picked up by the WinFX glob on the second Rebuild and cause BG1002 / BG1003 errors. --> - - - - - - - + + + + + + + - - - - + + + + @@ -63,14 +50,9 @@ - <_PluginFiles Include="$(MSBuildProjectDirectory)\Plugins\**\*" - Exclude="$(MSBuildProjectDirectory)\Plugins\**\*.pdb; - $(MSBuildProjectDirectory)\Plugins\**\*.xml" /> + <_PluginFiles Include="$(MSBuildProjectDirectory)\Plugins\**\*" Exclude="$(MSBuildProjectDirectory)\Plugins\**\*.pdb; $(MSBuildProjectDirectory)\Plugins\**\*.xml" /> - + @@ -87,15 +69,9 @@ <_ExpectedPluginExe Include="$(_PluginOutDir)ScrSaver\VirtualPaper.ScreenSaver.exe" /> - - - + + + @@ -119,6 +95,7 @@ + From 6416a31ce93d691446098655450f5d84f37ed990 Mon Sep 17 00:00:00 2001 From: PaperHammer Date: Wed, 20 May 2026 00:37:13 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=8C=85?= =?UTF-8?q?=E7=89=88=E6=9C=AC=EF=BC=9B=E6=B7=BB=E5=8A=A0=E6=8C=87=E9=92=88?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PLAYER_Web/js/utils/global_mouse_event.js | 266 ++++++++++++++++++ src/VirtualPaper/VirtualPaper.csproj | 2 +- 2 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js new file mode 100644 index 00000000..9fde5a70 --- /dev/null +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js @@ -0,0 +1,266 @@ +(function () { + + // ============================================ + // 全局虚拟鼠标状态 + // ============================================ + + const virtualMouse = { + + // 原始像素坐标 + x: 0, + y: 0, + + // 0~1 + normalizedX: 0, + normalizedY: 0, + + // WebGL 坐标 + // (-1 ~ 1) + glX: 0, + glY: 0, + + buttons: 0, + + currentTarget: null, + lastTarget: null + }; + + // 全局暴露(可选) + window.VirtualMouse = virtualMouse; + + // ============================================ + // 工具 + // ============================================ + + function normalize(x, y) { + + virtualMouse.normalizedX = + x / window.innerWidth; + + virtualMouse.normalizedY = + y / window.innerHeight; + + virtualMouse.glX = + virtualMouse.normalizedX * 2 - 1; + + virtualMouse.glY = + -(virtualMouse.normalizedY * 2 - 1); + } + + function createMouseEvent(type, x, y, buttons) { + + return new MouseEvent(type, { + + bubbles: true, + cancelable: true, + composed: true, + + clientX: x, + clientY: y, + + screenX: x, + screenY: y, + + buttons: buttons + }); + } + + function createPointerEvent(type, x, y, buttons) { + + return new PointerEvent(type, { + + bubbles: true, + cancelable: true, + composed: true, + + clientX: x, + clientY: y, + + pointerId: 1, + pointerType: 'mouse', + isPrimary: true, + + buttons: buttons + }); + } + + function dispatchToTarget(target, event) { + + if (!target) + return; + + target.dispatchEvent(event); + } + + // ============================================ + // Hover 处理 + // ============================================ + + function processHover(target, x, y, buttons) { + + if (virtualMouse.lastTarget === target) + return; + + // leave + if (virtualMouse.lastTarget) { + + dispatchToTarget( + virtualMouse.lastTarget, + createMouseEvent( + 'mouseleave', + x, + y, + buttons + ) + ); + + dispatchToTarget( + virtualMouse.lastTarget, + createPointerEvent( + 'pointerleave', + x, + y, + buttons + ) + ); + } + + // enter + dispatchToTarget( + target, + createMouseEvent( + 'mouseenter', + x, + y, + buttons + ) + ); + + dispatchToTarget( + target, + createPointerEvent( + 'pointerenter', + x, + y, + buttons + ) + ); + + virtualMouse.lastTarget = target; + } + + // ============================================ + // 核心输入 + // ============================================ + + function injectMouseMove(x, y, buttons = 0) { + + // 更新状态 + virtualMouse.x = x; + virtualMouse.y = y; + virtualMouse.buttons = buttons; + + // 自动归一化 + normalize(x, y); + + // 自动命中目标 + const target = + document.elementFromPoint(x, y) || + document.body; + + virtualMouse.currentTarget = target; + + // hover + processHover( + target, + x, + y, + buttons + ); + + // mousemove + dispatchToTarget( + target, + createMouseEvent( + 'mousemove', + x, + y, + buttons + ) + ); + + // pointermove + dispatchToTarget( + target, + createPointerEvent( + 'pointermove', + x, + y, + buttons + ) + ); + } + + function injectMouseDown(x, y, buttons = 1) { + + const target = + document.elementFromPoint(x, y) || + document.body; + + dispatchToTarget( + target, + createMouseEvent( + 'mousedown', + x, + y, + buttons + ) + ); + + dispatchToTarget( + target, + createPointerEvent( + 'pointerdown', + x, + y, + buttons + ) + ); + } + + function injectMouseUp(x, y, buttons = 0) { + + const target = + document.elementFromPoint(x, y) || + document.body; + + dispatchToTarget( + target, + createMouseEvent( + 'mouseup', + x, + y, + buttons + ) + ); + + dispatchToTarget( + target, + createPointerEvent( + 'pointerup', + x, + y, + buttons + ) + ); + } + + // ============================================ + // 全局 API + // ============================================ + + window.mouseMove = injectMouseMove; + window.mouseDown = injectMouseDown; + window.mouseUp = injectMouseUp; + +})(); \ No newline at end of file diff --git a/src/VirtualPaper/VirtualPaper.csproj b/src/VirtualPaper/VirtualPaper.csproj index fef5ef31..b26d446e 100644 --- a/src/VirtualPaper/VirtualPaper.csproj +++ b/src/VirtualPaper/VirtualPaper.csproj @@ -95,7 +95,7 @@ - + From 622edd5053e46a6120e8e01562c938cc61bc2518 Mon Sep 17 00:00:00 2001 From: paperhammer Date: Thu, 21 May 2026 23:20:24 +0800 Subject: [PATCH 5/8] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=84=9F=E7=9F=A5=E4=BB=85=E5=9C=A8=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E6=97=B6=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?=20=E8=B0=83=E6=95=B4=E5=A3=81=E7=BA=B8=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E6=8C=87=E9=92=88=E7=9B=91=E5=90=AC=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E6=80=A7=E8=83=BD=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2=E5=90=8C=E7=B1=BB=E5=A3=81?= =?UTF-8?q?=E7=BA=B8=E6=97=B6=20adjust=20=E6=97=A0=E6=B3=95=E5=8F=8A?= =?UTF-8?q?=E6=97=B6=E6=9B=B4=E6=96=B0=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E5=88=87=E6=8D=A2=E5=90=8C=E7=B1=BB?= =?UTF-8?q?=E5=A3=81=E7=BA=B8=E6=97=B6=20parallax=20=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=9A=E5=B1=8F=E4=B8=8B=20parallax=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=8F=8A=E6=97=B6=E5=85=B3=E9=97=AD=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B=20=E4=BF=AE=E5=A4=8D=E5=90=8C?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=99=A8=E4=B8=8B=EF=BC=8C=E9=9D=9E=E5=90=8C?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=A3=81=E7=BA=B8=E6=9C=89=E6=A6=82=E7=8E=87?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=87=E6=8D=A2=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E5=A4=8D=203D=20=E5=A3=81=E7=BA=B8?= =?UTF-8?q?=E9=83=A8=E5=88=86=E8=87=AA=E5=AE=9A=E4=B9=89=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E4=B8=8D=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E9=A2=84=E8=A7=88=E5=88=B0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=97=B6=E8=87=AA=E5=AE=9A=E4=B9=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=8D=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/PlayerWeb/Fields.cs | 13 +- .../Utils/IPC/IpcMessage.cs | 13 +- src/VirtualPaper.Common/Utils/InputUtil.cs | 87 ++++++ .../Utils/PInvoke/Native.cs | 3 +- .../Utils/Players}/SunCalc.cs | 4 +- src/VirtualPaper.DataAssistor/DataAssist.cs | 3 + .../Interfaces/IWallpaperControlClient.cs | 2 +- .../WallpaperControlClient.cs | 6 +- .../Protos/common_models.proto | 4 + .../Interfaces/IApplyService.cs | 3 + .../PLAYER_Web/js/3d_depth/run.js | 33 ++- .../PLAYER_Web/js/base.js | 17 +- .../PLAYER_Web/js/default/run.js | 58 ++-- .../PLAYER_Web/js/tests/time_simulate.js | 39 +++ .../PLAYER_Web/js/utils/global_mouse_event.js | 266 ------------------ .../Utils/WebViewScriptExecutor.cs | 4 + .../Components/General/GeneralEffect.xaml.cs | 6 +- .../WebView/Pages/PageWithPlaying.xaml.cs | 108 +++---- .../WebView/Windows/PreviewWithWeb.xaml.cs | 2 - src/VirtualPaper.PlayerWeb/Form1.cs | 266 ++++++++++-------- .../Utils/WebViewScriptExecutor.cs | 32 ++- .../ViewModels/LibraryContentsViewModel.cs | 15 +- .../ViewModels/WpSettingsViewModel.cs | 22 +- .../Cores/PlaybackControl/Playback.cs | 10 +- .../Cores/Players/Web/WpPlayerWeb.cs | 19 +- .../Cores/WpControl/IWallpaperControl.cs | 2 +- .../Cores/WpControl/WallpaperControl.cs | 38 ++- .../GrpcServers/WallpaperControlServer.cs | 1 + .../WebZipBasicDataBuilder.cs | 28 +- .../WindowsMsg/RawInputMsgWindow.xaml.cs | 237 +++++++++------- src/VirtualPaper/VirtualPaper.csproj | 26 +- 31 files changed, 711 insertions(+), 656 deletions(-) create mode 100644 src/VirtualPaper.Common/Utils/InputUtil.cs rename src/{VirtualPaper.PlayerWeb.Core/Utils => VirtualPaper.Common/Utils/Players}/SunCalc.cs (98%) create mode 100644 src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/tests/time_simulate.js delete mode 100644 src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js diff --git a/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs b/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs index 280ae951..568695b2 100644 --- a/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs +++ b/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs @@ -5,15 +5,12 @@ public static class Fields { public static string PlaybackChanged { get; } = "playbackChanged"; public static string AudioMuteChanged { get; } = "audioMuteChanged"; public static string PropertyListener { get; } = "propertyListener"; - public static string MouseMove { get; } = "mouseMove"; - public static string MouseOut { get; } = "mouseOut"; + public static string MouseOut { get; } = "mouseOut"; + public static string MouseIn { get; } = "mouseIn"; public static string ResourceLoad { get; } = "resourceLoad"; public static string UpdateDimensions { get; } = "updateDimensions"; - public static string TimePerception { get; } = "TimePerception"; - - // RWeb 平台 API:对应 window.wallpaper 对象的内部方法 - public static string WpApiSetPaused { get; } = "window.wallpaper.__setPaused"; - public static string WpApiApplyProperties { get; } = "window.wallpaper.__applyProperties"; - public static string WpApiMouseMove { get; } = "window.wallpaper.__mouseMove"; + public static string TimePerception { get; } = "runTimePerception"; + public static string StartParallax { get; } = "startParallax"; + public static string StopParallax { get; } = "stopParallax"; } } diff --git a/src/VirtualPaper.Common/Utils/IPC/IpcMessage.cs b/src/VirtualPaper.Common/Utils/IPC/IpcMessage.cs index b2e27ead..e9beea53 100644 --- a/src/VirtualPaper.Common/Utils/IPC/IpcMessage.cs +++ b/src/VirtualPaper.Common/Utils/IPC/IpcMessage.cs @@ -53,7 +53,7 @@ public enum MessageType { cmd_suspend, // 挂起(Pause) cmd_resume, // 恢复(Play) cmd_muted, - cmd_update, + cmd_update, cmd_suspend_parallax, cmd_resume_parallax, @@ -81,11 +81,12 @@ public enum ScreenshotFormat { [Serializable] public class VirtualPaperUpdateCmd : IpcMessage { - public string FilePath { get; set; } = string.Empty; - public string RType { get; set; } = string.Empty; - public string WpEffectFilePathTemplate { get; set; } = string.Empty; - public string WpEffectFilePathTemporary { get; set; } = string.Empty; - public string WpEffectFilePathUsing { get; set; } = string.Empty; + //public string FilePath { get; set; } = string.Empty; + //public string RType { get; set; } = string.Empty; + //public string WpEffectFilePathTemplate { get; set; } = string.Empty; + //public string WpEffectFilePathTemporary { get; set; } = string.Empty; + //public string WpEffectFilePathUsing { get; set; } = string.Empty; + public string? Args { get; set; } public VirtualPaperUpdateCmd() : base(MessageType.cmd_update) { } } diff --git a/src/VirtualPaper.Common/Utils/InputUtil.cs b/src/VirtualPaper.Common/Utils/InputUtil.cs new file mode 100644 index 00000000..1161abcf --- /dev/null +++ b/src/VirtualPaper.Common/Utils/InputUtil.cs @@ -0,0 +1,87 @@ +using System.Drawing; +using VirtualPaper.Common.Utils.PInvoke; + +namespace VirtualPaper.Common.Utils { + public static class InputUtil { + static readonly IntPtr MK_LBUTTON = (IntPtr)0x0001; + static readonly IntPtr MK_RBUTTON = (IntPtr)0x0002; + static readonly IntPtr MK_MOVE = (IntPtr)0x0020; + + public static bool IsMouseButtonsSwapped { get; } = + Native.GetSystemMetrics((int)Native.SystemMetric.SM_SWAPBUTTON) != 0; + + public static void MouseLeftButtonDown(IntPtr hwnd, int x, int y) => + ForwardMessageMouse(hwnd, x, y, (int)Native.WM.LBUTTONDOWN, MK_LBUTTON); + + public static void MouseLeftButtonUp(IntPtr hwnd, int x, int y) => + ForwardMessageMouse(hwnd, x, y, (int)Native.WM.LBUTTONUP, MK_LBUTTON); + + public static void MouseRightButtonDown(IntPtr hwnd, int x, int y) => + ForwardMessageMouse(hwnd, x, y, (int)Native.WM.RBUTTONDOWN, MK_RBUTTON); + + public static void MouseRightButtonUp(IntPtr hwnd, int x, int y) => + ForwardMessageMouse(hwnd, x, y, (int)Native.WM.RBUTTONUP, MK_RBUTTON); + + public static void MouseMove(IntPtr hwnd, int x, int y) => + ForwardMessageMouse(hwnd, x, y, (int)Native.WM.MOUSEMOVE, MK_MOVE); + + /// + /// Forward mouse input to the active/inactive window. + /// + /// Target window handle + /// Cursor pos x + /// Cursor pos y + /// mouse message + /// additional msg parameter + public static void ForwardMessageMouse(IntPtr hwnd, int x, int y, int msg, IntPtr wParam) { + // The low-order word specifies the x-coordinate of the cursor, the high-order word specifies the y-coordinate of the cursor. + // Ref: https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-mousemove + uint lParam = Convert.ToUInt32(y); + lParam <<= 16; + lParam |= Convert.ToUInt32(x); + Native.PostMessageW(hwnd, msg, wParam, (UIntPtr)lParam); + } + + /// + /// Forward key input to the active/inactive window. + /// + /// Target window handle + /// key press msg + /// Virtual-Key code + /// OEM code of the key + /// Key is pressed + public static void ForwardMessageKeyboard(IntPtr hwnd, int msg, IntPtr wParam, int scanCode, bool isPressed) { + //Ref: + // https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keydown + // https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keyup + uint lParam = 1u; //press + lParam |= (uint)scanCode << 16; //oem code + lParam |= 1u << 24; //extended key + lParam |= 0u << 29; //context code; Note: Alt key combos wont't work + /* Same as: + * lParam = isPressed ? (lParam |= 0u << 30) : (lParam |= 1u << 30); //prev key state + * lParam = isPressed ? (lParam |= 0u << 31) : (lParam |= 1u << 31); //transition state + */ + lParam = isPressed ? lParam : (lParam |= 3u << 30); + Native.PostMessageW(hwnd, msg, wParam, (UIntPtr)lParam); + } + + /// + /// Converts global mouse position to per-display localized coordinates. + /// + public static Point ToMouseDisplayLocal(int x, int y, Rectangle displayBounds) { + x += -1 * displayBounds.X; + y += -1 * displayBounds.Y; + return new Point(x, y); + } + + /// + /// Converts global mouse position to span-local coordinates. + /// + public static Point ToMouseSpanLocal(int x, int y, Rectangle virtualScreenBounds) { + x -= virtualScreenBounds.Location.X; + y -= virtualScreenBounds.Location.Y; + return new Point(x, y); + } + } +} diff --git a/src/VirtualPaper.Common/Utils/PInvoke/Native.cs b/src/VirtualPaper.Common/Utils/PInvoke/Native.cs index 29461f87..3513f0d2 100644 --- a/src/VirtualPaper.Common/Utils/PInvoke/Native.cs +++ b/src/VirtualPaper.Common/Utils/PInvoke/Native.cs @@ -1373,7 +1373,8 @@ public enum WM : uint { /// /// A top-level window is being replaced. The window exists when the system calls this hook. /// - HSHELL_WINDOWREPLACED = 13 + HSHELL_WINDOWREPLACED = 13, + APP_MOUSEENTER = 32769 } #endregion diff --git a/src/VirtualPaper.PlayerWeb.Core/Utils/SunCalc.cs b/src/VirtualPaper.Common/Utils/Players/SunCalc.cs similarity index 98% rename from src/VirtualPaper.PlayerWeb.Core/Utils/SunCalc.cs rename to src/VirtualPaper.Common/Utils/Players/SunCalc.cs index 8921f2a9..aa082f92 100644 --- a/src/VirtualPaper.PlayerWeb.Core/Utils/SunCalc.cs +++ b/src/VirtualPaper.Common/Utils/Players/SunCalc.cs @@ -1,6 +1,4 @@ -using System; - -namespace VirtualPaper.PlayerWeb.Core.Utils { +namespace VirtualPaper.Common.Utils.Players { public static class SunCalc { /// /// 计算指定日期、经纬度的日出日落时间(UTC) diff --git a/src/VirtualPaper.DataAssistor/DataAssist.cs b/src/VirtualPaper.DataAssistor/DataAssist.cs index cd7a58ca..4f45a1e7 100644 --- a/src/VirtualPaper.DataAssistor/DataAssist.cs +++ b/src/VirtualPaper.DataAssistor/DataAssist.cs @@ -130,6 +130,9 @@ public static WpPlayerData GrpcToPlayerData(Grpc_WpPlayerData grpc_data) { FolderPath = grpc_data.FolderPath, ThumbnailPath = grpc_data.ThumbnailPath, DepthFilePath = grpc_data.DepthFilePath, + WpEffectFilePathTemplate = grpc_data.WpEffectFilePathTemplate, + WpEffectFilePathTemporary = grpc_data.WpEffectFilePathTemporary, + WpEffectFilePathUsing = grpc_data.WpEffectFilePathUsing, }; return playerData; diff --git a/src/VirtualPaper.Grpc.Client/Interfaces/IWallpaperControlClient.cs b/src/VirtualPaper.Grpc.Client/Interfaces/IWallpaperControlClient.cs index 2794d480..c57ebcad 100644 --- a/src/VirtualPaper.Grpc.Client/Interfaces/IWallpaperControlClient.cs +++ b/src/VirtualPaper.Grpc.Client/Interfaces/IWallpaperControlClient.cs @@ -18,7 +18,7 @@ public interface IWallpaperControlClient : IDisposable { Task GetPlayerStartArgsAsync(IWpBasicData data, RuntimeType rtype, string? depthFilePath, CancellationToken token); Task GetPlayerStartArgsByMonitorIdAsync(string monitorId, CancellationToken token); Task RestartAllWallpapersAsync(); - Task SetWallpaperAsync(IMonitor monitor, IWpBasicData metaData, RuntimeType rtype, string? depthFilePath, CancellationToken token); + Task SetWallpaperAsync(IMonitor monitor, IWpBasicData metaData, RuntimeType rtype, bool isFromPreview, string? depthFilePath, string? wpEffectFilePathUsing, string? wpEffectFilePathTemplate, string? wpEffectFilePathTemporary, CancellationToken token); #endregion #region data diff --git a/src/VirtualPaper.Grpc.Client/WallpaperControlClient.cs b/src/VirtualPaper.Grpc.Client/WallpaperControlClient.cs index f80cdbde..e31533a3 100644 --- a/src/VirtualPaper.Grpc.Client/WallpaperControlClient.cs +++ b/src/VirtualPaper.Grpc.Client/WallpaperControlClient.cs @@ -93,13 +93,17 @@ public async Task RestartAllWallpapersAsync() { } public async Task SetWallpaperAsync( - IMonitor monitor, IWpBasicData data, RuntimeType rtype, string? depthFilePath, CancellationToken token) { + IMonitor monitor, IWpBasicData data, RuntimeType rtype, bool isFromPreview, string? depthFilePath, string? wpEffectFilePathUsing, string? wpEffectFilePathTemplate, string? wpEffectFilePathTemporary, CancellationToken token) { Grpc_WpPlayerData wpPlayerdata = DataAssist.MetadataToGrpcPlayingData(data, rtype); wpPlayerdata.DepthFilePath = depthFilePath ?? string.Empty; + wpPlayerdata.WpEffectFilePathUsing = wpEffectFilePathUsing ?? string.Empty; + wpPlayerdata.WpEffectFilePathTemplate = wpEffectFilePathTemplate ?? string.Empty; + wpPlayerdata.WpEffectFilePathTemporary = wpEffectFilePathTemporary ?? string.Empty; var request = new Grpc_SetWallpaperRequest { WpPlayerData = wpPlayerdata, MonitorId = monitor.DeviceId, + IsFromPreview = isFromPreview, }; Grpc_SetWallpaperResponse response = await _client.SetWallpaperAsync(request, cancellationToken: token); diff --git a/src/VirtualPaper.Grpc.Service/Protos/common_models.proto b/src/VirtualPaper.Grpc.Service/Protos/common_models.proto index cdf62f7c..09f550ee 100644 --- a/src/VirtualPaper.Grpc.Service/Protos/common_models.proto +++ b/src/VirtualPaper.Grpc.Service/Protos/common_models.proto @@ -172,6 +172,7 @@ message Grpc_ModifyPreviewRequest { message Grpc_SetWallpaperRequest { Grpc_WpPlayerData wp_player_data = 1; string monitor_id = 2; + bool is_from_preview = 3; } message Grpc_UpdateWpRequest { @@ -299,6 +300,9 @@ message Grpc_WpPlayerData { string file_path = 4; string thumbnail_path = 5; string depth_file_path = 6; + string wp_effect_file_path_template = 7; + string wp_effect_file_path_temporary = 8; + string wp_effect_file_path_using = 9; } message Grpc_WpMetaData { diff --git a/src/VirtualPaper.PlayerWeb.Core/Interfaces/IApplyService.cs b/src/VirtualPaper.PlayerWeb.Core/Interfaces/IApplyService.cs index 821f4239..6d139a6a 100644 --- a/src/VirtualPaper.PlayerWeb.Core/Interfaces/IApplyService.cs +++ b/src/VirtualPaper.PlayerWeb.Core/Interfaces/IApplyService.cs @@ -6,5 +6,8 @@ public interface IApplyService { } public class ApplyEventArgs : EventArgs { + public string? WpEffectFilePathUsing { get; internal set; } + public string? WpEffectFilePathTemplate { get; internal set; } + public string? WpEffectFilePathTemporary { get; internal set; } } } diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/3d_depth/run.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/3d_depth/run.js index aa7653f9..bbe6b925 100644 --- a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/3d_depth/run.js +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/3d_depth/run.js @@ -1,4 +1,4 @@ -import * as THREE from './three.module.min.js'; +import * as THREE from './three.module.min.js'; // --- 全局变量 --- let width = window.innerWidth; @@ -15,6 +15,7 @@ function resourceLoad3D(imgFilePath, depthFilePath) { const root = document.querySelector('.root'); const oldContent = document.getElementById('content'); if (oldContent) { + oldContent.removeAttribute('id'); oldContent.setAttribute('class', 'fade-out'); setTimeout(() => { oldContent.remove(); }, 500); } @@ -200,13 +201,14 @@ window.addEventListener('resize', () => { resizeContent(); }); -function mouseMove3D(x, y) { - // 归一化鼠标坐标 (-1 到 1) - mouse.x = (x / window.innerWidth) * 2 - 1; - mouse.y = -(y / window.innerHeight) * 2 + 1; // WebGL Y轴通常向上,DOM Y轴向下,建议反转 +let parallaxEnabled = false; + +function startParallax() { + parallaxEnabled = true; } -function mouseOut3D() { +function stopParallax() { + parallaxEnabled = false; mouse.x = 0; mouse.y = 0; } @@ -216,8 +218,21 @@ function updateDimensions3D(w, h) { height = h; } +document.addEventListener('mousemove', (e) => { + if (!parallaxEnabled) return; + // 归一化鼠标坐标 (-1 到 1) + mouse.x = (e.clientX / window.innerWidth) * 2 - 1; + mouse.y = -(e.clientY / window.innerHeight) * 2 + 1; // WebGL Y轴向上,DOM Y轴向下,反转 +}); + +document.addEventListener('mouseleave', () => { + if (!parallaxEnabled) return; + mouse.x = 0; + mouse.y = 0; +}); + window.resourceLoad = resourceLoad3D; window.updateDimensions = updateDimensions3D; -window.mouseMove = mouseMove3D; -window.mouseOut = mouseOut3D; -window.updateFit3D = updateFit3D; \ No newline at end of file +window.startParallax = startParallax; +window.stopParallax = stopParallax; +window.updateFit3D = updateFit3D; diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/base.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/base.js index 8c6c8d25..3252ecff 100644 --- a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/base.js +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/base.js @@ -16,6 +16,7 @@ let tpIntervalId = null; let tpConfig = null; // 存储 C# 下发的参数 function propertyListener(propertyType, val) { + console.log('propertyType: ', propertyType, ', val: ', val) switch (propertyType) { case "Volume": volume = parseFloat(val); @@ -38,9 +39,6 @@ function propertyListener(propertyType, val) { case "Scaling": objectFitChanged(parseInt(val)); break; - case "TimePerception": - runTimePerception(val); - break; } return applyFilter(); @@ -64,12 +62,18 @@ function applyFilter() { contentDiv.style.filter = filter.trim(); element.style.objectFit = newFit; + console.log('applied filter successed'); + } else { + console.warn('applyFilter: .source or #content not found'); } if (element && curVideoElementId) { element.volume = volume; element.playbackRate = speed; element.muted = muted; + console.log('applied filter for video successed'); + } else { + console.warn('applyFilter: .source or #content not found for video'); } return "applyFilter success"; @@ -234,3 +238,10 @@ function lerp(a, b, t) { function easeInOut(t) { return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; } + +function mouseOut() { + document.dispatchEvent(new MouseEvent('mouseleave', { + bubbles: false, + cancelable: true, + })); +} diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js index 223e920b..9111f624 100644 --- a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/default/run.js @@ -1,7 +1,8 @@ -const scale = 1.05; // 缩放系数 +const scale = 1.05; // 缩放系数 let centerX; let centerY; let parallaxBackground; +let parallaxEnabled = false; let volume = 0.8; let speed = 1.0; let muted = false; @@ -47,13 +48,12 @@ function resourceLoad(wallpaperType, filePath) { if (newElement) { // 动态插入新内容后立即移除旧内容,以减少闪烁 element.insertAdjacentHTML('beforeend', newElement); - parallaxBackground = document.getElementById('content'); + parallaxBackground = element.lastElementChild; if (oldContent) { + oldContent.removeAttribute('id'); oldContent.setAttribute('class', 'fade-out'); - setTimeout(() => { - oldContent.remove(); - }, 300); + setTimeout(() => { oldContent.remove(); }, 300); } } @@ -101,22 +101,46 @@ function audioMuteChanged(isMuted) { } } -function mouseMove(x, y) { - // 计算鼠标与中心点的相对位置百分比 - const relX = (x - centerX) / centerX; - const relY = (y - centerY) / centerY; +// function mouseMove(x, y) { +// // 计算鼠标与中心点的相对位置百分比 +// const relX = (x - centerX) / centerX; +// const relY = (y - centerY) / centerY; - const rotateX = relY * 2; // X轴旋转角度,根据Y轴偏移量调整 - const rotateY = relX * 2; // Y轴旋转角度,根据X轴偏移量调整 +// const rotateX = relY * 2; // X轴旋转角度,根据Y轴偏移量调整 +// const rotateY = relX * 2; // Y轴旋转角度,根据X轴偏移量调整 - parallaxBackground.style.transform = `scale(${scale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; -} +// parallaxBackground.style.transform = `scale(${scale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; +// } -function mouseOut() { - parallaxBackground.style.transform = 'scale(1) rotateX(0deg) rotateY(0deg)'; -} +// function mouseOut() { +// parallaxBackground.style.transform = 'scale(1) rotateX(0deg) rotateY(0deg)'; +// } function updateDimensions(width, height) { centerX = width / 2; centerY = height / 2; -} \ No newline at end of file +} + +function startParallax() { + parallaxEnabled = true; +} + +function stopParallax() { + parallaxEnabled = false; + if (parallaxBackground) { + parallaxBackground.style.transform = 'scale(1) rotateX(0deg) rotateY(0deg)'; + } +} + +document.addEventListener('mousemove', (e) => { + if (!parallaxEnabled || !parallaxBackground) return; + const relX = (e.clientX - centerX) / centerX; + const relY = (e.clientY - centerY) / centerY; + parallaxBackground.style.transform = + `scale(${scale}) rotateX(${relY * 2}deg) rotateY(${relX * 2}deg)`; +}); + +document.addEventListener('mouseleave', () => { + if (!parallaxEnabled || !parallaxBackground) return; + parallaxBackground.style.transform = 'scale(1) rotateX(0deg) rotateY(0deg)'; +}); diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/tests/time_simulate.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/tests/time_simulate.js new file mode 100644 index 00000000..6cfbbfe1 --- /dev/null +++ b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/tests/time_simulate.js @@ -0,0 +1,39 @@ +// ─── 时间加速测试工具 ─────────────────────────────────────────────── +// speed: 加速倍率(1440 = 1天/分钟,60 = 1小时/分钟) +// startHour: 模拟起始小时(0~23,默认从当前时间开始) +(function setupFakeTime(speed = 120, startHour = 4) { + const msPerDay = 24 * 60 * 60 * 1000; + + // 构造今天 startHour 点的时间戳 + const today = new Date(); + today.setHours(startHour, 0, 0, 0); + const fakeStart = today.getTime(); + const realStart = performance.now(); + + const _realDateNow = Date.now.bind(Date); + + Date.now = function () { + const elapsed = performance.now() - realStart; // 真实流逝 ms + const fakeElapsed = elapsed * speed; // 加速后流逝 ms + return fakeStart + fakeElapsed; + }; + + console.log( + `%c⏩ 时间加速已启动`, + 'color: #4CAF50; font-weight: bold', + `\n起始: ${new Date(Date.now()).toLocaleTimeString()}`, + `\n速率: ${speed}x(每秒 = 现实 ${speed} 秒)` + ); + + // 每秒打印当前模拟时间,方便观察 + const timer = setInterval(() => { + console.log(`🕐 模拟时间: ${new Date(Date.now()).toLocaleTimeString()}`); + }, 1000); + + // 返回停止函数 + window._stopFakeTime = function () { + clearInterval(timer); + Date.now = _realDateNow; + console.log('%c⏹ 时间加速已停止', 'color: #f44336; font-weight: bold'); + }; +})(120, 4); // 120x 速率,从凌晨 4 点开始(覆盖日出过渡期) diff --git a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js b/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js deleted file mode 100644 index 9fde5a70..00000000 --- a/src/VirtualPaper.PlayerWeb.Core/PLAYER_Web/js/utils/global_mouse_event.js +++ /dev/null @@ -1,266 +0,0 @@ -(function () { - - // ============================================ - // 全局虚拟鼠标状态 - // ============================================ - - const virtualMouse = { - - // 原始像素坐标 - x: 0, - y: 0, - - // 0~1 - normalizedX: 0, - normalizedY: 0, - - // WebGL 坐标 - // (-1 ~ 1) - glX: 0, - glY: 0, - - buttons: 0, - - currentTarget: null, - lastTarget: null - }; - - // 全局暴露(可选) - window.VirtualMouse = virtualMouse; - - // ============================================ - // 工具 - // ============================================ - - function normalize(x, y) { - - virtualMouse.normalizedX = - x / window.innerWidth; - - virtualMouse.normalizedY = - y / window.innerHeight; - - virtualMouse.glX = - virtualMouse.normalizedX * 2 - 1; - - virtualMouse.glY = - -(virtualMouse.normalizedY * 2 - 1); - } - - function createMouseEvent(type, x, y, buttons) { - - return new MouseEvent(type, { - - bubbles: true, - cancelable: true, - composed: true, - - clientX: x, - clientY: y, - - screenX: x, - screenY: y, - - buttons: buttons - }); - } - - function createPointerEvent(type, x, y, buttons) { - - return new PointerEvent(type, { - - bubbles: true, - cancelable: true, - composed: true, - - clientX: x, - clientY: y, - - pointerId: 1, - pointerType: 'mouse', - isPrimary: true, - - buttons: buttons - }); - } - - function dispatchToTarget(target, event) { - - if (!target) - return; - - target.dispatchEvent(event); - } - - // ============================================ - // Hover 处理 - // ============================================ - - function processHover(target, x, y, buttons) { - - if (virtualMouse.lastTarget === target) - return; - - // leave - if (virtualMouse.lastTarget) { - - dispatchToTarget( - virtualMouse.lastTarget, - createMouseEvent( - 'mouseleave', - x, - y, - buttons - ) - ); - - dispatchToTarget( - virtualMouse.lastTarget, - createPointerEvent( - 'pointerleave', - x, - y, - buttons - ) - ); - } - - // enter - dispatchToTarget( - target, - createMouseEvent( - 'mouseenter', - x, - y, - buttons - ) - ); - - dispatchToTarget( - target, - createPointerEvent( - 'pointerenter', - x, - y, - buttons - ) - ); - - virtualMouse.lastTarget = target; - } - - // ============================================ - // 核心输入 - // ============================================ - - function injectMouseMove(x, y, buttons = 0) { - - // 更新状态 - virtualMouse.x = x; - virtualMouse.y = y; - virtualMouse.buttons = buttons; - - // 自动归一化 - normalize(x, y); - - // 自动命中目标 - const target = - document.elementFromPoint(x, y) || - document.body; - - virtualMouse.currentTarget = target; - - // hover - processHover( - target, - x, - y, - buttons - ); - - // mousemove - dispatchToTarget( - target, - createMouseEvent( - 'mousemove', - x, - y, - buttons - ) - ); - - // pointermove - dispatchToTarget( - target, - createPointerEvent( - 'pointermove', - x, - y, - buttons - ) - ); - } - - function injectMouseDown(x, y, buttons = 1) { - - const target = - document.elementFromPoint(x, y) || - document.body; - - dispatchToTarget( - target, - createMouseEvent( - 'mousedown', - x, - y, - buttons - ) - ); - - dispatchToTarget( - target, - createPointerEvent( - 'pointerdown', - x, - y, - buttons - ) - ); - } - - function injectMouseUp(x, y, buttons = 0) { - - const target = - document.elementFromPoint(x, y) || - document.body; - - dispatchToTarget( - target, - createMouseEvent( - 'mouseup', - x, - y, - buttons - ) - ); - - dispatchToTarget( - target, - createPointerEvent( - 'pointerup', - x, - y, - buttons - ) - ); - } - - // ============================================ - // 全局 API - // ============================================ - - window.mouseMove = injectMouseMove; - window.mouseDown = injectMouseDown; - window.mouseUp = injectMouseUp; - -})(); \ No newline at end of file diff --git a/src/VirtualPaper.PlayerWeb.Core/Utils/WebViewScriptExecutor.cs b/src/VirtualPaper.PlayerWeb.Core/Utils/WebViewScriptExecutor.cs index 5e6150fe..ca0ed459 100644 --- a/src/VirtualPaper.PlayerWeb.Core/Utils/WebViewScriptExecutor.cs +++ b/src/VirtualPaper.PlayerWeb.Core/Utils/WebViewScriptExecutor.cs @@ -32,6 +32,10 @@ public void EnqueueEvent(string functionName, params object?[] args) { _eventQueue.Enqueue(BuildScript(functionName, args)); } + public void EnqueueRawScript(string script) { + _eventQueue.Enqueue(script); + } + private void StartLoops() { RunStateLoop(); RunEventLoop(); diff --git a/src/VirtualPaper.PlayerWeb.Core/WebView/Components/General/GeneralEffect.xaml.cs b/src/VirtualPaper.PlayerWeb.Core/WebView/Components/General/GeneralEffect.xaml.cs index b22d0b85..b4b4a0f7 100644 --- a/src/VirtualPaper.PlayerWeb.Core/WebView/Components/General/GeneralEffect.xaml.cs +++ b/src/VirtualPaper.PlayerWeb.Core/WebView/Components/General/GeneralEffect.xaml.cs @@ -468,7 +468,11 @@ private void RestoretBtn_Click(object sender, RoutedEventArgs e) { private void SaveAndApplyBtn_Click(object sender, RoutedEventArgs e) { UpdatePropertyFile(true); - _applyService?.OnApply(null); + _applyService?.OnApply(new ApplyEventArgs() { + WpEffectFilePathUsing = _startArgs.WpEffectFilePathUsing, + WpEffectFilePathTemplate = _startArgs.WpEffectFilePathTemplate, + WpEffectFilePathTemporary = _startArgs.WpEffectFilePathTemporary, + }); } #endregion diff --git a/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml.cs b/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml.cs index e8f3ddb0..52a67ab1 100644 --- a/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml.cs +++ b/src/VirtualPaper.PlayerWeb.Core/WebView/Pages/PageWithPlaying.xaml.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; using System.IO; using System.Text.Json; using System.Threading; @@ -11,6 +10,7 @@ using VirtualPaper.Common.Logging; using VirtualPaper.Common.Runtime.PlayerWeb; using VirtualPaper.Common.Utils; +using VirtualPaper.Common.Utils.Players; using VirtualPaper.Common.Utils.Storage; using VirtualPaper.Common.Utils.ThreadContext; using VirtualPaper.PlayerWeb.Core.Utils; @@ -108,50 +108,57 @@ public void UpdateEffectValue(EffectValueChanged e) { #endregion #region parallax + //private void StartParallax() { + // if (Interlocked.CompareExchange(ref _isParallaxRunning, 1, 0) == 1) return; + + // Task.Run(async () => { + // try { + // int lastX = int.MinValue; + // int lastY = int.MinValue; + // bool lastInside = false; + + // while (_isParallaxRunning == 1) { + // int x = (int)_mousePos.X; + // int y = (int)_mousePos.Y; + + // if ((_arcWindow?.IsActive ?? false) && _isPointerInsidePage) { + // _scriptExecutor?.EnqueueState( + // key: "MouseMove", + // functionName: Fields.MouseMove, + // x, y + // ); + // lastX = x; + // lastY = y; + // } + // else if (lastInside) { + // _scriptExecutor?.EnqueueState( + // key: "MouseOut", + // functionName: Fields.MouseOut + // ); + // } + + // lastInside = _isPointerInsidePage; + // } + // } + // catch (Exception e) { + // ArcLog.GetLogger().Error("[Parallax] Loop error", e); + // } + // }); + //} + + //private void StopParallax() { + // if (Interlocked.CompareExchange(ref _isParallaxRunning, 0, 1) == 0) return; + // _scriptExecutor?.EnqueueState( + // key: "MouseOut", + // functionName: Fields.MouseOut + // ); + //} private void StartParallax() { - if (Interlocked.CompareExchange(ref _isParallaxRunning, 1, 0) == 1) return; - - Task.Run(async () => { - try { - int lastX = int.MinValue; - int lastY = int.MinValue; - bool lastInside = false; - - while (_isParallaxRunning == 1) { - int x = (int)_mousePos.X; - int y = (int)_mousePos.Y; - - if ((_arcWindow?.IsActive ?? false) && _isPointerInsidePage) { - _scriptExecutor?.EnqueueState( - key: "MouseMove", - functionName: Fields.MouseMove, - x, y - ); - lastX = x; - lastY = y; - } - else if (lastInside) { - _scriptExecutor?.EnqueueState( - key: "MouseOut", - functionName: Fields.MouseOut - ); - } - - lastInside = _isPointerInsidePage; - } - } - catch (Exception e) { - ArcLog.GetLogger().Error("[Parallax] Loop error", e); - } - }); + _scriptExecutor?.EnqueueEvent(Fields.StartParallax); } private void StopParallax() { - if (Interlocked.CompareExchange(ref _isParallaxRunning, 0, 1) == 0) return; - _scriptExecutor?.EnqueueState( - key: "MouseOut", - functionName: Fields.MouseOut - ); + _scriptExecutor?.EnqueueEvent(Fields.StopParallax); } private void RunParallax(bool isParallaxOn) { @@ -178,7 +185,7 @@ private void RunTimePerception(bool isTimePerceptionOn) { else { // 通知 JS 关闭 var payload = JsonSerializer.Serialize(new { enabled = false }); - _scriptExecutor?.EnqueueEvent(Fields.PropertyListener, Fields.TimePerception, payload); + _scriptExecutor?.EnqueueEvent(Fields.TimePerception, payload); } } @@ -208,8 +215,8 @@ private async Task SendTimePerceptionConfigAsync() { var (latitude, longitude) = await Win32Util.GetSystemLocationAsync(); var (sunriseLocal, sunsetLocal) = SunCalc.Calculate(DateTime.UtcNow.Date, latitude, longitude); - DebugUtil.Output($"sunriseLocal: {sunriseLocal:HH:mm}"); - DebugUtil.Output($"sunriseLocal: {sunsetLocal:HH:mm}"); + //DebugUtil.Output($"sunriseLocal: {sunriseLocal:HH:mm}"); + //DebugUtil.Output($"sunriseLocal: {sunsetLocal:HH:mm}"); var config = new { enabled = true, @@ -225,7 +232,7 @@ private async Task SendTimePerceptionConfigAsync() { }; var payload = JsonSerializer.Serialize(config); - _scriptExecutor?.EnqueueEvent(Fields.PropertyListener, Fields.TimePerception, payload); + _scriptExecutor?.EnqueueEvent(Fields.TimePerception, payload); } private CancellationTokenSource? _tpCts; @@ -266,18 +273,19 @@ private void Webview2_NavigationCompleted(WebView2 sender, CoreWebView2Navigatio switch (_startArgs.RuntimeType) { case "RImage": - case "RVideo": + case "RWeb": + Webview2.IsHitTestVisible = true; UpdateRectToWebview(); _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, _startArgs.RuntimeType, _startArgs.FilePath); break; - case "RImage3D": + case "RVideo": UpdateRectToWebview(); - _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, _startArgs.FilePath, _startArgs.DepthFilePath); + _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, _startArgs.RuntimeType, _startArgs.FilePath); break; - case "RWeb": + case "RImage3D": Webview2.IsHitTestVisible = true; UpdateRectToWebview(); - _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, _startArgs.RuntimeType, _startArgs.FilePath); + _scriptExecutor?.EnqueueEvent(Fields.ResourceLoad, _startArgs.FilePath, _startArgs.DepthFilePath); break; default: break; diff --git a/src/VirtualPaper.PlayerWeb.Core/WebView/Windows/PreviewWithWeb.xaml.cs b/src/VirtualPaper.PlayerWeb.Core/WebView/Windows/PreviewWithWeb.xaml.cs index 66693c2b..8f8b1104 100644 --- a/src/VirtualPaper.PlayerWeb.Core/WebView/Windows/PreviewWithWeb.xaml.cs +++ b/src/VirtualPaper.PlayerWeb.Core/WebView/Windows/PreviewWithWeb.xaml.cs @@ -1,7 +1,6 @@ using System; using System.IO; using System.Text.Json; -using System.Threading.Tasks; using Microsoft.UI.Xaml; using VirtualPaper.Common.Logging; using VirtualPaper.Common.Runtime.PlayerWeb; @@ -11,7 +10,6 @@ using VirtualPaper.PlayerWeb.Core.WebView.Pages; using VirtualPaper.UIComponent.Templates; using VirtualPaper.UIComponent.Utils; -using VirtualPaper.UIComponent.Utils.Extensions; // To learn more about WinUI, the WinUI project structure, // and more about our project templates, see: http://aka.ms/winui-project-info. diff --git a/src/VirtualPaper.PlayerWeb/Form1.cs b/src/VirtualPaper.PlayerWeb/Form1.cs index 9cf23ffa..e05511b8 100644 --- a/src/VirtualPaper.PlayerWeb/Form1.cs +++ b/src/VirtualPaper.PlayerWeb/Form1.cs @@ -1,13 +1,13 @@ -using System.Diagnostics; using System.Text.Json; using Microsoft.Web.WebView2.Core; using VirtualPaper.Common; using VirtualPaper.Common.Events.EffectValue.Base; using VirtualPaper.Common.Extensions; -using VirtualPaper.Common.Logging; using VirtualPaper.Common.Runtime.PlayerWeb; +using VirtualPaper.Common.Utils; using VirtualPaper.Common.Utils.IPC; using VirtualPaper.Common.Utils.PInvoke; +using VirtualPaper.Common.Utils.Players; using VirtualPaper.Common.Utils.Storage; using VirtualPaper.Common.Utils.ThreadContext; using VirtualPaper.PlayerWeb.Extensions; @@ -29,6 +29,54 @@ protected override CreateParams CreateParams { } } + #region native msg + protected override void WndProc(ref Message m) { + switch (m.Msg) { + //case (int)Native.WM.MOUSEMOVE: { + // int x = (short)(m.LParam.ToInt32() & 0xFFFF); + // int y = (short)((m.LParam.ToInt32() >> 16) & 0xFFFF); + // _scriptExecutor?.EnqueueState("mousemove", Fields.MouseMove, x, y); + // return; + // } + //case (int)Native.WM.LBUTTONDOWN: { + // int x = (short)(m.LParam.ToInt32() & 0xFFFF); + // int y = (short)((m.LParam.ToInt32() >> 16) & 0xFFFF); + // _scriptExecutor?.EnqueueEvent(Fields.MouseLeftButtonDown, x, y); + // return; + // } + //case (int)Native.WM.LBUTTONUP: { + // int x = (short)(m.LParam.ToInt32() & 0xFFFF); + // int y = (short)((m.LParam.ToInt32() >> 16) & 0xFFFF); + // _scriptExecutor?.EnqueueEvent(Fields.MouseLeftButtonUp, x, y); + // return; + // } + case (int)Native.WM.MOUSELEAVE: { + OnMouseOut(); + return; + } + case (int)Native.WM.APP_MOUSEENTER: { + OnMouseIn(); + return; + } + } + base.WndProc(ref m); + } + + private void OnMouseIn() { + Interlocked.Exchange(ref _isParallaxOnFromMouse, 1); + RunParallax(); + + _scriptExecutor?.EnqueueEvent(Fields.MouseIn); + } + + private void OnMouseOut() { + Interlocked.Exchange(ref _isParallaxOnFromMouse, 0); + RunParallax(); + + _scriptExecutor?.EnqueueEvent(Fields.MouseOut); + } + #endregion + public Form1(StartArgsWeb args) { InitializeComponent(); @@ -58,7 +106,7 @@ public Form1(StartArgsWeb args) { _startArgs = args; - InitializeWebView2Async().Await(() => { + InitializeWebView2Async().Await(() => { _scriptExecutor = new WebViewScriptExecutor(_webView2); _ = StdInListener(); }, @@ -267,10 +315,12 @@ private void HandleIpcMessage(string message) { }); break; case MessageType.cmd_suspend_parallax: - _isFocusOnDesk = false; + Interlocked.Exchange(ref _isParallaxOnFromIpc, 0); + RunParallax(); break; case MessageType.cmd_resume_parallax: - _isFocusOnDesk = true; + Interlocked.Exchange(ref _isParallaxOnFromIpc, 1); + RunParallax(); break; case MessageType.vp_general_effect: HandleGenerealEffect((VirtualPaperGeneralEffect)obj); @@ -339,16 +389,14 @@ private void HandleMuteCommand(VirtualPaperMutedCmd muted) { _scriptExecutor?.EnqueueEvent(Fields.AudioMuteChanged, muted.IsMuted); } - private void HandleUpdateCommand(VirtualPaperUpdateCmd update) { - if (_startArgs.FilePath != update.FilePath) { - _startArgs.FilePath = update.FilePath; - _startArgs.RuntimeType = update.RType; - _startArgs.WpEffectFilePathTemplate = update.WpEffectFilePathTemplate; - _startArgs.WpEffectFilePathTemporary = update.WpEffectFilePathTemporary; - _startArgs.WpEffectFilePathUsing = update.WpEffectFilePathUsing; - } - - Run(); + private void HandleUpdateCommand(VirtualPaperUpdateCmd update) { + if (update.Args != null) { + var args = JsonSerializer.Deserialize(update.Args); + if (args != null && _startArgs.FilePath != args.FilePath) { + _startArgs = args; + Run(); + } + } } #endregion @@ -430,14 +478,21 @@ private void LoadWpEffect(string? wpEffectFilePath) { } } catch (Exception ex) { - ArcLog.GetLogger().Error(ex); + Program.WriteToParent(new VirtualPaperMessageConsole() { + MsgType = ConsoleMessageType.Error, + Message = $"Failed to load effect config: {ex.Message}" + }); } } private void ExecuteCheckBoxSet(string propertyName, bool val) { switch (propertyName) { case "Parallax": - RunParallax(val); + Interlocked.Exchange(ref _isParallaxOnFromUser, val ? 1 : 0); + RunParallax(); + break; + case "TimeAtmoPerception": + RunTimePerception(val); break; default: break; @@ -451,67 +506,87 @@ private void UpdateRectToWebview() { } #endregion - #region parallax - private void StartParallax() { - if (Interlocked.CompareExchange(ref _isParallaxRunning, 1, 0) == 1) return; + #region time perception + private void RunTimePerception(bool isTimePerceptionOn) { + // 先停止旧任务 + _tpCts?.Cancel(); + _tpCts?.Dispose(); + _tpCts = null; + + if (isTimePerceptionOn) { + _tpCts = new CancellationTokenSource(); + _ = TimePerceptionLoopAsync(_tpCts.Token); + } + else { + // 通知 JS 关闭 + var payload = JsonSerializer.Serialize(new { enabled = false }); + _scriptExecutor?.EnqueueEvent(Fields.TimePerception, payload); + } + } + + /// + /// 每天重新计算日出日落,下发参数给 JS + /// + private async Task TimePerceptionLoopAsync(CancellationToken ct) { + while (!ct.IsCancellationRequested) { + // 计算今日参数并下发 + await SendTimePerceptionConfigAsync(); + + // 等到次日 00:01 再重新计算 + var now = DateTime.Now; + var nextMidnight = now.Date.AddDays(1).AddMinutes(1); + var delay = nextMidnight - now; - Task.Run(() => { try { - int lastX = int.MinValue; - int lastY = int.MinValue; - bool lastInside = false; - - while (_isParallaxRunning == 1) { - if (_isFocusOnDesk) { - var pos = RawInput.GetMousePos(); - int mouseX = pos.X, mouseY = pos.Y; - - bool inside = _windowRc.Left <= mouseX && mouseX <= _windowRc.Right && - _windowRc.Top <= mouseY && mouseY <= _windowRc.Bottom; - //Debug.WriteLine(inside + " " + mouseX + "," + mouseY + " | " + _windowRc.Left + " " + +_windowRc.Right + " " + _windowRc.Top + " " + _windowRc.Bottom); - if (inside) { - _scriptExecutor?.EnqueueState( - key: "MouseMove", - functionName: Fields.MouseMove, - mouseX, mouseY - ); - lastX = mouseX; - lastY = mouseY; - } - else if (lastInside) { - _scriptExecutor?.EnqueueState( - key: "MouseOut", - functionName: Fields.MouseOut - ); - } - - lastInside = inside; - } - else { - _scriptExecutor?.EnqueueState( - key: "MouseOut", - functionName: Fields.MouseOut - ); - } - } + await Task.Delay(delay, ct); } - catch (Exception ex) when (ex is OperationCanceledException) { } - catch (Exception e) { - ArcLog.GetLogger().Error("[Parallax] Loop error", e); + catch (TaskCanceledException) { + break; } - }); + } + } + + private async Task SendTimePerceptionConfigAsync() { + var (latitude, longitude) = await Win32Util.GetSystemLocationAsync(); + var (sunriseLocal, sunsetLocal) = SunCalc.Calculate(DateTime.UtcNow.Date, latitude, longitude); + + var config = new { + enabled = true, + sunrise = sunriseLocal.ToString("HH:mm"), + sunset = sunsetLocal.ToString("HH:mm"), + transitionMinutes = 30, + phases = new { + night = new { brightness = -0.3, hue = 220, saturate = -0.2 }, + dawn = new { brightness = 0.1, hue = 30, saturate = 0.3 }, + day = new { brightness = 0.0, hue = 0, saturate = 0.0 }, + dusk = new { brightness = -0.1, hue = 20, saturate = 0.2 }, + } + }; + + var payload = JsonSerializer.Serialize(config); + _scriptExecutor?.EnqueueEvent(Fields.TimePerception, payload); + } + + private CancellationTokenSource? _tpCts; + #endregion + + #region parallax + + private void StartParallax() { + _scriptExecutor?.EnqueueEvent(Fields.StartParallax); } private void StopParallax() { - if (Interlocked.CompareExchange(ref _isParallaxRunning, 0, 1) == 0) return; - _scriptExecutor?.EnqueueState( - key: "MouseOut", - functionName: Fields.MouseOut - ); + _scriptExecutor?.EnqueueEvent(Fields.StopParallax); } - private void RunParallax(bool isParallaxOn) { - if (isParallaxOn) { + /// + /// 视差启动条件:用户开启 AND 鼠标在本壁纸上 AND IPC 未挂起(无全屏/焦点应用遮盖) + /// + private void RunParallax() { + if (Interlocked.CompareExchange(ref _isParallaxOnFromUser, 0, 0) == 1 && + Interlocked.CompareExchange(ref _isParallaxOnFromMouse, 0, 0) == 1 && + Interlocked.CompareExchange(ref _isParallaxOnFromIpc, 0, 0) == 1) { StartParallax(); } else { @@ -519,62 +594,17 @@ private void RunParallax(bool isParallaxOn) { } } - /// - /// RWeb 专用鼠标追踪:将鼠标坐标实时推送给 window.wallpaper.__mouseMove。 - /// 壁纸作者按需监听 onMouseMove,不监听则无任何开销影响。 - /// 复用 _isParallaxRunning 锁,与 StopParallax 共享停止信号。 - /// - private void StartWebMouseTracking() { - if (Interlocked.CompareExchange(ref _isParallaxRunning, 1, 0) == 1) return; - - Task.Run(() => { - try { - bool lastInside = false; - - while (_isParallaxRunning == 1) { - if (_isFocusOnDesk) { - var pos = RawInput.GetMousePos(); - int mouseX = pos.X, mouseY = pos.Y; - - bool inside = _windowRc.Left <= mouseX && mouseX <= _windowRc.Right && - _windowRc.Top <= mouseY && mouseY <= _windowRc.Bottom; - - if (inside) { - _scriptExecutor?.EnqueueState( - key: "MouseMove", - functionName: Fields.WpApiMouseMove, - mouseX, mouseY - ); - } - else if (lastInside) { - // 鼠标离开窗口,通知壁纸 - _scriptExecutor?.EnqueueState( - key: "MouseMove", - functionName: Fields.WpApiMouseMove, - -1, -1 - ); - } - - lastInside = inside; - } - } - } - catch (Exception ex) when (ex is OperationCanceledException) { } - catch (Exception e) { - ArcLog.GetLogger().Error("[WebMouseTracking] Loop error", e); - } - }); - } #endregion - private readonly StartArgsWeb _startArgs; + private StartArgsWeb _startArgs; private WebView _webView2 = null!; private WebViewScriptExecutor? _scriptExecutor; - private bool _isFocusOnDesk = false; private bool _isPaused = false; private Native.RECT _windowRc; - private volatile int _isParallaxRunning = 0; // 0 = stopped, 1 = running private int cefD3DRenderingSubProcessId; + private int _isParallaxOnFromUser; // 0=关闭, 1=开启(用户效果设置) + private int _isParallaxOnFromMouse; // 0=鼠标不在本壁纸上, 1=在(MouseEnter/Leave) + private int _isParallaxOnFromIpc = 1; // 0=IPC 挂起(全屏/焦点应用遮盖), 1=IPC 允许(默认允许) private readonly CancellationTokenSource _ctsConsoleIn = new(); private static readonly CoreWebView2EnvironmentOptions _environmentOptions = new() { AdditionalBrowserArguments = "--disable-web-security --allow-file-access --allow-file-access-from-files --disk-cache-size=1 --autoplay-policy=no-user-gesture-required " diff --git a/src/VirtualPaper.PlayerWeb/Utils/WebViewScriptExecutor.cs b/src/VirtualPaper.PlayerWeb/Utils/WebViewScriptExecutor.cs index 9d91c63a..02755f7e 100644 --- a/src/VirtualPaper.PlayerWeb/Utils/WebViewScriptExecutor.cs +++ b/src/VirtualPaper.PlayerWeb/Utils/WebViewScriptExecutor.cs @@ -2,7 +2,7 @@ using System.Text; using System.Text.Json; using Microsoft.Web.WebView2.WinForms; -using VirtualPaper.Common.Logging; +using VirtualPaper.Common.Utils.IPC; using VirtualPaper.Common.Utils.ThreadContext; namespace VirtualPaper.PlayerWeb.Utils { @@ -28,6 +28,10 @@ public void EnqueueEvent(string functionName, params object?[] args) { _eventQueue.Enqueue(BuildScript(functionName, args)); } + public void EnqueueRawScript(string script) { + _eventQueue.Enqueue(script); + } + private void StartLoops() { RunStateLoop(); RunEventLoop(); @@ -56,7 +60,7 @@ private void RunEventLoop() { try { while (!_cts.IsCancellationRequested) { if (_eventQueue.TryDequeue(out var script)) { - Dispatch(script); + await DispatchAsync(script); // 等待执行完再处理下一条 } else { await Task.Delay(EventIdleDelay, _cts.Token); @@ -67,6 +71,25 @@ private void RunEventLoop() { }); } + private Task DispatchAsync(string script) { + var tcs = new TaskCompletionSource(); + CrossThreadInvoker.InvokeOnUIThread(async () => { + try { + await EnsureCoreAsync(); + await _webView.ExecuteScriptAsync(script); + tcs.TrySetResult(); + } + catch (Exception ex) { + Program.WriteToParent(new VirtualPaperMessageConsole() { + MsgType = ConsoleMessageType.Error, + Message = $"Script execution error with dispatch_async for {script}: {ex.Message}", + }); + tcs.TrySetResult(); // 即使失败也不阻塞队列 + } + }); + return tcs.Task; + } + private void Dispatch(string script) { CrossThreadInvoker.InvokeOnUIThread(async () => { try { @@ -74,7 +97,10 @@ private void Dispatch(string script) { await _webView.ExecuteScriptAsync(script); } catch (Exception ex) { - ArcLog.GetLogger().Error(ex); + Program.WriteToParent(new VirtualPaperMessageConsole() { + MsgType = ConsoleMessageType.Error, + Message = $"Script execution error for {script}: {ex.Message}", + }); } }); } diff --git a/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs b/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs index 0c7fec9e..0643c29c 100644 --- a/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs +++ b/src/VirtualPaper.WpSettingsPanel/ViewModels/LibraryContentsViewModel.cs @@ -250,9 +250,13 @@ await loadingCtx.RunAsync( Grpc_SetWallpaperResponse response = await _wpControlClient.SetWallpaperAsync( _wpSettingsViewModel.Monitors[_wpSettingsViewModel.SelectedMonitorIndex], - data, + data, rtype, + isFromPreview: true, depthFilePath, + context.WpEffectFilePathUsing, + context.WpEffectFilePathTemplate, + context.WpEffectFilePathTemporary, token); if (!response.IsFinished) { GlobalMessageUtil.ShowError(Constants.I18n.Dialog_Content_ApplyError, isNeedLocalizer: true); @@ -294,16 +298,21 @@ await loadingCtx.RunAsync( if (rtype == RuntimeType.RImage3D) { depthFilePath = SetDepthPath(data); } - + Grpc_SetWallpaperResponse response = await _wpControlClient.SetWallpaperAsync( _wpSettingsViewModel.Monitors[_wpSettingsViewModel.SelectedMonitorIndex], data, rtype, + isFromPreview: false, depthFilePath, + null, null, null, token); if (!response.IsFinished) { GlobalMessageUtil.ShowError(Constants.I18n.Dialog_Content_ApplyError, isNeedLocalizer: true); } + else { + _wpSettingsViewModel.UpdateAdjustWindowCache(); + } } catch (Exception ex) when (ex is OperationCanceledException || @@ -677,7 +686,7 @@ internal async void LoadMoreAsync() { } #endregion - + private struct ImportValue(string filePath, FileType ftype) { internal string FilePath { get; set; } = filePath; diff --git a/src/VirtualPaper.WpSettingsPanel/ViewModels/WpSettingsViewModel.cs b/src/VirtualPaper.WpSettingsPanel/ViewModels/WpSettingsViewModel.cs index 6f28cb65..266ff51f 100644 --- a/src/VirtualPaper.WpSettingsPanel/ViewModels/WpSettingsViewModel.cs +++ b/src/VirtualPaper.WpSettingsPanel/ViewModels/WpSettingsViewModel.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Windows.Input; using Microsoft.Extensions.DependencyInjection; +using Microsoft.UI.Xaml; using VirtualPaper.Common; using VirtualPaper.Common.Logging; using VirtualPaper.Common.Utils.DI; @@ -288,11 +289,7 @@ await loadingCtx.RunAsync( string monitorId = Monitors[SelectedMonitorIndex].DeviceId; var jsonString = await _wpControlClient.GetPlayerStartArgsByMonitorIdAsync(monitorId, token); var adjustWindow = new AdjustConfig(jsonString); - adjustWindow.Closed += (sender, args) => { - var ipcMessage = new VirtualPaperReloadEffectCmd(); - _wpControlClient.SendMessageWallpaperAsync(monitorId, ipcMessage); - _adjusts.Remove(monitorId); - }; + adjustWindow.Closed += OnAdjustWindowClosed; adjustWindow.Applied += (sender, context) => { adjustWindow.Close(); }; @@ -315,6 +312,21 @@ await loadingCtx.RunAsync( Interlocked.Exchange(ref _canAdjust, 1); (WpAdjustCommand as RelayCommand)?.RaiseCanExecuteChanged(); } + + internal void UpdateAdjustWindowCache() { + if (_adjusts.TryGetValue(Monitors[SelectedMonitorIndex].DeviceId, out var adjust)) { + adjust.Closed -= OnAdjustWindowClosed; + adjust.Close(); + } + _adjusts.Remove(Monitors[SelectedMonitorIndex].DeviceId); + } + + private void OnAdjustWindowClosed(object sender, WindowEventArgs e) { + string monitorId = Monitors[SelectedMonitorIndex].DeviceId; + var ipcMessage = new VirtualPaperReloadEffectCmd(); + _wpControlClient.SendMessageWallpaperAsync(monitorId, ipcMessage); + _adjusts.Remove(monitorId); + } #endregion private readonly IList _monitors = []; diff --git a/src/VirtualPaper/Cores/PlaybackControl/Playback.cs b/src/VirtualPaper/Cores/PlaybackControl/Playback.cs index ec82c035..14c437d5 100644 --- a/src/VirtualPaper/Cores/PlaybackControl/Playback.cs +++ b/src/VirtualPaper/Cores/PlaybackControl/Playback.cs @@ -238,6 +238,10 @@ private void AdjustWpBehaviourBaseOnForegroundApp() { ChangeWpState(AppWpRunRulesEnum.KeepRun); ChangeParralaxState(AppParallaxRulesEnum.KeepRun); } + + // 视差的开/停粒度不需要按屏幕区分,_isParallaxOnFromMouse 已经负责了"鼠标在不在"这层粒度 + // IPC 的职责只是全局告诉所有 Player "现在有应用获得焦点,禁止视差" + // 说明在其他焦点应用程序上 else if (_userSettings.Settings.WallpaperArrangement == WallpaperArrangement.Expand) { // 跨越多屏 @@ -248,17 +252,17 @@ private void AdjustWpBehaviourBaseOnForegroundApp() { { ChangeWpState(_userSettings.Settings.AppFocus); } - ChangeParralaxState(AppParallaxRulesEnum.Pause, focusedScreen); + ChangeParralaxState(AppParallaxRulesEnum.Pause); } else if (Native.IsZoomed(fHandle) || IsZoomedCustom(fHandle)) { //maximised window or window covering whole screen. ChangeWpState(_userSettings.Settings.AppFullscreen, focusedScreen); - ChangeParralaxState(AppParallaxRulesEnum.Pause, focusedScreen); + ChangeParralaxState(AppParallaxRulesEnum.Pause); } else { //window is just in focus, not covering screen. ChangeWpState(_userSettings.Settings.AppFocus, focusedScreen); - ChangeParralaxState(AppParallaxRulesEnum.Pause, focusedScreen); + ChangeParralaxState(AppParallaxRulesEnum.Pause); } if (!isDesktop && _userSettings.Settings.IsAudioOnlyOnDesktop) { diff --git a/src/VirtualPaper/Cores/Players/Web/WpPlayerWeb.cs b/src/VirtualPaper/Cores/Players/Web/WpPlayerWeb.cs index eb0e8c6c..860a064e 100644 --- a/src/VirtualPaper/Cores/Players/Web/WpPlayerWeb.cs +++ b/src/VirtualPaper/Cores/Players/Web/WpPlayerWeb.cs @@ -20,7 +20,7 @@ internal partial class WpPlayerWeb : IWpPlayer { public bool IsExited { get; private set; } public bool IsLoaded { get; private set; } public bool IsPreview { get; private set; } - public string StartArgs { get; private set; } + public string StartArgs { get; private set; } = null!; public EventHandler? Closing { get; set; } public WpPlayerWeb(IWpPlayerData data, IMonitor? monitor, bool isPreview) { @@ -136,12 +136,9 @@ public async Task ShowAsync(CancellationToken token) { public void Update(IWpPlayerData data) { this.Data = data; + StartArgs = new PlayerWebSrartArgs(Data, IsPreview).ToJson(); SendMessage(new VirtualPaperUpdateCmd() { - RType = data.RType.ToString(), - FilePath = data.FilePath, - WpEffectFilePathUsing = data.WpEffectFilePathUsing, - WpEffectFilePathTemplate = data.WpEffectFilePathTemplate, - WpEffectFilePathTemporary = data.WpEffectFilePathTemporary, + Args = StartArgs }); } @@ -166,7 +163,7 @@ public void SendMessage(IpcMessage obj) { private void SendMessage(string msg) { try { - DebugUtil.Output($"WpPlayerWeb Send: {msg}"); + DebugUtil.Output($"WpPlayerWeb Send: {msg} to {ProcWindowHandle}"); Proc?.StandardInput.WriteLine(msg); Proc?.StandardInput.Flush(); } @@ -181,10 +178,10 @@ private void Proc_OutputDataReceived(object sender, DataReceivedEventArgs e) { if (!string.IsNullOrEmpty(e.Data)) { try { if (JsonSerializer.Deserialize(e.Data, IpcMessageContext.Default.IpcMessage) is VirtualPaperMessageConsole messageConsole && messageConsole.MsgType == ConsoleMessageType.Error) { - App.Log.Error($"WpPlayerWeb-{_uniqueId}: {messageConsole.Message}"); + App.Log.Error($"WpPlayerWeb-{_uniqueId}: {messageConsole.Message} form {ProcWindowHandle}"); } else { - App.Log.Info($"WpPlayerWeb-{_uniqueId}: {e.Data}"); + App.Log.Info($"WpPlayerWeb-{_uniqueId}: {e.Data} from {ProcWindowHandle}"); } } catch (Exception ex) { @@ -226,6 +223,10 @@ private void Proc_OutputDataReceived(object sender, DataReceivedEventArgs e) { } } } + + if (obj is VirtualPaperMessageConsole mc) { + DebugUtil.Output(mc.Message); + } } else { _tcsProcessWait.TrySetResult(new ArgumentException(e.Data)); diff --git a/src/VirtualPaper/Cores/WpControl/IWallpaperControl.cs b/src/VirtualPaper/Cores/WpControl/IWallpaperControl.cs index 538fb970..dfae775b 100644 --- a/src/VirtualPaper/Cores/WpControl/IWallpaperControl.cs +++ b/src/VirtualPaper/Cores/WpControl/IWallpaperControl.cs @@ -44,7 +44,7 @@ public interface IWallpaperControl : IDisposable { string? GetPlayerStartArgs(IWpPlayerData wpPlayingData, CancellationToken toke = default); Task ResetWallpaperAsync(); Grpc_RestartWallpaperResponse RestoreWallpaper(); - Task SetWallpaperAsync(IWpPlayerData data, IMonitor monitor, bool fromPreview = false, CancellationToken token = default); + Task SetWallpaperAsync(IWpPlayerData data, IMonitor monitor, bool isFromPreview = false, CancellationToken token = default); void SeekWallpaper(IWpPlayerData data, float seek, PlaybackPosType type); void SeekWallpaper(IMonitor monitor, float seek, PlaybackPosType type); void SendMessageWallpaper(string deviceId, string ipcMsg); diff --git a/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs b/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs index 27ea3124..5f600a0d 100644 --- a/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs +++ b/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs @@ -50,7 +50,7 @@ public WallpaperControl( ArcLog.GetLogger().Warn("Highcontrast mode detected, some functionalities may not work properly."); this._monitorManager.MonitorUpdated += MonitorSettingsChanged_Hwnd; - WallpaperChanged += SetupDesktop_WallpaperChanged; + this.WallpaperChanged += SetupDesktop_WallpaperChanged; SystemEvents.SessionSwitch += (s, e) => { if (e.Reason == SessionSwitchReason.SessionUnlock) { @@ -150,7 +150,7 @@ public IWpBasicData GetWpBasicDataByForlderPath(string folderPath) { } public string? GetPlayerStartArgs(IWpPlayerData data, CancellationToken token = default) { - var wpRuntimeData = CreateRuntimeData(data.FilePath, data.FolderPath, data.RType, data.DepthFilePath, true, _monitorManager.PrimaryMonitor.Content); + var wpRuntimeData = CreateRuntimeData(data.FilePath, data.FolderPath, data.RType, data.DepthFilePath, true, _userSettings.Settings.SelectedMonitor.Content); DataAssist.FromRuntimeDataGetPlayerData(data, wpRuntimeData); var startArgs = _wallpaperFactory.CreatePlayerStartArgs(data, true); @@ -225,7 +225,7 @@ public Grpc_RestartWallpaperResponse RestoreWallpaper() { public async Task SetWallpaperAsync( IWpPlayerData data, IMonitor? monitor, - bool fromPreview = false, + bool isFromPreview = false, CancellationToken token = default) { await _semaphoreSlimWallpaperLoadingLock.WaitAsync(token); Grpc_SetWallpaperResponse response = new() { @@ -274,22 +274,20 @@ public async Task SetWallpaperAsync( #endregion bool isStarted = false; - IWpRuntimeData? wpRuntimeData; + if (isFromPreview) { + _ = GetAndSaveTempRuntimeData(data, monitor.Content); + } // restore 时避免覆盖已有的自定义配置 - if (data.WpEffectFilePathUsing == string.Empty) { - if (fromPreview) { - wpRuntimeData = GetTempRuntimeData(data, monitor.Content); - } - else { - wpRuntimeData = CreateRuntimeData(data.FilePath, data.FolderPath, data.RType, data.DepthFilePath, false, monitor.Content); - } + else if (data.WpEffectFilePathUsing == string.Empty) { + IWpRuntimeData? wpRuntimeData = CreateRuntimeData(data.FilePath, data.FolderPath, data.RType, data.DepthFilePath, false, monitor.Content); DataAssist.FromRuntimeDataGetPlayerData(data, wpRuntimeData); - } + } + int monitorIdx = _monitorManager.Monitors.FindIndex(x => x.DeviceId == monitor.DeviceId); switch (_userSettings.Settings.WallpaperArrangement) { case WallpaperArrangement.Per: { - var runningInstance = _wallpapers.Find(x => x.Monitor.DeviceId == monitor.DeviceId && x.Data.Arrangement == WallpaperArrangement.Per); + var runningInstance = _wallpapers.Find(x => x.Monitor.DeviceId == monitor.DeviceId && x.Data.RType == data.RType && x.Data.Arrangement == WallpaperArrangement.Per); if (runningInstance != null) { runningInstance.Update(data); _monitorManager.UpdateTargetMonitorThu(monitorIdx, data.ThumbnailPath); @@ -319,7 +317,7 @@ public async Task SetWallpaperAsync( } break; case WallpaperArrangement.Expand: { - var runningInstance = _wallpapers.Find(x => x.Monitor.DeviceId == monitor.DeviceId && x.Data.Arrangement == WallpaperArrangement.Expand); + var runningInstance = _wallpapers.Find(x => x.Monitor.DeviceId == monitor.DeviceId && x.Data.RType == data.RType && x.Data.Arrangement == WallpaperArrangement.Expand); if (runningInstance != null) { runningInstance.Update(data); _monitorManager.UpdateTargetMonitorThu(monitorIdx, data.ThumbnailPath); @@ -350,7 +348,7 @@ public async Task SetWallpaperAsync( case WallpaperArrangement.Duplicate: { CloseAllWallpapers(); foreach (var item in _monitorManager.Monitors) { - var runningInstance = _wallpapers.Find(x => x.Monitor.DeviceId == monitor.DeviceId && x.Data.Arrangement == WallpaperArrangement.Duplicate); + var runningInstance = _wallpapers.Find(x => x.Monitor.DeviceId == monitor.DeviceId && x.Data.RType == data.RType && x.Data.Arrangement == WallpaperArrangement.Duplicate); if (runningInstance != null) { runningInstance.Update(data); _monitorManager.UpdateTargetMonitorThu(monitorIdx, data.ThumbnailPath); @@ -579,7 +577,7 @@ public IWpBasicData CreateBasicDataInMem( return data; } - private IWpRuntimeData GetTempRuntimeData(IWpPlayerData playerData, string monitorContent) { + private IWpRuntimeData GetAndSaveTempRuntimeData(IWpPlayerData playerData, string monitorContent) { WpRuntimeData data = new(); try { @@ -601,7 +599,7 @@ private IWpRuntimeData GetTempRuntimeData(IWpPlayerData playerData, string monit data.WpEffectFilePathTemplate = playerData.WpEffectFilePathTemplate; data.WpEffectFilePathUsing = playerData.WpEffectFilePathUsing; data.WpEffectFilePathTemporary = playerData.WpEffectFilePathTemporary; - File.Copy(data.WpEffectFilePathTemporary, data.WpEffectFilePathUsing, true); + //File.Copy(data.WpEffectFilePathTemporary, data.WpEffectFilePathUsing, true); data.DepthFilePath = playerData.DepthFilePath; data.FromTempMoveToInstallPath(_userSettings.Settings.WallpaperDir); @@ -1015,9 +1013,9 @@ public void Dispose() { private readonly INativeService _nativeService; private readonly IJobService _jobService; private readonly WpBasicDataBuilderRegistry _builderRegistry = new WpBasicDataBuilderRegistry() - .Register(FileType.FImage, new ImageBasicDataBuilder()) - .Register(FileType.FGif, new ImageBasicDataBuilder()) - .Register(FileType.FVideo, new VideoBasicDataBuilder()) + .Register(FileType.FImage, new ImageBasicDataBuilder()) + .Register(FileType.FGif, new ImageBasicDataBuilder()) + .Register(FileType.FVideo, new VideoBasicDataBuilder()) .Register(FileType.FWebZip, new WebZipBasicDataBuilder()); } } diff --git a/src/VirtualPaper/GrpcServers/WallpaperControlServer.cs b/src/VirtualPaper/GrpcServers/WallpaperControlServer.cs index d7efdcac..4e7f20ed 100644 --- a/src/VirtualPaper/GrpcServers/WallpaperControlServer.cs +++ b/src/VirtualPaper/GrpcServers/WallpaperControlServer.cs @@ -74,6 +74,7 @@ public override async Task SetWallpaper(Grpc_SetWallp Grpc_SetWallpaperResponse response = await _wpControl.SetWallpaperAsync( wpPlayerData, monitor ?? _monitorManager.PrimaryMonitor, + isFromPreview: request.IsFromPreview, token: context.CancellationToken); return await Task.FromResult(response); diff --git a/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs b/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs index 176de7fd..67c46deb 100644 --- a/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs +++ b/src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs @@ -1,7 +1,6 @@ using System.IO; using SharpCompress.Archives; using SharpCompress.Common; -using VirtualPaper.Common; using VirtualPaper.Common.Utils.Storage; using VirtualPaper.Models; using VirtualPaper.Models.Cores; @@ -13,8 +12,9 @@ namespace VirtualPaper.Utils.BasicDataBuilders { /// internal class WebZipBasicDataBuilder : IWpBasicDataBuilder { public void Build(string srcPath, string folderPath, string folderName, WpBasicData data, CancellationToken token) { - // 1. 解压压缩包(zip/rar/7z 统一走 SharpCompress) - using (var archive = ArchiveFactory.Open(srcPath)) { + // 解压压缩包(zip/rar/7z 统一走 SharpCompress) + using (var stream = File.OpenRead(srcPath)) + using (var archive = ArchiveFactory.Open(stream)) { foreach (var entry in archive.Entries.Where(e => !e.IsDirectory)) { token.ThrowIfCancellationRequested(); entry.WriteToDirectory(folderPath, new ExtractionOptions { @@ -26,14 +26,14 @@ public void Build(string srcPath, string folderPath, string folderName, WpBasicD token.ThrowIfCancellationRequested(); - // 2. 读 project.json + // 读 project.json string projectJsonPath = Path.Combine(folderPath, "project.json"); if (!File.Exists(projectJsonPath)) throw new FileNotFoundException("压缩包内缺少 project.json", projectJsonPath); var project = JsonSaver.Load(projectJsonPath, WpWebProjectDataContext.Default); - // 3. HTML 入口路径 + // HTML 入口路径 string entryRelative = NormalizePath(project.File); string entryAbsolute = Path.Combine(folderPath, entryRelative); if (!File.Exists(entryAbsolute)) @@ -41,8 +41,8 @@ public void Build(string srcPath, string folderPath, string folderName, WpBasicD data.FilePath = entryAbsolute; - // 4. 缩略图:将 preview 复制为库规范命名 - string thumbnailPath = Path.Combine(folderPath, folderName + Constants.Field.ThumGifSuff); + // 缩略图:将 preview 复制为库规范命名 + string thumbnailPath = Path.Combine(folderPath, folderName + Common.Constants.Field.ThumGifSuff); string previewRelative = NormalizePath(project.Preview); if (!string.IsNullOrEmpty(previewRelative)) { string previewAbsolute = Path.Combine(folderPath, previewRelative); @@ -53,21 +53,21 @@ public void Build(string srcPath, string folderPath, string folderName, WpBasicD } // 找不到 preview 留空,UI 层显示默认占位图 - // 5. 文件属性(以原始压缩包大小计) + // 文件属性(以原始压缩包大小计) var fileInfo = new FileInfo(srcPath); double sizeMb = fileInfo.Length / 1024.0 / 1024.0; - data.FileSize = sizeMb >= 0.01 ? $"{sizeMb:0.00} MB" : $"{fileInfo.Length / 1024.0:0.00} KB"; + data.FileSize = sizeMb >= 0.01 ? $"{sizeMb:0.00} MB" : $"{fileInfo.Length / 1024.0:0.00} KB"; data.FileExtension = Path.GetExtension(srcPath).ToLowerInvariant(); data.AspectRatio = "-"; data.Resolution = "-"; - // 6. 元数据字段 - data.Title = string.IsNullOrWhiteSpace(project.Title) + // 元数据字段 + data.Title = string.IsNullOrWhiteSpace(project.Title) ? Path.GetFileNameWithoutExtension(srcPath) : project.Title; - data.Desc = project.Desc; + data.Desc = project.Desc; data.Authors = project.Authors; - data.Tags = project.Tags; + data.Tags = project.Tags; } private static string NormalizePath(string? raw) { @@ -75,4 +75,4 @@ private static string NormalizePath(string? raw) { return raw.Replace('\\', '/').TrimStart('/'); } } -} +} \ No newline at end of file diff --git a/src/VirtualPaper/Views/WindowsMsg/RawInputMsgWindow.xaml.cs b/src/VirtualPaper/Views/WindowsMsg/RawInputMsgWindow.xaml.cs index 280f6ad2..1e4ea2f3 100644 --- a/src/VirtualPaper/Views/WindowsMsg/RawInputMsgWindow.xaml.cs +++ b/src/VirtualPaper/Views/WindowsMsg/RawInputMsgWindow.xaml.cs @@ -3,13 +3,14 @@ using Linearstar.Windows.RawInput; using Linearstar.Windows.RawInput.Native; using VirtualPaper.Common; +using VirtualPaper.Common.Logging; +using VirtualPaper.Common.Utils; using VirtualPaper.Common.Utils.PInvoke; using VirtualPaper.Cores.Monitor; using VirtualPaper.Cores.WpControl; -using VirtualPaper.Models.Cores.Interfaces; using VirtualPaper.Services.Interfaces; using VirtualPaper.Utils.Interfcaes; -using Point = System.Drawing.Point; +using Monitor = VirtualPaper.Models.Cores.Monitor; namespace VirtualPaper.Views.WindowsMsg { /// @@ -125,26 +126,19 @@ protected IntPtr Hook(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam, ref bo switch (mouse.Mouse.Buttons) { case RawMouseButtonFlags.LeftButtonDown: - ForwardMessageMouse(P.X, P.Y, (int)Native.WM.LBUTTONDOWN, (IntPtr)0x0001); - MouseDownRaw?.Invoke(this, new MouseClickRawArgs(P.X, P.Y, RawInputMouseBtn.Left)); + RawInput_MouseDownRaw(P.X, P.Y, RawInputMouseBtn.Left); break; case RawMouseButtonFlags.LeftButtonUp: - ForwardMessageMouse(P.X, P.Y, (int)Native.WM.LBUTTONUP, (IntPtr)0x0001); - MouseUpRaw?.Invoke(this, new MouseClickRawArgs(P.X, P.Y, RawInputMouseBtn.Left)); + RawInput_MouseUpRaw(P.X, P.Y, RawInputMouseBtn.Left); break; case RawMouseButtonFlags.RightButtonDown: - //issue: click being skipped; desktop already has its own rightclick contextmenu. - //ForwardMessage(M.X, M.Y, (int)Native.WM.RBUTTONDOWN, (IntPtr)0x0002); - MouseDownRaw?.Invoke(this, new MouseClickRawArgs(P.X, P.Y, RawInputMouseBtn.Right)); + RawInput_MouseDownRaw(P.X, P.Y, RawInputMouseBtn.Right); break; case RawMouseButtonFlags.RightButtonUp: - //issue: click being skipped; desktop already has its own rightclick contextmenu. - //ForwardMessage(M.X, M.Y, (int)Native.WM.RBUTTONUP, (IntPtr)0x0002); - MouseUpRaw?.Invoke(this, new MouseClickRawArgs(P.X, P.Y, RawInputMouseBtn.Right)); + RawInput_MouseUpRaw(P.X, P.Y, RawInputMouseBtn.Right); break; case RawMouseButtonFlags.None: - ForwardMessageMouse(P.X, P.Y, (int)Native.WM.MOUSEMOVE, (IntPtr)0x0020); - MouseMoveRaw?.Invoke(this, new MouseRawArgs(P.X, P.Y)); + RawInput_MouseMoveRaw(P.X, P.Y); break; case RawMouseButtonFlags.MouseWheel: //Disabled, not tested yet. @@ -176,9 +170,11 @@ a very incorrect value. } break; case RawInputKeyboardData keyboard: - ForwardMessageKeyboard((int)keyboard.Keyboard.WindowMessage, - (IntPtr)keyboard.Keyboard.VirutalKey, keyboard.Keyboard.ScanCode, - (keyboard.Keyboard.Flags != RawKeyboardFlags.Up)); + RawInput_KeyboardClickRaw( + (int)keyboard.Keyboard.WindowMessage, + (IntPtr)keyboard.Keyboard.VirutalKey, + keyboard.Keyboard.ScanCode, + keyboard.Keyboard.Flags != RawKeyboardFlags.Up); KeyboardClickRaw?.Invoke(this, new KeyboardClickRawArgs(keyboard.Keyboard.VirutalKey)); break; } @@ -187,120 +183,165 @@ a very incorrect value. return IntPtr.Zero; } - /// - /// Forwards the keyboard message to the required wallpaper window based on given cursor location.
- /// Skips if desktop is not focused. - ///
- /// key press msg. - /// Virtual-Key code. - /// OEM code of the key. - /// Key is pressed. - private void ForwardMessageKeyboard(int msg, IntPtr wParam, int scanCode, bool isPressed) { + private Monitor? _lastHoveredMonitor = null; + + //private void RawInput_MouseMoveRaw(int x, int y) { + // // 非桌面时,仅在 MouseInputMovAlways 开启时才转发 Move + // if (_userSettings.Settings.InputForward == InputForwardMode.off || + // !IsDesktop() && !_userSettings.Settings.MouseInputMovAlways) + // return; + + // try { + // var currentDisplay = _monitorManager.GetMonitorByPoint(new(x, y)); + + // // 光标切换到新显示器时,向旧显示器上的壁纸发送 MouseLeave + // if (_lastHoveredMonitor != null && !_lastHoveredMonitor.Equals(currentDisplay)) { + // foreach (var wallpaper in _wpControl.Wallpapers) { + // if (IsInputAllowed(wallpaper.Data.RType) && + // wallpaper.Monitor.Equals(_lastHoveredMonitor)) { + // Native.PostMessageW(wallpaper.ProcWindowHandle, (int)Native.WM.MOUSELEAVE, IntPtr.Zero, IntPtr.Zero); + // //wallpaper.SendMessage(new VirtualPaperMouseOutCmd()); + // } + // } + // } + // _lastHoveredMonitor = currentDisplay; + + // ForwardMouseToWallpapers(x, y, InputUtil.MouseMove); + // MouseMoveRaw?.Invoke(this, new MouseRawArgs(x, y)); + // } + // catch (Exception e) { + // ArcLog.GetLogger().Error("Mouse Move Forwarding Error: " + e.Message); + // } + //} + private void RawInput_MouseMoveRaw(int x, int y) { + if (_userSettings.Settings.InputForward == InputForwardMode.off || + !IsDesktop() && !_userSettings.Settings.MouseInputMovAlways) + return; + try { - //Don'T forward when not on desktop. - if (_userSettings.Settings.InputForward == InputForwardMode.mousekeyboard && IsDesktop()) { - //Detect active wp based on cursor pos, better way to do this? - if (!Native.GetCursorPos(out Native.POINT P)) - return; + var currentDisplay = _monitorManager.GetMonitorByPoint(new(x, y)); - var display = _monitorManager.GetMonitorByPoint(new(P.X, P.Y)); + if (!currentDisplay.Equals(_lastHoveredMonitor)) { foreach (var wallpaper in _wpControl.Wallpapers) { - if (IsInputAllowed(wallpaper.Data.RType)) { - if (display.Equals(wallpaper.Monitor) || _userSettings.Settings.WallpaperArrangement == WallpaperArrangement.Expand) { - //ref: - //https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keydown - //https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-keyup - uint lParam = 1u; //press - lParam |= (uint)scanCode << 16; //oem code - lParam |= 1u << 24; //extended key - lParam |= 0u << 29; //context code; Note: Alt key combos wont'T work - /* Same as: - * lParam = isPressed ? (lParam |= 0u << 30) : (lParam |= 1u << 30); //prev key state - * lParam = isPressed ? (lParam |= 0u << 31) : (lParam |= 1u << 31); //transition state - */ - lParam = isPressed ? lParam : (lParam |= 3u << 30); - Native.PostMessageW(wallpaper.RealPlayerWindowHandle, msg, wParam, (UIntPtr)lParam); - } + if (!IsInputAllowed(wallpaper.Data.RType)) continue; + + if (_lastHoveredMonitor != null && + wallpaper.Monitor.Equals(_lastHoveredMonitor)) { + Native.PostMessageW(wallpaper.ProcWindowHandle, + (int)Native.WM.MOUSELEAVE, IntPtr.Zero, IntPtr.Zero); + } + + if (wallpaper.Monitor.Equals(currentDisplay)) { + Native.PostMessageW(wallpaper.ProcWindowHandle, + (int)Native.WM.APP_MOUSEENTER, IntPtr.Zero, IntPtr.Zero); } } + _lastHoveredMonitor = currentDisplay; // ✅ 只在变化时赋值 } + + ForwardMouseToWallpapers(x, y, InputUtil.MouseMove); + MouseMoveRaw?.Invoke(this, new MouseRawArgs(x, y)); } catch (Exception e) { - App.Log.Error("Keyboard Forwarding Errors:" + e.Message); + ArcLog.GetLogger().Error("Mouse Move Forwarding Error: " + e.Message); } } - /// - /// Forwards the mouse message to the required wallpaper window based on given cursor location.
- /// Skips if apps are in foreground. - ///
- /// Cursor pos x - /// Cursor pos y - /// mouse message - /// additional msg parameter - private void ForwardMessageMouse(int x, int y, int msg, IntPtr wParam) { - if (_userSettings.Settings.InputForward == InputForwardMode.off) { + private void RawInput_MouseDownRaw(int x, int y, RawInputMouseBtn btn) { + if (_userSettings.Settings.InputForward == InputForwardMode.off || !IsDesktop()) return; + + try { + switch (btn) { + case RawInputMouseBtn.Left: + if (!InputUtil.IsMouseButtonsSwapped) + ForwardMouseToWallpapers(x, y, InputUtil.MouseLeftButtonDown); + else + ForwardMouseToWallpapers(x, y, InputUtil.MouseRightButtonDown); + break; + case RawInputMouseBtn.Right: + if (InputUtil.IsMouseButtonsSwapped) + ForwardMouseToWallpapers(x, y, InputUtil.MouseLeftButtonDown); + // 桌面右键已有系统上下文菜单,不额外转发右键 Down + break; + } + MouseDownRaw?.Invoke(this, new MouseClickRawArgs(x, y, btn)); } - else if (!IsDesktop()) //Don'T forward when not on desktop. - { - if (msg != (int)Native.WM.MOUSEMOVE || !_userSettings.Settings.MouseInputMovAlways) { - return; + catch (Exception e) { + ArcLog.GetLogger().Error("Mouse Down Forwarding Error: " + e.Message); + } + } + + private void RawInput_MouseUpRaw(int x, int y, RawInputMouseBtn btn) { + if (_userSettings.Settings.InputForward == InputForwardMode.off || !IsDesktop()) + return; + + try { + switch (btn) { + case RawInputMouseBtn.Left: + if (!InputUtil.IsMouseButtonsSwapped) + ForwardMouseToWallpapers(x, y, InputUtil.MouseLeftButtonUp); + else + ForwardMouseToWallpapers(x, y, InputUtil.MouseRightButtonUp); + break; + case RawInputMouseBtn.Right: + if (InputUtil.IsMouseButtonsSwapped) + ForwardMouseToWallpapers(x, y, InputUtil.MouseLeftButtonUp); + break; } + MouseUpRaw?.Invoke(this, new MouseClickRawArgs(x, y, btn)); } + catch (Exception e) { + ArcLog.GetLogger().Error("Mouse Up Forwarding Error: " + e.Message); + } + } + + private void RawInput_KeyboardClickRaw(int msg, IntPtr wParam, int scanCode, bool isPressed) { + // Don't forward when not on desktop. + if (_userSettings.Settings.InputForward != InputForwardMode.mousekeyboard || !IsDesktop()) + return; try { - var display = _monitorManager.GetMonitorByPoint(new(x, y)); - var mouse = CalculateMousePos(x, y, display, _userSettings.Settings.WallpaperArrangement); + if (!Native.GetCursorPos(out Native.POINT P)) + return; + + var display = _monitorManager.GetMonitorByPoint(new(P.X, P.Y)); foreach (var wallpaper in _wpControl.Wallpapers) { - if (IsInputAllowed(wallpaper.Data.RType)) { - if (wallpaper.Monitor.Equals(display) || _userSettings.Settings.WallpaperArrangement == WallpaperArrangement.Expand) { - //The low-order word specifies the x-coordinate of the cursor, the high-order word specifies the y-coordinate of the cursor. - //ref: https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-mousemove - uint lParam = Convert.ToUInt32(mouse.Y); - lParam <<= 16; - lParam |= Convert.ToUInt32(mouse.X); - Native.PostMessageW(wallpaper.RealPlayerWindowHandle, msg, wParam, (UIntPtr)lParam); - } + if (IsInputAllowed(wallpaper.Data.RType) && + (display.Equals(wallpaper.Monitor) || _userSettings.Settings.WallpaperArrangement == WallpaperArrangement.Expand)) { + InputUtil.ForwardMessageKeyboard(wallpaper.RealPlayerWindowHandle, msg, wParam, scanCode, isPressed); } } } catch (Exception e) { - App.Log.Error("Mouse Forwarding Errors:" + e.Message); + ArcLog.GetLogger().Error("Keyboard Forwarding Error: " + e.Message); } } - #endregion //input forward - - #region helpers /// - /// 将全局鼠标光标位置值转换为每个显示器的本地化值。 + /// 将鼠标动作通过坐标本地化后分发给匹配的壁纸窗口。 /// - /// Cursor pos x - /// Cursor pos y - /// Target _monitor device - /// 本地化的游标值 - private Point CalculateMousePos(int x, int y, IMonitor monitor, WallpaperArrangement arrangement) { - if (_monitorManager.IsMultiScreen()) { - if (arrangement == WallpaperArrangement.Expand) { - var screenArea = _monitorManager.VirtualScreenBounds; - x -= screenArea.Location.X; - y -= screenArea.Location.Y; - } - else // 每个监视器或复制模式 - { - x += -1 * monitor.Bounds.X; - y += -1 * monitor.Bounds.Y; + private void ForwardMouseToWallpapers(int x, int y, Action forwardAction) { + var display = _monitorManager.GetMonitorByPoint(new(x, y)); + var pos = _userSettings.Settings.WallpaperArrangement switch { + WallpaperArrangement.Expand => InputUtil.ToMouseSpanLocal(x, y, _monitorManager.VirtualScreenBounds), + _ => InputUtil.ToMouseDisplayLocal(x, y, display.Bounds), + }; + + foreach (var wallpaper in _wpControl.Wallpapers) { + if (IsInputAllowed(wallpaper.Data.RType) && + (wallpaper.Monitor.Equals(display) || _userSettings.Settings.WallpaperArrangement == WallpaperArrangement.Expand)) { + forwardAction(wallpaper.RealPlayerWindowHandle, pos.X, pos.Y); } } - - return new Point(x, y); } + #endregion //input forward + + #region helpers private static bool IsInputAllowed(RuntimeType category) { return category switch { - RuntimeType.RImage => false, - RuntimeType.RImage3D => false, + RuntimeType.RImage or RuntimeType.RImage3D or RuntimeType.RWeb => true, RuntimeType.RVideo => false, _ => false, }; diff --git a/src/VirtualPaper/VirtualPaper.csproj b/src/VirtualPaper/VirtualPaper.csproj index b26d446e..7e4f1764 100644 --- a/src/VirtualPaper/VirtualPaper.csproj +++ b/src/VirtualPaper/VirtualPaper.csproj @@ -30,24 +30,22 @@ - + - + - - - + + + <_PluginFiles Include="$(MSBuildProjectDirectory)\Plugins\**\*" Exclude="$(MSBuildProjectDirectory)\Plugins\**\*.pdb; $(MSBuildProjectDirectory)\Plugins\**\*.xml" /> @@ -56,8 +54,8 @@ - - + + <_PluginOutDir>$(OutDir)Plugins\ @@ -95,7 +93,7 @@ - + From 05903bcffad47aa80557dbcd08ccbf66a0380f4c Mon Sep 17 00:00:00 2001 From: paperhammer Date: Fri, 22 May 2026 12:56:26 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fix=EF=BC=9A=E8=A1=A5=E5=85=A8=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Infrastructure/TestDataBuilder.cs | 18 ++ .../T_Common/InputUtilTests.cs | 160 +++++++++++ .../T_DataAssist/DataAssistMappingTests.cs | 71 +++++ .../T_Playback/PlaybackTests.cs | 124 +++++++++ .../T_ScrSreen/ScrControlTests.cs | 70 +++++ .../T_Tray/TrayCommandTests.cs | 73 +++++ .../UserSettingsServiceTests.cs | 32 +++ .../WallpaperControl_SetWallpaperTests.cs | 259 ++++++++++++++++++ .../T_WpSettings/AddToLibViewModelTests.cs | 2 + .../LibraryContentsViewModelTests.cs | 71 +++++ .../T_WpSettings/WpSettingsViewModelTests.cs | 68 +++++ .../Cores/ScreenSaver/ScrControl.cs | 22 +- 12 files changed, 959 insertions(+), 11 deletions(-) create mode 100644 src/VirtualPaper.Core.Test/T_Common/InputUtilTests.cs diff --git a/src/VirtualPaper.Core.Test/Infrastructure/TestDataBuilder.cs b/src/VirtualPaper.Core.Test/Infrastructure/TestDataBuilder.cs index c1565fd9..33345c2b 100644 --- a/src/VirtualPaper.Core.Test/Infrastructure/TestDataBuilder.cs +++ b/src/VirtualPaper.Core.Test/Infrastructure/TestDataBuilder.cs @@ -35,6 +35,24 @@ public static Mock CreateValidPlayerData( return mock; } + /// + /// 创建一个带有完整 effect 路径的合法 IWpPlayerData Mock,用于测试 isFromPreview=true 分支。 + /// WpEffectFilePathUsing 为非空(已有应用配置),其余 effect 路径同样指向真实临时文件。 + /// + public static Mock CreateValidPlayerDataWithEffectPaths( + List tempFilesToCleanup, + RuntimeType rtype = RuntimeType.RImage, + string wpId = "wp_preview_001") { + var mock = CreateValidPlayerData(tempFilesToCleanup, rtype, wpId); + var effectUsing = CreateTempFile(tempFilesToCleanup); + var effectTemplate = CreateTempFile(tempFilesToCleanup); + var effectTemp = CreateTempFile(tempFilesToCleanup); + mock.Setup(d => d.WpEffectFilePathUsing).Returns(effectUsing); + mock.Setup(d => d.WpEffectFilePathTemplate).Returns(effectTemplate); + mock.Setup(d => d.WpEffectFilePathTemporary).Returns(effectTemp); + return mock; + } + public static Mock CreateWpPlayer( IWpPlayerData data, IMonitor monitor, diff --git a/src/VirtualPaper.Core.Test/T_Common/InputUtilTests.cs b/src/VirtualPaper.Core.Test/T_Common/InputUtilTests.cs new file mode 100644 index 00000000..9b0b6539 --- /dev/null +++ b/src/VirtualPaper.Core.Test/T_Common/InputUtilTests.cs @@ -0,0 +1,160 @@ +using System.Drawing; +using VirtualPaper.Common.Utils; + +namespace VirtualPaper.Core.Test.T_Common { + [TestClass] + [TestCategory("Backend")] + public class InputUtilTests { + + // ------------------------------------------------------- + // ToMouseDisplayLocal + // ------------------------------------------------------- + + [TestMethod] + [Description("ToMouseDisplayLocal converts global coords to display-local by subtracting display origin")] + public void ToMouseDisplayLocal_WhenDisplayStartsAtOrigin_ReturnsSameCoords() { + var bounds = new Rectangle(0, 0, 1920, 1080); + + var result = InputUtil.ToMouseDisplayLocal(200, 300, bounds); + + Assert.AreEqual(200, result.X); + Assert.AreEqual(300, result.Y); + } + + [TestMethod] + [Description("ToMouseDisplayLocal adjusts for non-zero display origin (e.g. secondary monitor at x=1920)")] + public void ToMouseDisplayLocal_WhenDisplayHasOffset_SubtractsOffset() { + var bounds = new Rectangle(1920, 0, 1920, 1080); + + var result = InputUtil.ToMouseDisplayLocal(2100, 500, bounds); + + Assert.AreEqual(180, result.X); // 2100 - 1920 + Assert.AreEqual(500, result.Y); // 0 offset on Y + } + + [TestMethod] + [Description("ToMouseDisplayLocal handles negative display offset (display left of primary)")] + public void ToMouseDisplayLocal_WhenDisplayHasNegativeOffset_AddsAbsoluteOffset() { + var bounds = new Rectangle(-1920, 0, 1920, 1080); + + var result = InputUtil.ToMouseDisplayLocal(-500, 100, bounds); + + Assert.AreEqual(1420, result.X); // -500 - (-1920) = 1420 + Assert.AreEqual(100, result.Y); + } + + [TestMethod] + [Description("ToMouseDisplayLocal handles vertical offset (display stacked below primary)")] + public void ToMouseDisplayLocal_WhenDisplayHasVerticalOffset_SubtractsYOffset() { + var bounds = new Rectangle(0, 1080, 1920, 1080); + + var result = InputUtil.ToMouseDisplayLocal(100, 1200, bounds); + + Assert.AreEqual(100, result.X); + Assert.AreEqual(120, result.Y); // 1200 - 1080 + } + + [TestMethod] + [Description("ToMouseDisplayLocal returns origin (0,0) when cursor is at top-left corner of the display")] + public void ToMouseDisplayLocal_WhenCursorAtDisplayTopLeft_ReturnsOrigin() { + var bounds = new Rectangle(3840, 0, 1920, 1080); + + var result = InputUtil.ToMouseDisplayLocal(3840, 0, bounds); + + Assert.AreEqual(0, result.X); + Assert.AreEqual(0, result.Y); + } + + // ------------------------------------------------------- + // ToMouseSpanLocal + // ------------------------------------------------------- + + [TestMethod] + [Description("ToMouseSpanLocal subtracts virtual screen origin from global cursor position")] + public void ToMouseSpanLocal_WhenVirtualScreenStartsAtOrigin_ReturnsSameCoords() { + var virtualBounds = new Rectangle(0, 0, 3840, 1080); + + var result = InputUtil.ToMouseSpanLocal(500, 300, virtualBounds); + + Assert.AreEqual(500, result.X); + Assert.AreEqual(300, result.Y); + } + + [TestMethod] + [Description("ToMouseSpanLocal adjusts when virtual screen has a non-zero X origin")] + public void ToMouseSpanLocal_WhenVirtualScreenHasOffset_SubtractsOffset() { + var virtualBounds = new Rectangle(-1920, 0, 3840, 1080); + + var result = InputUtil.ToMouseSpanLocal(0, 0, virtualBounds); + + Assert.AreEqual(1920, result.X); // 0 - (-1920) + Assert.AreEqual(0, result.Y); + } + + [TestMethod] + [Description("ToMouseSpanLocal handles vertical virtual screen offset")] + public void ToMouseSpanLocal_WhenVirtualScreenHasVerticalOffset_SubtractsYOffset() { + var virtualBounds = new Rectangle(0, -200, 1920, 1280); + + var result = InputUtil.ToMouseSpanLocal(100, 0, virtualBounds); + + Assert.AreEqual(100, result.X); + Assert.AreEqual(200, result.Y); // 0 - (-200) + } + + [TestMethod] + [Description("ToMouseSpanLocal returns (0,0) when cursor is at virtual screen origin")] + public void ToMouseSpanLocal_WhenCursorAtVirtualOrigin_ReturnsOrigin() { + var virtualBounds = new Rectangle(500, 200, 3840, 1080); + + var result = InputUtil.ToMouseSpanLocal(500, 200, virtualBounds); + + Assert.AreEqual(0, result.X); + Assert.AreEqual(0, result.Y); + } + + // ------------------------------------------------------- + // ForwardMessageMouse – lParam encoding + // ------------------------------------------------------- + + [TestMethod] + [Description("ForwardMessageMouse encodes x in low word and y in high word of lParam")] + public void ForwardMessageMouse_LParamEncoding_XInLowWordYInHighWord() { + int capturedMsg = 0; + IntPtr capturedWParam = IntPtr.Zero; + UIntPtr capturedLParam = UIntPtr.Zero; + + // We can verify the encoding formula directly without P/Invoke: + // lParam = (uint)y << 16 | (uint)x + int x = 0x00FF; + int y = 0x00AB; + uint expected = ((uint)y << 16) | (uint)x; + + uint actual = Convert.ToUInt32(y); + actual <<= 16; + actual |= Convert.ToUInt32(x); + + Assert.AreEqual(expected, actual, + "High word should contain Y coordinate, low word should contain X coordinate"); + } + + [TestMethod] + [Description("ToMouseDisplayLocal result X is always >= 0 when cursor is inside display bounds")] + public void ToMouseDisplayLocal_WhenCursorInsideBounds_XIsNonNegative() { + var bounds = new Rectangle(1920, 0, 1920, 1080); + // Cursor at left edge of second monitor + var result = InputUtil.ToMouseDisplayLocal(1920, 540, bounds); + Assert.IsTrue(result.X >= 0, "X coordinate should be non-negative when inside display"); + } + + [TestMethod] + [Description("ToMouseSpanLocal result X is always >= 0 when cursor is inside virtual screen bounds")] + public void ToMouseSpanLocal_WhenCursorInsideBounds_XIsNonNegative() { + var virtualBounds = new Rectangle(-1920, -200, 5760, 1480); + // Cursor at virtual origin + var result = InputUtil.ToMouseSpanLocal(-1920, -200, virtualBounds); + Assert.IsTrue(result.X >= 0, "X coordinate should be non-negative when at virtual screen origin"); + Assert.IsTrue(result.Y >= 0, "Y coordinate should be non-negative when at virtual screen origin"); + } + } +} diff --git a/src/VirtualPaper.Core.Test/T_DataAssist/DataAssistMappingTests.cs b/src/VirtualPaper.Core.Test/T_DataAssist/DataAssistMappingTests.cs index 8afecd0f..e5ce24a3 100644 --- a/src/VirtualPaper.Core.Test/T_DataAssist/DataAssistMappingTests.cs +++ b/src/VirtualPaper.Core.Test/T_DataAssist/DataAssistMappingTests.cs @@ -374,6 +374,77 @@ public void FromRuntimeDataGetPlayerData_CopiesAllEffectPaths() { Assert.AreEqual(runtime.DepthFilePath, player.DepthFilePath); } + // ════════════════════════════════════════════════════════════════════════ + // 7. GrpcToPlayerData — effect path 字段(最近新增字段的回归测试) + // ════════════════════════════════════════════════════════════════════════ + + [TestMethod] + [Description("GrpcToPlayerData must preserve WpEffectFilePathUsing, Template, Temporary — these are the fields central to the recent isFromPreview fix")] + public void PlayerData_GrpcToPlayerData_PreservesEffectPathFields() { + var grpc = new Grpc_WpPlayerData { + WallpaperUid = "uid-effect-test", + RType = Grpc_RuntimeType.RImage, + FilePath = @"C:\wp\file.jpg", + FolderPath = @"C:\wp", + ThumbnailPath = @"C:\wp\thumb.jpg", + WpEffectFilePathUsing = @"C:\wp\effects\using.json", + WpEffectFilePathTemplate = @"C:\wp\effects\template.json", + WpEffectFilePathTemporary = @"C:\wp\effects\temp.json", + }; + + var player = DataAssist.GrpcToPlayerData(grpc); + + Assert.AreEqual(grpc.WpEffectFilePathUsing, player.WpEffectFilePathUsing, + "WpEffectFilePathUsing must survive the gRPC round-trip"); + Assert.AreEqual(grpc.WpEffectFilePathTemplate, player.WpEffectFilePathTemplate, + "WpEffectFilePathTemplate must survive the gRPC round-trip"); + Assert.AreEqual(grpc.WpEffectFilePathTemporary, player.WpEffectFilePathTemporary, + "WpEffectFilePathTemporary must survive the gRPC round-trip"); + } + + [TestMethod] + [Description("GrpcToPlayerData when all effect paths are empty strings should not throw and should preserve empty values")] + public void PlayerData_GrpcToPlayerData_WhenEffectPathsEmpty_PreservesEmpty() { + var grpc = new Grpc_WpPlayerData { + WallpaperUid = "uid-no-effect", + RType = Grpc_RuntimeType.RImage, + FilePath = @"C:\wp\file.jpg", + FolderPath = @"C:\wp", + ThumbnailPath = string.Empty, + WpEffectFilePathUsing = string.Empty, + WpEffectFilePathTemplate = string.Empty, + WpEffectFilePathTemporary = string.Empty, + }; + + var player = DataAssist.GrpcToPlayerData(grpc); + + Assert.AreEqual(string.Empty, player.WpEffectFilePathUsing); + Assert.AreEqual(string.Empty, player.WpEffectFilePathTemplate); + Assert.AreEqual(string.Empty, player.WpEffectFilePathTemporary); + } + + [TestMethod] + [Description("RuntimeData roundtrip: three effect paths must survive BasicData→Grpc→PlayerData chain")] + public void RuntimeData_EffectPaths_SurviveRoundtripToPlayerData() { + var runtime = new WpRuntimeData { + WpEffectFilePathTemplate = @"C:\effects\template.json", + WpEffectFilePathTemporary = @"C:\effects\temp.json", + WpEffectFilePathUsing = @"C:\effects\using.json", + DepthFilePath = @"C:\depth.png", + AppInfo = new ApplicationInfo(), + }; + + var grpc = DataAssist.RuntimeDataToGrpcData(runtime); + var restored = DataAssist.GrpcToRuntimeData(grpc); + + Assert.AreEqual(runtime.WpEffectFilePathUsing, restored.WpEffectFilePathUsing, + "WpEffectFilePathUsing lost in RuntimeData roundtrip"); + Assert.AreEqual(runtime.WpEffectFilePathTemplate, restored.WpEffectFilePathTemplate, + "WpEffectFilePathTemplate lost in RuntimeData roundtrip"); + Assert.AreEqual(runtime.WpEffectFilePathTemporary, restored.WpEffectFilePathTemporary, + "WpEffectFilePathTemporary lost in RuntimeData roundtrip"); + } + // ════════════════════════════════════════════════════════════════════════ // 辅助工厂方法 // ════════════════════════════════════════════════════════════════════════ diff --git a/src/VirtualPaper.Core.Test/T_Playback/PlaybackTests.cs b/src/VirtualPaper.Core.Test/T_Playback/PlaybackTests.cs index 5c3259ef..47f1a73c 100644 --- a/src/VirtualPaper.Core.Test/T_Playback/PlaybackTests.cs +++ b/src/VirtualPaper.Core.Test/T_Playback/PlaybackTests.cs @@ -289,5 +289,129 @@ public void RunPlayback_WhenPowerSavingOff_AndSettingIsPause_ShouldNotPause() { _mockWallpaper1.Verify(w => w.Pause(), Times.Never); } + + // ------------------------------------------------------- + // ChangeParralaxState — 全局(无 targetMonitor)路径 + // ------------------------------------------------------- + + [TestMethod] + [Description("ChangeParralaxState(Pause, null) should call PauseParallax on ALL wallpapers")] + public void ChangeParralaxState_PauseGlobal_ShouldCallPauseParallaxOnAllWallpapers() { + var playback = CreatePlayback(); + + playback.ChangeParralaxState(AppParallaxRulesEnum.Pause); + + _mockWallpaper1.Verify(w => w.PauseParallax(), Times.Once, + "Wallpaper 1 PauseParallax should be called in global Pause mode"); + _mockWallpaper2.Verify(w => w.PauseParallax(), Times.Once, + "Wallpaper 2 PauseParallax should be called in global Pause mode"); + } + + [TestMethod] + [Description("ChangeParralaxState(KeepRun, null) should call ResumeParallax on ALL wallpapers")] + public void ChangeParralaxState_KeepRunGlobal_ShouldCallResumeParallaxOnAllWallpapers() { + var playback = CreatePlayback(); + + playback.ChangeParralaxState(AppParallaxRulesEnum.KeepRun); + + _mockWallpaper1.Verify(w => w.ResumeParallax(), Times.Once, + "Wallpaper 1 ResumeParallax should be called in global KeepRun mode"); + _mockWallpaper2.Verify(w => w.ResumeParallax(), Times.Once, + "Wallpaper 2 ResumeParallax should be called in global KeepRun mode"); + } + + [TestMethod] + [Description("ChangeParralaxState(Pause, specificMonitor) should only pause the wallpaper on that monitor")] + public void ChangeParralaxState_PauseWithTargetMonitor_ShouldOnlyPauseTargetMonitor() { + // Arrange: wallpaper1 bound to monitor1, wallpaper2 bound to monitor2 + var monitor1 = new Mock(); + var monitor2 = new Mock(); + monitor1.Setup(m => m.Equals(monitor1.Object)).Returns(true); + monitor1.Setup(m => m.Equals(monitor2.Object)).Returns(false); + monitor2.Setup(m => m.Equals(monitor1.Object)).Returns(false); + monitor2.Setup(m => m.Equals(monitor2.Object)).Returns(true); + + _mockWallpaper1.Setup(w => w.Monitor).Returns(monitor1.Object); + _mockWallpaper2.Setup(w => w.Monitor).Returns(monitor2.Object); + + var playback = CreatePlayback(); + + // Act: pause only monitor1 + playback.ChangeParralaxState(AppParallaxRulesEnum.Pause, monitor1.Object); + + // Assert + _mockWallpaper1.Verify(w => w.PauseParallax(), Times.Once, + "Only target monitor's wallpaper should be paused"); + _mockWallpaper2.Verify(w => w.PauseParallax(), Times.Never, + "Non-target monitor's wallpaper should NOT be paused"); + } + + [TestMethod] + [Description("ChangeParralaxState(KeepRun, specificMonitor) should only resume the wallpaper on that monitor")] + public void ChangeParralaxState_KeepRunWithTargetMonitor_ShouldOnlyResumeTargetMonitor() { + // Arrange + var monitor1 = new Mock(); + var monitor2 = new Mock(); + monitor1.Setup(m => m.Equals(monitor1.Object)).Returns(true); + monitor1.Setup(m => m.Equals(monitor2.Object)).Returns(false); + monitor2.Setup(m => m.Equals(monitor1.Object)).Returns(false); + monitor2.Setup(m => m.Equals(monitor2.Object)).Returns(true); + + _mockWallpaper1.Setup(w => w.Monitor).Returns(monitor1.Object); + _mockWallpaper2.Setup(w => w.Monitor).Returns(monitor2.Object); + + var playback = CreatePlayback(); + + // Act: resume only monitor1 + playback.ChangeParralaxState(AppParallaxRulesEnum.KeepRun, monitor1.Object); + + // Assert + _mockWallpaper1.Verify(w => w.ResumeParallax(), Times.Once); + _mockWallpaper2.Verify(w => w.ResumeParallax(), Times.Never); + } + + [TestMethod] + [Description("ChangeParralaxState(Pause) on empty wallpaper list should not throw")] + public void ChangeParralaxState_WhenNoWallpapers_ShouldNotThrow() { + _mockWpControl.Setup(w => w.Wallpapers).Returns(new List().AsReadOnly()); + var playback = CreatePlayback(); + + playback.ChangeParralaxState(AppParallaxRulesEnum.Pause); + // No exception = pass + } + + // ------------------------------------------------------- + // RunPlayback — 壁纸列表有内容时正常播放(Play 路径) + // ------------------------------------------------------- + + [TestMethod] + [Description("RunPlayback when all conditions normal should call Play + UnSilence on all wallpapers")] + public void RunPlayback_WhenAllNormal_ShouldPlayAndUnSilenceAllWallpapers() { + // All settings KeepRun, battery online, no lock, no remote + _mockSettings.Setup(s => s.AppFocus).Returns(AppWpRunRulesEnum.KeepRun); + _mockSettings.Setup(s => s.AppFullscreen).Returns(AppWpRunRulesEnum.KeepRun); + _mockSettings.Setup(s => s.StatuMechanism).Returns(StatuMechanismEnum.All); + _mockMonitorManager.Setup(m => m.IsMultiScreen()).Returns(false); + + // Simulate desktop is foreground (IsDesktop path) by making GetForegroundWindow + // return a value that IsExcludedDesktopWindowClass recognises — easiest is to + // mock AppRules to force KeepRun via the custom rules path: + _mockUserSettings.Setup(u => u.AppRules).Returns(new List()); + + var playback = CreatePlayback(); + playback.WallpaperPlaybackMode = PlaybackMode.Play; + + // Act — AdjustWpBehaviourBaseOnForegroundApp will be hit; it calls P/Invoke + // which is untestable, so we only assert no crash and no Pause call + try { + playback.InvokeRunPlayback(); + } + catch { + Assert.Fail("RunPlayback in normal state should not throw"); + } + + _mockWallpaper1.Verify(w => w.Pause(), Times.Never, + "Normal state: Pause should never be called"); + } } } diff --git a/src/VirtualPaper.Core.Test/T_ScrSreen/ScrControlTests.cs b/src/VirtualPaper.Core.Test/T_ScrSreen/ScrControlTests.cs index 9f736aa0..709eea86 100644 --- a/src/VirtualPaper.Core.Test/T_ScrSreen/ScrControlTests.cs +++ b/src/VirtualPaper.Core.Test/T_ScrSreen/ScrControlTests.cs @@ -469,5 +469,75 @@ public void AddToWhiteList_Duplicate_ShouldNotThrow() { Assert.Fail("Adding duplicate whitelist entry should not throw"); } } + + // ---------------------------------------------------------------- + // IsScreenSaverOn = false 时不应启动 + // ---------------------------------------------------------------- + + [TestMethod] + [Description("Tick should not launch screensaver when IsScreenSaverOn is false")] + public void Tick_WhenScreenSaverOff_ShouldNotLaunch() { + _settings.Object.Settings.IsScreenSaverOn = false; + _sut = BuildSut(); + _sut.Start(); + + FireTick(); + + _launcher.Verify(l => l.Launch(It.IsAny()), Times.Never, + "Screensaver should not launch when IsScreenSaverOn is false"); + } + + [TestMethod] + [Description("Tick should not launch screensaver when IsScreenSaverOn is false even if all other conditions are met")] + public void Tick_WhenScreenSaverOff_AllOtherConditionsMet_ShouldNotLaunch() { + // All other conditions are met (from base Setup), just flip the switch + _settings.Object.Settings.IsScreenSaverOn = false; + _sut = BuildSut(); + _sut.Start(); + + FireTick(); + + _launcher.Verify(l => l.Launch(It.IsAny()), Times.Never); + } + + // ---------------------------------------------------------------- + // 屏保已在运行时 Tick 不应再次 Launch + // ---------------------------------------------------------------- + + [TestMethod] + [Description("Tick should not launch screensaver again if it is already running")] + public void Tick_WhenAlreadyRunning_ShouldNotLaunchAgain() { + _sut.Start(); + FireTick(); + SimulateWpLoaded(); // IsRunning = true + + // Reset launcher invocation count + _launcher.Invocations.Clear(); + + // Act: fire another tick while screensaver is running + FireTick(); + + _launcher.Verify(l => l.Launch(It.IsAny()), Times.Never, + "Screensaver should not launch again while already running"); + } + + [TestMethod] + [Description("After screensaver process exits, the next Tick should be allowed to launch again")] + public void Tick_AfterProcessExited_NextTickCanLaunchAgain() { + _sut.Start(); + FireTick(); + SimulateWpLoaded(); // IsRunning = true + SimulateProcessExited(); // IsRunning = false + + // Reset + _launcher.Invocations.Clear(); + _launcher.Setup(l => l.HasExited).Returns(false); // fresh process + + // Act: fire another tick + FireTick(); + + _launcher.Verify(l => l.Launch(It.IsAny()), Times.Once, + "After process exits and IsRunning resets, next Tick should be able to launch"); + } } } \ No newline at end of file diff --git a/src/VirtualPaper.Core.Test/T_Tray/TrayCommandTests.cs b/src/VirtualPaper.Core.Test/T_Tray/TrayCommandTests.cs index 30e34f6b..410b9978 100644 --- a/src/VirtualPaper.Core.Test/T_Tray/TrayCommandTests.cs +++ b/src/VirtualPaper.Core.Test/T_Tray/TrayCommandTests.cs @@ -165,5 +165,78 @@ public async Task SendMsgToUIAsync_WithEmptyMessage_ShouldNotThrow() { public async Task SendMsgToUIAsync_WithNullMessage_ShouldNotThrow() { await _sut.SendMsgToUIAsync(null!); } + + // ---------------------------------------------------------------- + // 异常时 Dispose 依然执行(资源泄漏回归) + // ---------------------------------------------------------------- + + [TestMethod] + [Description("Pipe client should be disposed even when ConnectAsync throws — prevents resource leak")] + public async Task SendMsgToUIAsync_WhenConnectThrows_ShouldStillDisposePipeClient() { + // Arrange + _pipeClient + .Setup(p => p.ConnectAsync(It.IsAny())) + .ThrowsAsync(new IOException("Pipe broken")); + + // Act + await _sut.SendMsgToUIAsync("msg"); + + // Assert: Dispose must be called even after exception + _pipeClient.Verify(p => p.Dispose(), Times.Once, + "Pipe client must be disposed even when ConnectAsync throws — prevents resource leak"); + } + + [TestMethod] + [Description("Pipe client should be disposed even when writing to stream throws")] + public async Task SendMsgToUIAsync_WhenWriteThrows_ShouldStillDisposePipeClient() { + // Arrange: a stream that looks writable at construction but throws on Write. + // We can NOT pass a disposed MemoryStream — its CanWrite returns false and + // StreamWriter's constructor rejects it with ArgumentException before any write. + // Instead use a custom stream that claims CanWrite=true but throws on Write(). + var throwingWriter = new StreamWriter(new ThrowOnWriteStream()) { AutoFlush = true }; + _pipeClient.Setup(p => p.CreateWriter()).Returns(throwingWriter); + + // Act + await _sut.SendMsgToUIAsync("msg"); + + // Assert + _pipeClient.Verify(p => p.Dispose(), Times.Once, + "Pipe client must be disposed even when stream write throws"); + } + + // ---------------------------------------------------------------- + // Helpers + // ---------------------------------------------------------------- + + /// + /// A stream that reports CanWrite = true so StreamWriter accepts it, + /// but throws IOException on any actual Write call — simulating a broken pipe mid-write. + /// + private sealed class ThrowOnWriteStream : Stream { + public override bool CanRead => false; + public override bool CanSeek => false; + public override bool CanWrite => true; // ← must be true for StreamWriter ctor + public override long Length => 0; + public override long Position { get; set; } + + public override void Write(byte[] buffer, int offset, int count) + => throw new IOException("Simulated broken pipe on write"); + + public override void WriteByte(byte value) + => throw new IOException("Simulated broken pipe on WriteByte"); + + public override void Flush() { /* no-op */ } + public override int Read(byte[] buffer, int offset, int count) => 0; + public override long Seek(long offset, SeekOrigin origin) => 0; + public override void SetLength(long value) { } + } + + [TestMethod] + [Description("Pipe client Dispose must be called exactly once regardless of success path")] + public async Task SendMsgToUIAsync_SuccessPath_ShouldDisposeExactlyOnce() { + await _sut.SendMsgToUIAsync("hello"); + + _pipeClient.Verify(p => p.Dispose(), Times.Once); + } } } diff --git a/src/VirtualPaper.Core.Test/T_UserSettings/UserSettingsServiceTests.cs b/src/VirtualPaper.Core.Test/T_UserSettings/UserSettingsServiceTests.cs index 30fd2230..8ba0d8a8 100644 --- a/src/VirtualPaper.Core.Test/T_UserSettings/UserSettingsServiceTests.cs +++ b/src/VirtualPaper.Core.Test/T_UserSettings/UserSettingsServiceTests.cs @@ -145,6 +145,38 @@ public void Constructor_WhenAppVersionMatches_ShouldNotMarkAsUpdated() { Assert.IsFalse(service.Settings.IsUpdated); } + // SelectedMonitor 为 null 时应回退到 Primary + [TestMethod] + public void Constructor_WhenSelectedMonitorIsNull_ShouldFallbackToPrimary() { + var settings = new Settings { SelectedMonitor = null! }; + + _mockJsonSaver + .Setup(s => s.Load(It.IsAny(), It.IsAny())) + .Returns(settings); + + var service = CreateService(); + + Assert.AreEqual(_primaryMonitor, service.Settings.SelectedMonitor, + "When SelectedMonitor is null in saved settings, should fall back to PrimaryMonitor"); + } + + // SelectedMonitor 存在于列表中时,直接使用保存的实例(不替换为 primary) + [TestMethod] + public void Constructor_WhenSelectedMonitorIsInList_ShouldNotOverrideWithPrimary() { + var secondMonitor = new Monitor { IsPrimary = false, DeviceId = "MONITOR_1" }; + var settings = new Settings { SelectedMonitor = secondMonitor }; + + _mockMonitorManager.Setup(m => m.Monitors).Returns([_primaryMonitor, secondMonitor]); + _mockJsonSaver + .Setup(s => s.Load(It.IsAny(), It.IsAny())) + .Returns(settings); + + var service = CreateService(); + + Assert.AreEqual(secondMonitor, service.Settings.SelectedMonitor, + "When a non-primary SelectedMonitor is found in the monitor list, it should be kept as-is"); + } + private UserSettingsService CreateService() => new UserSettingsService(_mockMonitorManager.Object, _mockJsonSaver.Object); } diff --git a/src/VirtualPaper.Core.Test/T_WallpaperControl/WallpaperControl_SetWallpaperTests.cs b/src/VirtualPaper.Core.Test/T_WallpaperControl/WallpaperControl_SetWallpaperTests.cs index 12f381f2..fcc75b55 100644 --- a/src/VirtualPaper.Core.Test/T_WallpaperControl/WallpaperControl_SetWallpaperTests.cs +++ b/src/VirtualPaper.Core.Test/T_WallpaperControl/WallpaperControl_SetWallpaperTests.cs @@ -165,5 +165,264 @@ public async Task SetWallpaperAsync_DuplicateMode_ShouldCreatePlayerPerMonitor() f => f.CreatePlayer(It.IsAny(), It.IsAny(), false), Times.Exactly(3), "Duplicate mode should create a Player for each monitor"); } + + // ------------------------------------------------------- + // RType guard: same monitor, different RType → new player + // ------------------------------------------------------- + + [TestMethod] + [Description("In Per mode, setting a wallpaper with a different RType on the same monitor should create a new player, not call Update")] + public async Task SetWallpaperAsync_PerMode_SameMonitor_DifferentRType_ShouldCreateNewPlayer() { + // Arrange + var monitor = _monitorMgr.Object.PrimaryMonitor; + var data1 = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RImage, wpId: "wp_img").Object; + var data2 = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RVideo, wpId: "wp_vid").Object; + + var player1 = TestDataBuilder.CreateWpPlayer(data1, monitor); + var player2 = TestDataBuilder.CreateWpPlayer(data2, monitor); + + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RImage), monitor, false)) + .Returns(player1.Object); + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RVideo), monitor, false)) + .Returns(player2.Object); + + // Set Image wallpaper first + var r1 = await _sut.SetWallpaperAsync(data1, monitor); + Assert.IsTrue(r1.IsFinished, "First set (RImage) should succeed"); + + // Act: set Video wallpaper on same monitor + var r2 = await _sut.SetWallpaperAsync(data2, monitor); + Assert.IsTrue(r2.IsFinished, "Second set (RVideo) should succeed"); + + // Assert: player1 should NOT have Update called (different RType → not reused) + player1.Verify(p => p.Update(It.IsAny()), Times.Never, + "Update should not be called on a different-RType player"); + // A new player (player2) should be created for the new RType + _factory.Verify( + f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RVideo), monitor, false), + Times.Once, "A new player should be created for the different RType"); + } + + [TestMethod] + [Description("In Per mode, setting a wallpaper with the same RType on the same monitor should call Update, not create a new player")] + public async Task SetWallpaperAsync_PerMode_SameMonitor_SameRType_ShouldUpdate_NotCreateNew() { + // Arrange + var monitor = _monitorMgr.Object.PrimaryMonitor; + var data1 = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RImage, wpId: "wp_001").Object; + var data2 = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RImage, wpId: "wp_002").Object; + + var player = TestDataBuilder.CreateWpPlayer(data1, monitor); + _factory.Setup(f => f.CreatePlayer(It.IsAny(), monitor, false)) + .Returns(player.Object); + + var r1 = await _sut.SetWallpaperAsync(data1, monitor); + Assert.IsTrue(r1.IsFinished, "First set should succeed"); + + // Act + var r2 = await _sut.SetWallpaperAsync(data2, monitor); + Assert.IsTrue(r2.IsFinished, "Second set (same RType) should succeed"); + + // Assert + player.Verify(p => p.Update(data2), Times.Once, "Update should be called for same-RType replacement"); + _factory.Verify( + f => f.CreatePlayer(It.IsAny(), monitor, false), + Times.Once, "Player should not be recreated for same RType"); + } + + [TestMethod] + [Description("In Expand mode, setting a wallpaper with a different RType should not reuse the existing player")] + public async Task SetWallpaperAsync_ExpandMode_SameMonitor_DifferentRType_ShouldCreateNewPlayer() { + // Arrange + _settings = MockFactory.CreateUserSettings(WallpaperArrangement.Expand); + _monitorMgr = MockFactory.CreateMonitorManager(1); + var desktop = MockFactory.CreateDesktopService(); + var jobService = new Mock(); + _sut = new WallpaperControl( + _settings.Object, _monitorMgr.Object, + _factory.Object, desktop.Object, jobService.Object); + + var monitor = _monitorMgr.Object.PrimaryMonitor; + var dataImg = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RImage, wpId: "wp_img").Object; + var dataVid = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RVideo, wpId: "wp_vid").Object; + + var playerImg = TestDataBuilder.CreateWpPlayer(dataImg, monitor); + var playerVid = TestDataBuilder.CreateWpPlayer(dataVid, monitor); + + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RImage), monitor, false)) + .Returns(playerImg.Object); + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RVideo), monitor, false)) + .Returns(playerVid.Object); + + await _sut.SetWallpaperAsync(dataImg, monitor); + + // Act + await _sut.SetWallpaperAsync(dataVid, monitor); + + // Assert + playerImg.Verify(p => p.Update(It.IsAny()), Times.Never, + "Different RType: Update should NOT be called on the old player"); + _factory.Verify( + f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RVideo), monitor, false), + Times.Once, "A new Expand player should be created for the different RType"); + } + + // ------------------------------------------------------- + // isFromPreview behaviour + // ------------------------------------------------------- + + [TestMethod] + [Description("SetWallpaperAsync with isFromPreview=true should succeed (runtime data loaded from temp path)")] + public async Task SetWallpaperAsync_IsFromPreview_True_ShouldSucceed() { + // Arrange + var monitor = _monitorMgr.Object.PrimaryMonitor; + // Build data with all effect paths pre-populated so isFromPreview branch can proceed + var data = TestDataBuilder.CreateValidPlayerDataWithEffectPaths(_tempFiles).Object; + bool changed = false; + _sut.WallpaperChanged += (_, _) => changed = true; + + var player = TestDataBuilder.CreateWpPlayer(data, monitor); + _factory.Setup(f => f.CreatePlayer(It.IsAny(), monitor, false)) + .Returns(player.Object); + + // Act + var result = await _sut.SetWallpaperAsync(data, monitor, isFromPreview: true); + + // Assert + Assert.IsTrue(result.IsFinished, "SetWallpaperAsync with isFromPreview=true should finish successfully"); + Assert.IsTrue(changed, "WallpaperChanged event should fire even when isFromPreview=true"); + } + + [TestMethod] + [Description("SetWallpaperAsync with isFromPreview=false and no effect path should succeed via CreateRuntimeData path")] + public async Task SetWallpaperAsync_IsFromPreview_False_EmptyEffectPath_ShouldSucceed() { + // Arrange + var monitor = _monitorMgr.Object.PrimaryMonitor; + var data = TestDataBuilder.CreateValidPlayerData(_tempFiles).Object; + + var player = TestDataBuilder.CreateWpPlayer(data, monitor); + _factory.Setup(f => f.CreatePlayer(It.IsAny(), monitor, false)) + .Returns(player.Object); + + // Act + var result = await _sut.SetWallpaperAsync(data, monitor, isFromPreview: false); + + // Assert + Assert.IsTrue(result.IsFinished); + } + + // ------------------------------------------------------- + // Monitor 不存在路径 + // ------------------------------------------------------- + + [TestMethod] + [Description("SetWallpaperAsync should fire WallpaperError when the monitor is not found in manager")] + public async Task SetWallpaperAsync_WhenMonitorNotFound_ShouldFireErrorAndReturnFailure() { + // Arrange: make MonitorExists return false + _monitorMgr.Setup(m => m.MonitorExists(It.IsAny())).Returns(false); + var monitor = _monitorMgr.Object.PrimaryMonitor; + var data = TestDataBuilder.CreateValidPlayerData(_tempFiles).Object; + Exception? capturedError = null; + _sut.WallpaperError += (_, e) => capturedError = e; + + // Act + var result = await _sut.SetWallpaperAsync(data, monitor); + + // Assert + Assert.IsFalse(result.IsFinished); + Assert.IsNotNull(capturedError, "WallpaperError should be fired when monitor is not found"); + _factory.Verify( + f => f.CreatePlayer(It.IsAny(), It.IsAny(), false), + Times.Never, "No player should be created when monitor is missing"); + } + + [TestMethod] + [Description("SetWallpaperAsync should fire BOTH WallpaperError and WallpaperChanged when the file is missing")] + public async Task SetWallpaperAsync_WhenFileMissing_ShouldFireBothErrorAndChangedEvents() { + // Arrange + var data = TestDataBuilder.CreateValidPlayerData(_tempFiles).Object; + Mock.Get(data).Setup(d => d.FilePath).Returns("C:\\not_exist.jpg"); + bool changed = false; + Exception? capturedError = null; + _sut.WallpaperChanged += (_, _) => changed = true; + _sut.WallpaperError += (_, e) => capturedError = e; + + // Act + await _sut.SetWallpaperAsync(data, _monitorMgr.Object.PrimaryMonitor); + + // Assert + Assert.IsNotNull(capturedError, "WallpaperError must be fired on file missing"); + Assert.IsTrue(changed, + "WallpaperChanged must ALSO be fired on file missing (source-code behaviour to clear UI state)"); + } + + // ------------------------------------------------------- + // RType guard: 旧 Player 孤立 Bug — 验证旧 Player 被 Close 且列表数量 + // ------------------------------------------------------- + + [TestMethod] + [Description("Per mode: after switching to a different RType on the same monitor, the OLD player must be closed and wallpaper count must stay at 1")] + public async Task SetWallpaperAsync_PerMode_DifferentRType_OldPlayerMustBeClosedAndCountStaysOne() { + // Arrange + var monitor = _monitorMgr.Object.PrimaryMonitor; + var dataImg = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RImage, wpId: "wp_img").Object; + var dataVid = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RVideo, wpId: "wp_vid").Object; + + var playerImg = TestDataBuilder.CreateWpPlayer(dataImg, monitor); + var playerVid = TestDataBuilder.CreateWpPlayer(dataVid, monitor); + + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RImage), monitor, false)) + .Returns(playerImg.Object); + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RVideo), monitor, false)) + .Returns(playerVid.Object); + + await _sut.SetWallpaperAsync(dataImg, monitor); + Assert.HasCount(1, _sut.Wallpapers, "Setup: should have 1 wallpaper after first set"); + + // Act + await _sut.SetWallpaperAsync(dataVid, monitor); + + // Assert: old player should be closed, count must remain 1 + playerImg.Verify(p => p.Close(), Times.Once, + "Old RImage player MUST be closed when switching to a different RType"); + Assert.HasCount(1, _sut.Wallpapers, + "After switching RType, wallpaper count must still be 1 — not orphan-leaked"); + } + + [TestMethod] + [Description("Expand mode: after switching to a different RType, the OLD player must be closed and count stays at 1")] + public async Task SetWallpaperAsync_ExpandMode_DifferentRType_OldPlayerMustBeClosedAndCountStaysOne() { + // Arrange + _settings = MockFactory.CreateUserSettings(WallpaperArrangement.Expand); + _monitorMgr = MockFactory.CreateMonitorManager(1); + var desktop = MockFactory.CreateDesktopService(); + var jobService = new Mock(); + _sut = new WallpaperControl( + _settings.Object, _monitorMgr.Object, + _factory.Object, desktop.Object, jobService.Object); + + var monitor = _monitorMgr.Object.PrimaryMonitor; + var dataImg = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RImage, wpId: "wp_img").Object; + var dataVid = TestDataBuilder.CreateValidPlayerData(_tempFiles, rtype: RuntimeType.RVideo, wpId: "wp_vid").Object; + + var playerImg = TestDataBuilder.CreateWpPlayer(dataImg, monitor); + var playerVid = TestDataBuilder.CreateWpPlayer(dataVid, monitor); + + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RImage), monitor, false)) + .Returns(playerImg.Object); + _factory.Setup(f => f.CreatePlayer(It.Is(d => d.RType == RuntimeType.RVideo), monitor, false)) + .Returns(playerVid.Object); + + await _sut.SetWallpaperAsync(dataImg, monitor); + Assert.HasCount(1, _sut.Wallpapers, "Setup: should have 1 wallpaper after first set"); + + // Act + await _sut.SetWallpaperAsync(dataVid, monitor); + + // Assert + playerImg.Verify(p => p.Close(), Times.Once, + "Old Expand player MUST be closed when switching to a different RType"); + Assert.HasCount(1, _sut.Wallpapers, + "Wallpaper count must remain 1 after Expand mode RType switch"); + } } } diff --git a/src/VirtualPaper.UI.Test/T_WpSettings/AddToLibViewModelTests.cs b/src/VirtualPaper.UI.Test/T_WpSettings/AddToLibViewModelTests.cs index c76a1ba0..48d80353 100644 --- a/src/VirtualPaper.UI.Test/T_WpSettings/AddToLibViewModelTests.cs +++ b/src/VirtualPaper.UI.Test/T_WpSettings/AddToLibViewModelTests.cs @@ -277,6 +277,8 @@ public async Task FileBrowseActionAsync_ExtensionsMatchExpectedExactly() { ".gif", ".apng", // FVideo ".mp4", ".webm", + // FWebZip + ".zip", ".rar", ".7z", ]; Assert.IsNotNull(capturedExtensions); diff --git a/src/VirtualPaper.UI.Test/T_WpSettings/LibraryContentsViewModelTests.cs b/src/VirtualPaper.UI.Test/T_WpSettings/LibraryContentsViewModelTests.cs index ff3bc0c4..0305484d 100644 --- a/src/VirtualPaper.UI.Test/T_WpSettings/LibraryContentsViewModelTests.cs +++ b/src/VirtualPaper.UI.Test/T_WpSettings/LibraryContentsViewModelTests.cs @@ -264,6 +264,77 @@ public void LibLoadingStatus_WhenSet_RaisesPropertyChanged() { Assert.IsTrue(raised); } + // ── UpdateLib 在过滤状态下的行为 ────────────────────────────── + + [TestMethod] + [Description("UpdateLib should still find and replace the item in the visible list even when a filter is active")] + public void UpdateLib_WhenFilterActive_MatchingItem_ReplacesInFilteredView() { + // Arrange: populate two items, then apply a filter that only shows uid-1 + var original = MakeWpData("uid-1", "Nature Wallpaper"); + var other = MakeWpData("uid-2", "City Night"); + PopulateLibrary(original, other); + _vm.FilterByTitle("Nature"); // only uid-1 visible + + _wallpaperIndexService + .Setup(s => s.TryGetValue("uid-1", out It.Ref.IsAny)) + .Returns((string _, ref int idx) => { idx = 0; return true; }); + + var updated = MakeWpData("uid-1", "Nature Wallpaper v2"); + + // Act + _vm.UpdateLib(updated); + + // Assert: the visible item should be the updated one + Assert.AreEqual("Nature Wallpaper v2", _vm.LibraryWallpapers[0].Title, + "UpdateLib should update the item in the filtered visible list"); + _wallpaperIndexService.Verify(s => s.Update(updated), Times.Once); + } + + [TestMethod] + [Description("UpdateLib should insert a new item at front even when filter hides existing items")] + public void UpdateLib_WhenFilterActive_NewItem_InsertsAtFront() { + // Arrange: populate one item and filter it out + var existing = MakeWpData("uid-1", "Forest"); + PopulateLibrary(existing); + _vm.FilterByTitle("Ocean"); // no matches → empty view + + _wallpaperIndexService + .Setup(s => s.TryGetValue(It.IsAny(), out It.Ref.IsAny)) + .Returns((string _, ref int idx) => { idx = -1; return false; }); + + var newItem = MakeWpData("uid-new", "Ocean Breeze"); + + // Act + _vm.UpdateLib(newItem); + + // Assert: new item inserted at front regardless of filter state + Assert.IsTrue(_vm.LibraryWallpapers.Any(w => w.WallpaperUid == "uid-new"), + "New item should be inserted into the visible list even when filter is active"); + _wallpaperIndexService.Verify(s => s.Update(newItem), Times.Once); + } + + [TestMethod] + [Description("Calling UpdateLib twice with the same uid should not duplicate the item")] + public void UpdateLib_CalledTwice_SameUid_ShouldNotDuplicate() { + var item = MakeWpData("uid-1", "Sunset v1"); + PopulateLibrary(item); + + int callIdx = 0; + _wallpaperIndexService + .Setup(s => s.TryGetValue("uid-1", out It.Ref.IsAny)) + .Returns((string _, ref int idx) => { idx = 0; return true; }); + + var v2 = MakeWpData("uid-1", "Sunset v2"); + var v3 = MakeWpData("uid-1", "Sunset v3"); + + _vm.UpdateLib(v2); + _vm.UpdateLib(v3); + + Assert.HasCount(1, _vm.LibraryWallpapers, + "Updating the same uid twice must not duplicate the item in the list"); + Assert.AreEqual("Sunset v3", _vm.LibraryWallpapers[0].Title); + } + // ── 辅助方法 ────────────────────────────────────────────────── /// 将数据同时写入 LibraryWallpapers 和内部 _libraryWallpapers diff --git a/src/VirtualPaper.UI.Test/T_WpSettings/WpSettingsViewModelTests.cs b/src/VirtualPaper.UI.Test/T_WpSettings/WpSettingsViewModelTests.cs index 7cc093ca..3c42aac3 100644 --- a/src/VirtualPaper.UI.Test/T_WpSettings/WpSettingsViewModelTests.cs +++ b/src/VirtualPaper.UI.Test/T_WpSettings/WpSettingsViewModelTests.cs @@ -1,8 +1,10 @@ using Moq; using VirtualPaper.Common; using VirtualPaper.Common.Utils.Storage.Adapter; +using VirtualPaper.Common.Utils.ThreadContext; using VirtualPaper.Grpc.Client.Interfaces; using VirtualPaper.Models.Cores.Interfaces; +using VirtualPaper.UI.Test.Utils; using VirtualPaper.WpSettingsPanel.Utils; using VirtualPaper.WpSettingsPanel.ViewModels; @@ -19,6 +21,7 @@ public class WpSettingsViewModelTests { [TestInitialize] public void Setup() { + CrossThreadInvoker.Initialize(new TUiSynchronizationContext()); _monitorManagerClient = new Mock(); _wpControlClient = new Mock(); _userSettingsClient = new Mock(); @@ -32,6 +35,7 @@ public void Setup() { _primaryMonitor.Setup(m => m.CloneWithPrimaryInfo()).Returns(_primaryMonitor.Object); _primaryMonitor.SetupProperty(m => m.Content); _primaryMonitor.SetupProperty(m => m.SystemIndex, 0); + _primaryMonitor.Setup(m => m.DeviceId).Returns("MONITOR_0"); _monitorManagerClient.Setup(m => m.PrimaryMonitor).Returns(_primaryMonitor.Object); } @@ -45,6 +49,52 @@ private WpSettingsViewModel CreateVm(IEnumerable? monitors = null) { _storagePicker.Object); } + // ── SelectedWpArrangementsIndex setter ──────────────────────── + + [TestMethod] + [Description("Setting SelectedWpArrangementsIndex to the same value should NOT raise PropertyChanged")] + public void SelectedWpArrangementsIndex_WhenValueUnchanged_DoesNotRaisePropertyChanged() { + _vm = CreateVm(); + // force initial value to 0 + _vm.SelectedWpArrangementsIndex = 0; + bool raised = false; + _vm.PropertyChanged += (_, e) => { + if (e.PropertyName == nameof(_vm.SelectedWpArrangementsIndex)) raised = true; + }; + + _vm.SelectedWpArrangementsIndex = 0; + + Assert.IsFalse(raised, + "PropertyChanged should NOT fire when the same index is set again"); + } + + [TestMethod] + [Description("Setting SelectedWpArrangementsIndex to a new value should raise PropertyChanged")] + public void SelectedWpArrangementsIndex_WhenValueChanged_RaisesPropertyChanged() { + _vm = CreateVm(); + _vm.SelectedWpArrangementsIndex = 0; + bool raised = false; + _vm.PropertyChanged += (_, e) => { + if (e.PropertyName == nameof(_vm.SelectedWpArrangementsIndex)) raised = true; + }; + + _vm.SelectedWpArrangementsIndex = 1; + + Assert.IsTrue(raised, + "PropertyChanged should fire when SelectedWpArrangementsIndex changes"); + } + + [TestMethod] + [Description("SelectedWpArrangementsIndex should be initialized from WallpaperArrangement in settings after InitFlyoutData")] + public void SelectedWpArrangementsIndex_AfterInitFlyoutData_MatchesArrangementSetting() { + _settings.Object.WallpaperArrangement = WallpaperArrangement.Duplicate; + _vm = CreateVm(); + _vm.InitFlyoutData(); + + Assert.AreEqual((int)WallpaperArrangement.Duplicate, _vm.SelectedWpArrangementsIndex, + "SelectedWpArrangementsIndex must reflect the current WallpaperArrangement after InitFlyoutData"); + } + // ── SelectedMonitorIndex setter ─────────────────────────────── [TestMethod] @@ -340,6 +390,24 @@ public void Command_IsNotNull_AfterConstruction(string commandName) { Assert.IsNotNull(prop?.GetValue(_vm), $"{commandName} 为 null"); } + // ── UpdateAdjustWindowCache ─────────────────────────────────── + + [TestMethod] + [Description("UpdateAdjustWindowCache should not throw when no adjust window is open for the current monitor")] + public void UpdateAdjustWindowCache_WhenNoAdjustWindowOpen_DoesNotThrow() { + _vm = CreateVm(); + // Simply assert no exception is raised; the adjust window dictionary is empty + _vm.UpdateAdjustWindowCache(); + } + + [TestMethod] + [Description("UpdateAdjustWindowCache can be called multiple times safely without side effects")] + public void UpdateAdjustWindowCache_CalledMultipleTimes_DoesNotThrow() { + _vm = CreateVm(); + _vm.UpdateAdjustWindowCache(); + _vm.UpdateAdjustWindowCache(); + } + // ── 辅助方法 ───────────────────────────────────────────────── private static Mock MakeMonitor(int systemIndex) { diff --git a/src/VirtualPaper/Cores/ScreenSaver/ScrControl.cs b/src/VirtualPaper/Cores/ScreenSaver/ScrControl.cs index a24a6de0..ac1711a7 100644 --- a/src/VirtualPaper/Cores/ScreenSaver/ScrControl.cs +++ b/src/VirtualPaper/Cores/ScreenSaver/ScrControl.cs @@ -18,14 +18,14 @@ public partial class ScrControl : IScrControl { public bool IsRunning { get; private set; } = false; public ScrControl( - IUserSettingsService userSettingsService, + IUserSettingsService userSettings, IWallpaperControl wpControl, IRawInputMsg msgWindow, IDispatcherTimer dispatcherTimer, INativeService nativeService, IProcessLauncher processLauncher, IJobService jobService) { - _userSettingsService = userSettingsService; + _userSettings = userSettings; _msgWindow = msgWindow; _wpControl = wpControl; _nativeService = nativeService; @@ -39,16 +39,16 @@ public ScrControl( _dispatcherTimer = dispatcherTimer; - foreach (var proc in userSettingsService.Settings.WhiteListScr) { + foreach (var proc in userSettings.Settings.WhiteListScr) { _scrWhiteListProcState[proc.ProcName] = false; } } public void Start() { - if (_isTiming || IsRunning) return; + if (!_userSettings.Settings.IsScreenSaverOn || _isTiming || IsRunning) return; try { - _isRunningLock = _userSettingsService.Settings.IsRunningLock; + _isRunningLock = _userSettings.Settings.IsRunningLock; StartTimerTask(); } catch (Exception ex) { @@ -80,7 +80,7 @@ public void RemoveFromWhiteList(string procName) { /// 启动倒计时,倒计时结束后触发屏保启动 ///
private void StartTimerTask() { - _dispatcherTimer.Interval = TimeSpan.FromMinutes(_userSettingsService.Settings.WaitingTime); + _dispatcherTimer.Interval = TimeSpan.FromMinutes(_userSettings.Settings.WaitingTime); _dispatcherTimer.Tick += DispatcherTimer_Tick; _dispatcherTimer.Start(); _isTiming = true; @@ -109,7 +109,7 @@ private void ResetTimer(string reason) { } // 进程未运行,直接重启计时器 - if (_userSettingsService.Settings.IsScreenSaverOn) { + if (_userSettings.Settings.IsScreenSaverOn) { StartTimerTask(); } } @@ -242,7 +242,7 @@ private void CleanupProc() { /// 进程退出后重启计时器(用于 Proc_Exited 场景)。 ///
private void RestartTimerAfterExit() { - if (_userSettingsService.Settings.IsScreenSaverOn) { + if (_userSettings.Settings.IsScreenSaverOn) { StartTimerTask(); } } @@ -251,7 +251,7 @@ private void RestartTimerAfterExit() { /// 直接重启计时器(用于 Tick 内部检查未通过的场景)。 ///
private void RestartTimer() { - if (_userSettingsService.Settings.IsScreenSaverOn) { + if (_userSettings.Settings.IsScreenSaverOn) { StartTimerTask(); } } @@ -322,7 +322,7 @@ private ProcessStartInfo BuildStartInfo(string filePath, string ftype) { var cmdArgs = new StringBuilder() .Append($" --file-path {filePath}") .Append($" --wallpaper-type {ftype}") - .Append($" --effect {_userSettingsService.Settings.ScreenSaverEffect}"); + .Append($" --effect {_userSettings.Settings.ScreenSaverEffect}"); return new ProcessStartInfo { FileName = Path.Combine(workingDir, Constants.ModuleName.ScrSaver), @@ -357,7 +357,7 @@ public void Dispose() { private readonly IProcessLauncher _processLauncher; private readonly IJobService _jobService; - private readonly IUserSettingsService _userSettingsService; + private readonly IUserSettingsService _userSettings; private readonly IRawInputMsg _msgWindow; private readonly IWallpaperControl _wpControl; private readonly INativeService _nativeService; From 28b1cec8c85f1be27516655480835fc172241101 Mon Sep 17 00:00:00 2001 From: paperhammer Date: Fri, 22 May 2026 14:50:36 +0800 Subject: [PATCH 7/8] =?UTF-8?q?feature=EF=BC=9A=E6=9B=B4=E6=96=B0=20readme?= =?UTF-8?q?=EF=BC=9B=E8=A1=A5=E5=85=A8=20wiki?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 101 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index be4d64f4..f9f9bbc4 100644 --- a/README.md +++ b/README.md @@ -5,104 +5,131 @@ [![Documentation](https://img.shields.io/badge/Docs-Wiki-green)](https://github.com/PaperHammer/VirtualPaper/wiki) [![Issues](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2FPaperHammer%2FVirtualPaper&query=open_issues&label=Issues&color=orange)](https://github.com/PaperHammer/VirtualPaper/issues) -An open-source, free, lightweight wallpaper management software that runs on Windows 10+ +An open-source, free, lightweight wallpaper management software for Windows 10+ - + -**The required operating environment: .NET 8.0** +> **Runtime requirement:** .NET 8.0 + +--- ## Contents - [About](#about) - [Features](#features) +- [AI+](#ai) - [Download](#download) - [Support](#support) - [License](#license) +--- + ## About -Based on the [XamlNexus](https://github.com/PaperHammer/XamlNexus) and [Lively](https://github.com/rocksdanister/lively) +Built on top of [XamlNexus](https://github.com/PaperHammer/XamlNexus) and [Lively](https://github.com/rocksdanister/lively). + + - +--- ## Features -The following files are supported: +**Supported file types** -| Wallpaper type | File type | -| -------------- | ------------------------------- | -| Motion Picture | .gif .apng | -| Still image | .jpg .jpeg .bmp .png .svg .webp | -| Video | .mp4 .webm | +| Wallpaper Type | Extensions | +| --------------- | --------------------------------------------------- | +| Still Image | `.jpg` `.jpeg` `.bmp` `.png` `.svg` `.webp` | +| Motion Picture | `.gif` `.apng` | +| Video | `.mp4` `.webm` | +| Web Interactive | `.zip` `.rar` `.7z` | --- -Real-time preview and customize effects +**Real-time preview & effect customization** - + --- -The 3D parallax effect that follows the mouse. +**3D parallax — follows your mouse** - + --- -Efficient and lightweight rendering capabilities. Supports exporting: PNG, BMP, JPEG, JPEG XR +**Efficient lightweight rendering** + +Supports exporting: PNG, BMP, JPEG, JPEG XR - + --- -Screen saver services that don't rely on Windows +**Independent screen saver** + +Screen saver service that does not rely on Windows built-in support. - + --- -Quickly set the lock screen background image +**Lock screen background** - +Quickly set the lock screen background image. + + --- -Many modern theme styles +**Modern theme styles** + + - +--- ## AI+ -**Image style transfer** -Applies the artistic style of one image onto another using an AI model. Upload a content image and a style reference — automatically blends the two and produces a new image that captures both the original content and the target style. +**Image Style Transfer** + +Transfer the artistic style of a reference image onto your wallpaper using AI. - + --- **Super Resolution** -Enhances your images using AI super-resolution: --Clarity Restoration: recovers detail and sharpens blurry or low-quality images --Lossless Upscaling: increases resolution while preserving the original details - +AI-powered image enhancement: + +- **Clarity Restoration** — sharpen blurry or low-quality images +- **Lossless Upscaling** — increase resolution without losing detail + + + +--- ## Download -Windows 10.0.19041.0 及以上 +Requires **Windows 10 (10.0.19041.0)** or above. + +##### [→ Download latest installer](https://github.com/PaperHammer/VirtualPaper/releases/latest) -##### [Installer (Windows 10 10.0.19041.0 or above)](https://github.com/PaperHammer/VirtualPaper/releases/latest) +--- ## Support -#### Localization +**Localization** -Point out translation errors or translations of Virtual Paper into more languages.[head fore..](https://github.com/PaperHammer/VirtualPaper/issues/new?assignees=&labels=Issue-Bug%2CArea-Localization%2CIssue-Translation%2CNeeds-Triage&projects=&template=translation_issue.yml) +Found a translation error, or want to add a new language? +[Submit a localization issue →](https://github.com/PaperHammer/VirtualPaper/issues/new?assignees=&labels=Issue-Bug%2CArea-Localization%2CIssue-Translation%2CNeeds-Triage&projects=&template=translation_issue.yml) -#### Suggestions & Bug report +**Suggestions & Bug Reports** -Suggest new features or file bug reports to improve Virtual Paper.[head for..](https://github.com/PaperHammer/VirtualPaper/issues/new?assignees=&labels=Issue-Bug%2CNeeds-Triage&projects=&template=bug_report.yml) +Have a feature idea or found a bug? +[Open an issue →](https://github.com/PaperHammer/VirtualPaper/issues/new?assignees=&labels=Issue-Bug%2CNeeds-Triage&projects=&template=bug_report.yml) + +--- ## License -Virtual Paper is licensed under [GPL-v3.](https://github.com/PaperHammer/VirtualPaper/blob/main/LICENSE) +VirtualPaper is licensed under [GPL-3.0](https://github.com/PaperHammer/VirtualPaper/blob/main/LICENSE). From 16034b843f9312a866cc21948b3caf8c8c871006 Mon Sep 17 00:00:00 2001 From: paperhammer Date: Fri, 22 May 2026 15:37:33 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix=EF=BC=9A=E5=B0=9D=E8=AF=95=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20core=20test=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VirtualPaper.Common/Utils/Files/FileUtil.cs | 1 + src/VirtualPaper.Models/Cores/Interfaces/IWpRuntimeData.cs | 4 ++-- src/VirtualPaper.Models/Cores/WpRuntimeData.cs | 2 +- src/VirtualPaper/Cores/WpControl/WallpaperControl.cs | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/VirtualPaper.Common/Utils/Files/FileUtil.cs b/src/VirtualPaper.Common/Utils/Files/FileUtil.cs index 7e31fe9a..cc83d44d 100644 --- a/src/VirtualPaper.Common/Utils/Files/FileUtil.cs +++ b/src/VirtualPaper.Common/Utils/Files/FileUtil.cs @@ -160,6 +160,7 @@ public static async Task CopyFileAsync(string src, string dest) { } public static async Task UpdateFileFolderPathAsync(string sourcefilePath, string sourceFolderPath, string targetFolderPath) { + if (string.IsNullOrEmpty(sourcefilePath)) return string.Empty; string targetFilePath = sourcefilePath.Replace(sourceFolderPath, targetFolderPath); await CopyFileAsync(sourcefilePath, targetFilePath); return targetFilePath; diff --git a/src/VirtualPaper.Models/Cores/Interfaces/IWpRuntimeData.cs b/src/VirtualPaper.Models/Cores/Interfaces/IWpRuntimeData.cs index 58af51b3..a2f84411 100644 --- a/src/VirtualPaper.Models/Cores/Interfaces/IWpRuntimeData.cs +++ b/src/VirtualPaper.Models/Cores/Interfaces/IWpRuntimeData.cs @@ -1,4 +1,4 @@ -using VirtualPaper.Common; +using VirtualPaper.Common; namespace VirtualPaper.Models.Cores.Interfaces { public interface IWpRuntimeData { @@ -16,7 +16,7 @@ public interface IWpRuntimeData { RuntimeType RType { get; set; } void Read(string filePath); Task MoveToAsync(string targetFolder); - void FromTempMoveToInstallPath(string targetFolderPath); + Task FromTempMoveToInstallPathAsync(string targetFolderPath); void Save(); IWpRuntimeData Clone(); bool IsAvailable(); diff --git a/src/VirtualPaper.Models/Cores/WpRuntimeData.cs b/src/VirtualPaper.Models/Cores/WpRuntimeData.cs index d4ad1c04..8d0876d0 100644 --- a/src/VirtualPaper.Models/Cores/WpRuntimeData.cs +++ b/src/VirtualPaper.Models/Cores/WpRuntimeData.cs @@ -45,7 +45,7 @@ public async Task MoveToAsync(string targetFolderPath) { Save(); } - public async void FromTempMoveToInstallPath(string targetFolderPath) { + public async Task FromTempMoveToInstallPathAsync(string targetFolderPath) { string oldFolderPath = Constants.CommonPaths.TempDir; this.FolderPath = this.FolderPath.Replace(oldFolderPath, targetFolderPath); this.DepthFilePath = await FileUtil.UpdateFileFolderPathAsync(this.DepthFilePath, oldFolderPath, targetFolderPath); diff --git a/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs b/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs index 5f600a0d..db003ab4 100644 --- a/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs +++ b/src/VirtualPaper/Cores/WpControl/WallpaperControl.cs @@ -275,7 +275,7 @@ public async Task SetWallpaperAsync( bool isStarted = false; if (isFromPreview) { - _ = GetAndSaveTempRuntimeData(data, monitor.Content); + _ = await GetAndSaveTempRuntimeDataAsync(data, monitor.Content); } // restore 时避免覆盖已有的自定义配置 else if (data.WpEffectFilePathUsing == string.Empty) { @@ -577,7 +577,7 @@ public IWpBasicData CreateBasicDataInMem( return data; } - private IWpRuntimeData GetAndSaveTempRuntimeData(IWpPlayerData playerData, string monitorContent) { + private async Task GetAndSaveTempRuntimeDataAsync(IWpPlayerData playerData, string monitorContent) { WpRuntimeData data = new(); try { @@ -602,7 +602,7 @@ private IWpRuntimeData GetAndSaveTempRuntimeData(IWpPlayerData playerData, strin //File.Copy(data.WpEffectFilePathTemporary, data.WpEffectFilePathUsing, true); data.DepthFilePath = playerData.DepthFilePath; - data.FromTempMoveToInstallPath(_userSettings.Settings.WallpaperDir); + await data.FromTempMoveToInstallPathAsync(_userSettings.Settings.WallpaperDir); } catch (Exception ex) { ArcLog.GetLogger().Error(ex);

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%0Adg8n`%5C`i&Ul5ZG`_{s&P>|( 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%0D>)-Dgmk#4-c@EpLASruC+c*G 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�@fM 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 Date: Mon, 18 May 2026 17:47:20 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix=EF=BC=9A=E8=B0=83=E6=95=B4=20auto=5Frel?= =?UTF-8?q?ease=20=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=8C=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E9=A2=84=E5=8F=91=E5=B8=83=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-version-release.yml | 25 ++++++++------------ .github/workflows/manual-rollback.yml | 27 ++++++++++++---------- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/.github/workflows/auto-version-release.yml b/.github/workflows/auto-version-release.yml index fca3e15d..43d020c8 100644 --- a/.github/workflows/auto-version-release.yml +++ b/.github/workflows/auto-version-release.yml @@ -548,7 +548,7 @@ jobs: # ───────────────────────────────────────────────────────────── # Job 6: 将 main 同步到 pre-publish branches # 策略1: git merge main -X theirs(全量合并,冲突以 main 为准) - # 策略2: checkout -- (fallback,仅同步版本文件) + # 策略2: reset --hard origin/main(fallback,冲突无法自动解决时强制覆盖) # ───────────────────────────────────────────────────────────── sync: name: Sync Version to Pre-publish Branches @@ -562,7 +562,7 @@ jobs: token: ${{ secrets.RELEASE_PAT }} fetch-depth: 0 - - name: Sync main -> pre-publish branches (merge preferred, fallback file sync) + - name: Sync main -> pre-publish branches (merge with main override on conflict) shell: powershell run: | $newVersion = "${{ needs.prepare.outputs.new_version }}" @@ -597,22 +597,15 @@ jobs: Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " $branch fully synced with main" } else { - # 策略 2(fallback):merge 无法自动解决 → 放弃,仅同步版本文件 - Write-Host " [WARN]" -ForegroundColor Yellow -NoNewline; Write-Host " merge has unresolvable conflicts, fallback to file-only sync" + # 策略 2(fallback):merge 无法自动解决 → 放弃,直接 reset --hard 到 main + # 使用 reset --hard 直接移动分支指针,不产生额外 commit, + # 历史看起来如同这次 merge 从未发生,比 git revert 更干净彻底。 + Write-Host " [WARN]" -ForegroundColor Yellow -NoNewline; Write-Host " merge has unresolvable conflicts, force-resetting to origin/main" git merge --abort - git checkout origin/main -- src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md - Write-Host " [OK] version files pulled from origin/main" - - git add src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md - $status = git status --porcelain - if ($status) { - git commit -m "[Github CI] chore: sync version $newVersion (fallback) [skip ci]" - git push origin $branch - Write-Host "[WARN]" -ForegroundColor Yellow -NoNewline; Write-Host " $branch version files synced (full merge skipped due to unresolvable conflicts)" - } else { - Write-Host "[SKIP] $branch already at version $newVersion" - } + git reset --hard origin/main + git push --force-with-lease origin $branch + Write-Host "[WARN]" -ForegroundColor Yellow -NoNewline; Write-Host " $branch force-reset to origin/main (unresolvable conflicts overridden)" } } diff --git a/.github/workflows/manual-rollback.yml b/.github/workflows/manual-rollback.yml index 607cd97c..89da7f00 100644 --- a/.github/workflows/manual-rollback.yml +++ b/.github/workflows/manual-rollback.yml @@ -75,10 +75,14 @@ jobs: Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " main: version $version reverted" # ───────────────────────────────────────────────────────── - # Step 2: 在预发布分支上恢复 bump 前的版本文件 - # 无论 sync 是 merge 还是 fallback file-sync,统一用 - # bump 前的 main 中的版本文件覆盖,确保版本号一致。 - # 不 revert 完整的 merge(保留 main 同步过来的代码)。 + # Step 2: 在预发布分支上创建一个 revert commit,回滚到 pre-bump 状态 + # 做法:用 `git read-tree --reset -u` 将工作树和 index 重置为 + # pre-bump main 的内容快照,但 HEAD 保持不变;再 commit & push。 + # 效果: + # - 分支内容与 pre-bump main 完全一致(含版本文件等所有文件) + # - 完整保留历史(sync merge / bump commit 都仍在 git log 中) + # - 多一条清晰的 revert commit,可追溯何时回滚到了哪个版本 + # - 普通 push 即可,无需 force push # ───────────────────────────────────────────────────────── if ($scope -eq 'main only') { Write-Host "" @@ -92,19 +96,18 @@ jobs: git checkout -B $branch origin/$branch - # 从 bump 前的 main 中提取版本文件,恢复到旧版本号 - git checkout $preBumpSha -- src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md - Write-Host " [OK] version files restored from pre-bump main ($($preBumpSha.Substring(0,7)))" - - git add src/VirtualPaper/VirtualPaper.csproj InnoSetup/setup.iss README.md + # 将 index 和工作树重置为 pre-bump main 的内容快照(HEAD 不动) + # 这样后续 commit 就是一条"内容 = pre-bump"的 revert commit + git read-tree --reset -u $preBumpSha $status = git status --porcelain if ($status) { - git commit -m "[Github CI] rollback: restore version files before $version [skip ci]" + git commit -m "[Github CI] revert: rollback to state before v$version [skip ci]" git push origin $branch - Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " $branch: version files rolled back" + Write-Host "[OK]" -ForegroundColor Green -NoNewline + Write-Host " ${branch}: revert commit created (content matches pre-bump main $($preBumpSha.Substring(0,7)), history preserved)" } else { - Write-Host "[SKIP] $branch: version files unchanged" + Write-Host "[SKIP] ${branch}: already matches pre-bump main, nothing to revert" } } } From 48fdc01102b52d6a830842641383078e24520e56 Mon Sep 17 00:00:00 2001 From: paperhammer Date: Tue, 19 May 2026 22:31:41 +0800 Subject: [PATCH 3/8] =?UTF-8?q?feature=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=20web=20=E4=BA=A4=E4=BA=92=E5=9E=8B=E5=A3=81=E7=BA=B8=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81=EF=BC=88=E5=BE=85=E9=BC=A0=E6=A0=87=E6=8C=87?= =?UTF-8?q?=E9=92=88=E5=90=8C=E6=AD=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/VirtualPaper.Common/Enums.cs | 9 + .../Runtime/PlayerWeb/Fields.cs | 5 + .../Utils/Files/FileFilter.cs | 9 + .../Protos/common_models.proto | 2 + .../Cores/Interfaces/IWpPlayerData.cs | 4 +- src/VirtualPaper.Models/Cores/WpBasicData.cs | 5 +- src/VirtualPaper.Models/Cores/WpPlayerData.cs | 4 +- .../PLAYER_Web/default.html | 7 + .../PLAYER_Web/js/default/run.js | 9 + .../WebView/Pages/PageOnlyDataConfig.xaml.cs | 1 - .../WebView/Pages/PageWithPlaying.xaml | 1 - .../WebView/Pages/PageWithPlaying.xaml.cs | 6 + src/VirtualPaper.PlayerWeb/Form1.cs | 65 +++++ .../PLAYER_Web/3d_depth_map.html | 114 --------- .../PLAYER_Web/default.html | 73 ------ .../PLAYER_Web/js/3d_depth/run.js | 223 ----------------- .../js/3d_depth/three.module.min.js | 6 - .../PLAYER_Web/js/base.js | 236 ------------------ .../PLAYER_Web/js/default/run.js | 113 --------- .../VirtualPaper.PlayerWeb.csproj | 20 +- .../ViewModels/AddToLibViewModel.cs | 2 +- .../ViewModels/LibraryContentsViewModel.cs | 6 +- .../Cores/WpControl/WallpaperControl.cs | 29 +-- .../Factories/WallpaperFactory.cs | 5 +- src/VirtualPaper/Models/WpWebProjectData.cs | 35 +++ .../BasicDataBuilders/IWpBasicDataBuilder.cs | 19 ++ .../ImageBasicDataBuilder.cs | 31 +++ .../VideoBasicDataBuilder.cs | 31 +++ .../WebZipBasicDataBuilder.cs | 78 ++++++ .../WpBasicDataBuilderRegistry.cs | 26 ++ src/VirtualPaper/Utils/WallpaperUtil.cs | 74 +++++- src/VirtualPaper/VirtualPaper.csproj | 57 ++--- 32 files changed, 448 insertions(+), 857 deletions(-) delete mode 100644 src/VirtualPaper.PlayerWeb/PLAYER_Web/3d_depth_map.html delete mode 100644 src/VirtualPaper.PlayerWeb/PLAYER_Web/default.html delete mode 100644 src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/run.js delete mode 100644 src/VirtualPaper.PlayerWeb/PLAYER_Web/js/3d_depth/three.module.min.js delete mode 100644 src/VirtualPaper.PlayerWeb/PLAYER_Web/js/base.js delete mode 100644 src/VirtualPaper.PlayerWeb/PLAYER_Web/js/default/run.js create mode 100644 src/VirtualPaper/Models/WpWebProjectData.cs create mode 100644 src/VirtualPaper/Utils/BasicDataBuilders/IWpBasicDataBuilder.cs create mode 100644 src/VirtualPaper/Utils/BasicDataBuilders/ImageBasicDataBuilder.cs create mode 100644 src/VirtualPaper/Utils/BasicDataBuilders/VideoBasicDataBuilder.cs create mode 100644 src/VirtualPaper/Utils/BasicDataBuilders/WebZipBasicDataBuilder.cs create mode 100644 src/VirtualPaper/Utils/BasicDataBuilders/WpBasicDataBuilderRegistry.cs diff --git a/src/VirtualPaper.Common/Enums.cs b/src/VirtualPaper.Common/Enums.cs index 9e5ed0e7..fcbfeb2d 100644 --- a/src/VirtualPaper.Common/Enums.cs +++ b/src/VirtualPaper.Common/Enums.cs @@ -97,6 +97,7 @@ public enum FileType { FVideo, FDesign, FimageAI, + FWebZip, } public enum RuntimeType { @@ -104,6 +105,7 @@ public enum RuntimeType { RImage, RImage3D, RVideo, + RWeb, } public enum WallpaperCreateType { @@ -273,6 +275,13 @@ public Picture3DCostumize() { } } + [JsonSerializable(typeof(WebCostumize))] + public partial class WebCostumizeContext : JsonSerializerContext { } + public class WebCostumize : UniverseCostumise { + public WebCostumize() { + } + } + //public class Saturation { // public string Type { get; init; } = "Slider"; // public string Text { get; init; } = "Saturation"; diff --git a/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs b/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs index 1128f331..280ae951 100644 --- a/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs +++ b/src/VirtualPaper.Common/Runtime/PlayerWeb/Fields.cs @@ -10,5 +10,10 @@ public static class Fields { public static string ResourceLoad { get; } = "resourceLoad"; public static string UpdateDimensions { get; } = "updateDimensions"; public static string TimePerception { get; } = "TimePerception"; + + // RWeb 平台 API:对应 window.wallpaper 对象的内部方法 + public static string WpApiSetPaused { get; } = "window.wallpaper.__setPaused"; + public static string WpApiApplyProperties { get; } = "window.wallpaper.__applyProperties"; + public static string WpApiMouseMove { get; } = "window.wallpaper.__mouseMove"; } } diff --git a/src/VirtualPaper.Common/Utils/Files/FileFilter.cs b/src/VirtualPaper.Common/Utils/Files/FileFilter.cs index a509098b..141c3c22 100644 --- a/src/VirtualPaper.Common/Utils/Files/FileFilter.cs +++ b/src/VirtualPaper.Common/Utils/Files/FileFilter.cs @@ -110,6 +110,7 @@ public static FileType GetRuntimeFileType(string extension) { [FileType.FVideo] = [".mp4", ".webm"], [FileType.FDesign] = [FileExtension.FE_Design], [FileType.FimageAI] = FImageAIExts, + [FileType.FWebZip] = [".zip", ".rar", ".7z"], }; ///