From 81115dc23d85a0b0c1b0f79ac43dd224bb761d0a Mon Sep 17 00:00:00 2001 From: figmar Date: Sat, 30 May 2026 14:57:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E6=8F=90=E4=BA=A4=EF=BC=9A?= =?UTF-8?q?=E8=AF=86=E6=B5=81=20AI=20=E5=8A=A9=E6=89=8B=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 微信自动回复机器人,基于截图+OCR识别消息,支持关键词规则和 AI(OpenAI/DeepSeek/Dify)自动回复。 技术栈:PySide6 + Flask + Vue3 + RapidOCR + SQLite 注:OCR大模型文件(.onnx / .pdiparams)不纳入版本控制,需单独下载。 🤖 Generated with [Qoder][https://qoder.com] --- .gitignore | 15 + app/__init__.py | 0 app/application/__init__.py | 0 app/application/bot_controller.py | 134 + app/application/services.py | 157 + app/configs/runtime_config.py | 187 + app/infrastructure/__init__.py | 0 app/infrastructure/backend.py | 25 + app/infrastructure/router/__init__.py | 0 app/infrastructure/router/backend/__init__.py | 0 app/infrastructure/router/backend/bot.py | 137 + app/infrastructure/router/backend/messages.py | 72 + app/infrastructure/router/backend/rules.py | 149 + app/infrastructure/router/backend_routes.py | 9 + app/infrastructure/service/__init__.py | 0 .../service/backend/__init__.py | 0 app/infrastructure/service/backend/ai.py | 81 + app/infrastructure/service/backend/config.py | 45 + app/infrastructure/service/backend/db.py | 218 + .../service/logging/log_query_service.py | 141 + .../service/logging/log_schema.py | 86 + .../service/logging/log_service.py | 102 + app/infrastructure/service/wechat/__init__.py | 0 .../service/wechat/chat_snapshot_analyzer.py | 1129 + app/infrastructure/service/wechat/config.py | 124 + app/infrastructure/service/wechat/ocr.py | 346 + .../service/wechat/screenshot.py | 314 + .../service/wechat/session_service.py | 288 + .../service/wechat/unread_session_analyzer.py | 258 + .../wechat_multi_chat_bot copy.py.bak | 504 + app/infrastructure/wechat_multi_chat_bot.py | 373 + app/presentation/__init__.py | 0 app/presentation/main_window.py | 238 + app/presentation/shell.py | 95 + backend_main.py | 46 + frontend/dist/assets/core-DhEqZVGG.js | 1 + frontend/dist/assets/index-Avv0D5es.css | 1 + frontend/dist/assets/index-C4rM3269.js | 2985 +++ frontend/dist/assets/window-B1zSvOyk.js | 1 + frontend/dist/index.html | 14 + frontend/index.html | 13 + frontend/package-lock.json | 1817 ++ frontend/package.json | 25 + frontend/scripts/backend-build.bat | 49 + frontend/src-tauri/.gitignore | 4 + frontend/src-tauri/Cargo.lock | 4941 +++++ frontend/src-tauri/Cargo.toml | 23 + frontend/src-tauri/build.rs | 3 + frontend/src-tauri/capabilities/default.json | 17 + frontend/src-tauri/icons/128x128.png | Bin 0 -> 11059 bytes frontend/src-tauri/icons/128x128@2x.png | Bin 0 -> 23137 bytes frontend/src-tauri/icons/32x32.png | Bin 0 -> 2225 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 0 -> 9202 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 0 -> 12530 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 0 -> 13032 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 0 -> 25943 bytes frontend/src-tauri/icons/Square30x30Logo.png | Bin 0 -> 2078 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 0 -> 28507 bytes frontend/src-tauri/icons/Square44x44Logo.png | Bin 0 -> 3419 bytes frontend/src-tauri/icons/Square71x71Logo.png | Bin 0 -> 6027 bytes frontend/src-tauri/icons/Square89x89Logo.png | Bin 0 -> 7551 bytes frontend/src-tauri/icons/StoreLogo.png | Bin 0 -> 3971 bytes frontend/src-tauri/icons/icon.icns | Bin 0 -> 277003 bytes frontend/src-tauri/icons/icon.ico | Bin 0 -> 37710 bytes frontend/src-tauri/icons/icon.png | Bin 0 -> 49979 bytes frontend/src-tauri/resources/.gitkeep | 0 frontend/src-tauri/src/lib.rs | 356 + frontend/src-tauri/src/main.rs | 6 + frontend/src-tauri/tauri.conf.json | 51 + frontend/src/App.vue | 149 + frontend/src/api/bot.js | 43 + frontend/src/api/client.js | 1 + frontend/src/api/http.js | 57 + frontend/src/api/messages.js | 5 + frontend/src/api/rules.js | 17 + frontend/src/api/settings.js | 9 + frontend/src/components/AppTopBar.vue | 55 + frontend/src/components/RuntimeBadge.vue | 18 + frontend/src/composables/useBotStatus.js | 177 + frontend/src/composables/useMessages.js | 25 + frontend/src/composables/useRulesManager.js | 132 + frontend/src/composables/useSettings.js | 44 + frontend/src/composables/useWindowBridge.js | 94 + frontend/src/constants/messageColumns.js | 10 + frontend/src/constants/options.js | 21 + frontend/src/main.js | 33 + frontend/src/styles.css | 299 + frontend/src/utils/datetime.js | 12 + frontend/src/views/LogsView.vue | 228 + frontend/src/views/MessagesView.vue | 31 + frontend/src/views/PanelView.vue | 115 + frontend/src/views/RulesView.vue | 76 + frontend/vite.config.js | 17 + legacy/.htaccess | 0 legacy/README_BOT.md | 143 + legacy/ai_helper.php | 310 + legacy/ai_helper_backup.txt | Bin 0 -> 20540 bytes legacy/api_receive_message.php | 97 + legacy/api_rules.php | 99 + legacy/config.php | 44 + legacy/database.sql | 45 + legacy/db.php | 29 + legacy/install_ocr.bat | 33 + legacy/install_wechat_bot.bat | 37 + legacy/nginx.htaccess | 6 + legacy/run_all.py | 31 + legacy/test_dify.php | 57 + legacy/test_dify_v2.php | 81 + legacy/wechat_bot_optimized.py | 486 + main.py | 62 + requirements.txt | 17 + vendor/paddleocr/.gitkeep | 0 vendor/paddleocr/models/.gitkeep | 0 .../img_textline180_demo_res.jpg | Bin 0 -> 6897 bytes .../img_textline180_demo_res.json | 13 + .../PP-LCNet_x1_0_textline_ori/inference.json | 1 + .../PP-LCNet_x1_0_textline_ori/inference.yml | 46 + .../official_models/PP-OCRv5_server_det/.msc | Bin 0 -> 366 bytes .../official_models/PP-OCRv5_server_det/.mv | 1 + .../PP-OCRv5_server_det/README.md | 220 + .../PP-OCRv5_server_det/config.json | 111 + .../PP-OCRv5_server_det/inference.json | 1 + .../PP-OCRv5_server_det/inference.yml | 53 + .../official_models/PP-OCRv5_server_rec/.msc | Bin 0 -> 366 bytes .../official_models/PP-OCRv5_server_rec/.mv | 1 + .../PP-OCRv5_server_rec/README.md | 219 + .../PP-OCRv5_server_rec/config.json | 18480 ++++++++++++++++ .../PP-OCRv5_server_rec/inference.json | 1 + .../PP-OCRv5_server_rec/inference.yml | 18426 +++++++++++++++ 129 files changed, 56398 insertions(+) create mode 100644 .gitignore create mode 100644 app/__init__.py create mode 100644 app/application/__init__.py create mode 100644 app/application/bot_controller.py create mode 100644 app/application/services.py create mode 100644 app/configs/runtime_config.py create mode 100644 app/infrastructure/__init__.py create mode 100644 app/infrastructure/backend.py create mode 100644 app/infrastructure/router/__init__.py create mode 100644 app/infrastructure/router/backend/__init__.py create mode 100644 app/infrastructure/router/backend/bot.py create mode 100644 app/infrastructure/router/backend/messages.py create mode 100644 app/infrastructure/router/backend/rules.py create mode 100644 app/infrastructure/router/backend_routes.py create mode 100644 app/infrastructure/service/__init__.py create mode 100644 app/infrastructure/service/backend/__init__.py create mode 100644 app/infrastructure/service/backend/ai.py create mode 100644 app/infrastructure/service/backend/config.py create mode 100644 app/infrastructure/service/backend/db.py create mode 100644 app/infrastructure/service/logging/log_query_service.py create mode 100644 app/infrastructure/service/logging/log_schema.py create mode 100644 app/infrastructure/service/logging/log_service.py create mode 100644 app/infrastructure/service/wechat/__init__.py create mode 100644 app/infrastructure/service/wechat/chat_snapshot_analyzer.py create mode 100644 app/infrastructure/service/wechat/config.py create mode 100644 app/infrastructure/service/wechat/ocr.py create mode 100644 app/infrastructure/service/wechat/screenshot.py create mode 100644 app/infrastructure/service/wechat/session_service.py create mode 100644 app/infrastructure/service/wechat/unread_session_analyzer.py create mode 100644 app/infrastructure/wechat_multi_chat_bot copy.py.bak create mode 100644 app/infrastructure/wechat_multi_chat_bot.py create mode 100644 app/presentation/__init__.py create mode 100644 app/presentation/main_window.py create mode 100644 app/presentation/shell.py create mode 100644 backend_main.py create mode 100644 frontend/dist/assets/core-DhEqZVGG.js create mode 100644 frontend/dist/assets/index-Avv0D5es.css create mode 100644 frontend/dist/assets/index-C4rM3269.js create mode 100644 frontend/dist/assets/window-B1zSvOyk.js create mode 100644 frontend/dist/index.html create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/scripts/backend-build.bat create mode 100644 frontend/src-tauri/.gitignore create mode 100644 frontend/src-tauri/Cargo.lock create mode 100644 frontend/src-tauri/Cargo.toml create mode 100644 frontend/src-tauri/build.rs create mode 100644 frontend/src-tauri/capabilities/default.json create mode 100644 frontend/src-tauri/icons/128x128.png create mode 100644 frontend/src-tauri/icons/128x128@2x.png create mode 100644 frontend/src-tauri/icons/32x32.png create mode 100644 frontend/src-tauri/icons/Square107x107Logo.png create mode 100644 frontend/src-tauri/icons/Square142x142Logo.png create mode 100644 frontend/src-tauri/icons/Square150x150Logo.png create mode 100644 frontend/src-tauri/icons/Square284x284Logo.png create mode 100644 frontend/src-tauri/icons/Square30x30Logo.png create mode 100644 frontend/src-tauri/icons/Square310x310Logo.png create mode 100644 frontend/src-tauri/icons/Square44x44Logo.png create mode 100644 frontend/src-tauri/icons/Square71x71Logo.png create mode 100644 frontend/src-tauri/icons/Square89x89Logo.png create mode 100644 frontend/src-tauri/icons/StoreLogo.png create mode 100644 frontend/src-tauri/icons/icon.icns create mode 100644 frontend/src-tauri/icons/icon.ico create mode 100644 frontend/src-tauri/icons/icon.png create mode 100644 frontend/src-tauri/resources/.gitkeep create mode 100644 frontend/src-tauri/src/lib.rs create mode 100644 frontend/src-tauri/src/main.rs create mode 100644 frontend/src-tauri/tauri.conf.json create mode 100644 frontend/src/App.vue create mode 100644 frontend/src/api/bot.js create mode 100644 frontend/src/api/client.js create mode 100644 frontend/src/api/http.js create mode 100644 frontend/src/api/messages.js create mode 100644 frontend/src/api/rules.js create mode 100644 frontend/src/api/settings.js create mode 100644 frontend/src/components/AppTopBar.vue create mode 100644 frontend/src/components/RuntimeBadge.vue create mode 100644 frontend/src/composables/useBotStatus.js create mode 100644 frontend/src/composables/useMessages.js create mode 100644 frontend/src/composables/useRulesManager.js create mode 100644 frontend/src/composables/useSettings.js create mode 100644 frontend/src/composables/useWindowBridge.js create mode 100644 frontend/src/constants/messageColumns.js create mode 100644 frontend/src/constants/options.js create mode 100644 frontend/src/main.js create mode 100644 frontend/src/styles.css create mode 100644 frontend/src/utils/datetime.js create mode 100644 frontend/src/views/LogsView.vue create mode 100644 frontend/src/views/MessagesView.vue create mode 100644 frontend/src/views/PanelView.vue create mode 100644 frontend/src/views/RulesView.vue create mode 100644 frontend/vite.config.js create mode 100644 legacy/.htaccess create mode 100644 legacy/README_BOT.md create mode 100644 legacy/ai_helper.php create mode 100644 legacy/ai_helper_backup.txt create mode 100644 legacy/api_receive_message.php create mode 100644 legacy/api_rules.php create mode 100644 legacy/config.php create mode 100644 legacy/database.sql create mode 100644 legacy/db.php create mode 100644 legacy/install_ocr.bat create mode 100644 legacy/install_wechat_bot.bat create mode 100644 legacy/nginx.htaccess create mode 100644 legacy/run_all.py create mode 100644 legacy/test_dify.php create mode 100644 legacy/test_dify_v2.php create mode 100644 legacy/wechat_bot_optimized.py create mode 100644 main.py create mode 100644 requirements.txt create mode 100644 vendor/paddleocr/.gitkeep create mode 100644 vendor/paddleocr/models/.gitkeep create mode 100644 vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.jpg create mode 100644 vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json create mode 100644 vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json create mode 100644 vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_det/.msc create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_rec/.msc create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_rec/.mv create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_rec/README.md create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_rec/config.json create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json create mode 100644 vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4f2442 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +ocr_debug_images/* +logs/* +frontend/node_modules/* +frontend/src-tauri/resources/* +!frontend/src-tauri/resources/.gitkeep +app/resources/ocr_models/variants/* +# 大型模型文件(需单独下载) +app/resources/ocr_models/*.onnx +vendor/paddleocr/official_models/**/*.pdiparams +.build/* + +.venv/* +**/__pycache__/* + + diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/application/__init__.py b/app/application/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/application/bot_controller.py b/app/application/bot_controller.py new file mode 100644 index 0000000..9b7e128 --- /dev/null +++ b/app/application/bot_controller.py @@ -0,0 +1,134 @@ +import os +import threading +import traceback +from datetime import datetime + +from app.infrastructure.wechat_multi_chat_bot import WechatMultiChatBot + + +class BotController: + def __init__(self): + self._lock = threading.RLock() + self._thread = None + self._bot = None + self._status = "stopped" + self._last_error = "" + self._started_at = "" + self._stopped_at = "" + self._listeners = {} + self._listener_seq = 0 + + def start(self, backend_url): + with self._lock: + if self._thread and self._thread.is_alive(): + return self._status_payload_locked() + self._status = "starting" + self._last_error = "" + self._stopped_at = "" + os.environ["BACKEND_URL"] = backend_url + self._thread = threading.Thread(target=self._run, daemon=True, name="WechatBotThread") + self._thread.start() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + return status + + def stop(self): + with self._lock: + if not self._thread or not self._thread.is_alive(): + self._status = "stopped" + self._bot = None + self._stopped_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + return status + self._status = "stopping" + bot = self._bot + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + if bot: + bot.stop() + return status + + def status(self): + listeners = None + with self._lock: + if self._status in {"running", "starting", "stopping"} and self._thread and not self._thread.is_alive(): + if self._status != "error": + self._status = "stopped" + self._bot = None + self._stopped_at = self._stopped_at or self._now() + listeners = list(self._listeners.values()) + status = self._status_payload_locked() + if listeners is not None: + self._notify_status_listeners(listeners, status) + return status + + def add_status_listener(self, callback, emit_initial=False): + with self._lock: + self._listener_seq += 1 + listener_id = self._listener_seq + self._listeners[listener_id] = callback + status = self._status_payload_locked() + if emit_initial: + try: + callback(status) + except Exception: + pass + return listener_id + + def remove_status_listener(self, listener_id): + with self._lock: + self._listeners.pop(listener_id, None) + + def _run(self): + try: + bot = WechatMultiChatBot() + with self._lock: + self._bot = bot + self._status = "running" + self._started_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + bot.run_forever() + with self._lock: + self._status = "stopped" + self._bot = None + self._stopped_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + except Exception: + with self._lock: + self._status = "error" + self._bot = None + self._last_error = traceback.format_exc() + self._stopped_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + + def _status_payload_locked(self): + return { + "status": self._status, + "running": self._status == "running", + "last_error": self._last_error, + "started_at": self._started_at, + "stopped_at": self._stopped_at, + } + + def _notify_status_listeners(self, listeners, status): + for callback in listeners: + try: + callback(status) + except Exception: + pass + + def _now(self): + return datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + +bot_controller = BotController() diff --git a/app/application/services.py b/app/application/services.py new file mode 100644 index 0000000..e030618 --- /dev/null +++ b/app/application/services.py @@ -0,0 +1,157 @@ +import os +import socket +import subprocess +import sys +import time +from pathlib import Path + +import requests + + +class AppConfig: + def __init__(self): + self.project_root = Path(__file__).resolve().parents[2] + self.runtime_mode = self._normalize_runtime_mode(os.getenv("OPENCLAW_RUNTIME_MODE") or os.getenv("OPENCLAW_BACKEND_MODE")) + self.venv_root = self.project_root / ".venv" + self.venv_python = self.venv_root / "Scripts" / "python.exe" + self.venv_pythonw = self.venv_root / "Scripts" / "pythonw.exe" + self.host = os.getenv("APP_HOST", "127.0.0.1") + self.port = int(os.getenv("APP_PORT", "5000")) + + def _normalize_runtime_mode(self, value): + mode = (value or "").strip().lower() + if mode in {"release", "prod", "production", "bundle", "packaged"}: + return "release" + return "dev" + + @property + def base_url(self): + return f"http://{self.host}:{self.port}" + + @property + def python_executable(self): + return Path(sys.executable).resolve() + + @property + def python_prefix(self): + return Path(sys.prefix).resolve() + + @property + def is_release_mode(self): + return self.runtime_mode == "release" + + @property + def backend_entry(self): + return self.project_root / "backend_main.py" + + @property + def is_running_in_project_venv(self): + if self.is_release_mode: + return False + try: + if self.python_prefix == self.venv_root.resolve(): + return True + allowed_targets = { + self.venv_python.resolve(), + self.venv_pythonw.resolve(), + } + return self.python_executable in allowed_targets + except Exception: + return False + + +class BackendRuntime: + def __init__(self, config=None): + self.config = config or AppConfig() + + @property + def host(self): + return self.config.host + + @property + def port(self): + return self.config.port + + @property + def base_url(self): + return self.config.base_url + + @property + def backend_entry(self): + return self.config.backend_entry + + def is_backend_alive(self, host=None, port=None, timeout=0.4): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(timeout) + try: + return sock.connect_ex((host or self.host, port or self.port)) == 0 + finally: + sock.close() + + def launch_backend_process(self): + if self.config.is_release_mode: + raise RuntimeError("当前运行模式为发布态,不能从 Python 壳层再启动 backend_main.py") + backend_python = self.config.venv_python + if not backend_python.exists(): + raise RuntimeError(f"未找到后端解释器: {backend_python}") + backend_entry = self.backend_entry + if not backend_entry.exists(): + raise RuntimeError(f"未找到后端入口: {backend_entry}") + env = os.environ.copy() + env["OPENCLAW_PROJECT_VENV_REEXEC"] = "1" + env.setdefault("OPENCLAW_BACKEND_MODE", "dev") + env.setdefault("OPENCLAW_RUNTIME_MODE", "dev") + creationflags = getattr(subprocess, "CREATE_NO_WINDOW", 0) + return subprocess.Popen( + [str(backend_python), str(backend_entry)], + cwd=str(self.config.project_root), + env=env, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + creationflags=creationflags, + ) + + def terminate_backend_process(self, process, timeout=3): + if process is None or process.poll() is not None: + return + try: + process.terminate() + process.wait(timeout=timeout) + except Exception: + if process.poll() is None: + process.kill() + + +class FrontendRuntime: + def __init__(self, config=None, backend_runtime=None): + self.config = config or AppConfig() + self.backend_runtime = backend_runtime or BackendRuntime(self.config) + self.frontend_dev_url = os.getenv("FRONTEND_DEV_URL", "http://127.0.0.1:5173").strip().rstrip("/") + self.frontend_dist_index = self.config.project_root / "frontend" / "dist" / "index.html" + self.backend_wait_timeout_ms = 15000 + self.backend_wait_interval_ms = 200 + + def resolve_frontend_entry_url(self, backend_url): + if self.frontend_dev_url: + try: + requests.get(self.frontend_dev_url, timeout=1.2) + return self.frontend_dev_url + except Exception: + pass + if self.frontend_dist_index.exists(): + return backend_url.rstrip("/") + "/index.html" + return backend_url.rstrip("/") + "/admin.html" + + def wait_for_backend(self, process=None, timeout_ms=None, interval_ms=None): + timeout_ms = timeout_ms or self.backend_wait_timeout_ms + interval_ms = interval_ms or self.backend_wait_interval_ms + started_at = time.time() * 1000 + while True: + if self.backend_runtime.is_backend_alive(): + return True, "" + if process is not None and process.poll() is not None: + return False, f"独立后台进程已退出,退出码: {process.returncode}" + elapsed = time.time() * 1000 - started_at + if elapsed >= timeout_ms: + return False, f"后台启动超时,{int(elapsed)}ms 内未监听 {self.backend_runtime.host}:{self.backend_runtime.port}" + time.sleep(interval_ms / 1000.0) diff --git a/app/configs/runtime_config.py b/app/configs/runtime_config.py new file mode 100644 index 0000000..c91c094 --- /dev/null +++ b/app/configs/runtime_config.py @@ -0,0 +1,187 @@ +import os +from typing import Any + +DEFAULT_CONFIG: dict[str, Any] = { + # 应用展示名称,同时作为 AppData 默认目录名的一部分 + "APP_NAME": "AiShiliu", + # Flask 后端监听地址 + "APP_HOST": "127.0.0.1", + # Flask 后端监听端口 + "APP_PORT": 5000, + # 应用默认时区 + "APP_TIMEZONE": "Asia/Shanghai", + # 已构建前端静态资源目录,留空时自动回退到项目默认目录 + "FRONTEND_STATIC_DIR": "", + + # 日志总开关 + "LOG_ENABLED": True, + # 日志级别 + "LOG_LEVEL": "INFO", + # 是否写文本日志 + "LOG_TEXT_ENABLED": True, + # 是否写JSON日志 + "LOG_JSON_ENABLED": True, + # 单文件滚动大小(MB) + "LOG_ROTATE_MB": 5, + # 滚动保留份数 + "LOG_BACKUP_COUNT": 7, + + # MySQL 主机地址(预留给后续鉴权等在线能力) + "DB_HOST": "127.0.0.1", + # MySQL 端口(预留) + "DB_PORT": 3306, + # MySQL 数据库名(预留) + "DB_NAME": "ai_shiliu", + # MySQL 用户名(预留) + "DB_USER": "ai_shiliu", + # MySQL 密码(预留) + "DB_PASS": "", + # MySQL 字符集(预留) + "DB_CHARSET": "utf8mb4", + + # AI 提供方(openai/deepseek/dify) + "AI_PROVIDER": "dify", + # OpenAI 接口密钥 + "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", + # OpenAI API 基础地址 + "OPENAI_API_BASE": "https://api.openai.com/v1", + # OpenAI 默认模型 + "OPENAI_MODEL": "gpt-4.1-mini", + # DeepSeek 接口密钥 + "DEEPSEEK_API_KEY": "", + # DeepSeek API 基础地址 + "DEEPSEEK_API_BASE": "https://api.deepseek.com", + # DeepSeek 默认模型 + "DEEPSEEK_MODEL": "deepseek-chat", + # Dify 接口密钥 + "DIFY_API_KEY": "app-a9dofsiQi4e157uDYTx8Lrja", + # Dify API 基础地址 + "DIFY_API_BASE": "http://47.92.48.126/v1", + # Dify 用户标识 + "DIFY_USER": "wechat_user", + + + + # 百度 OCR API Key + "BAIDU_API_KEY": "ElIQN30iAqpEGi9zv0VlrtQX", + # 百度 OCR Secret Key + "BAIDU_SECRET_KEY": "7wrO2wDTx7FehuelgG0NCBDFOklnqSz0", + # OCR 引擎(baidu/rapid) + "OCR_PROVIDER": "rapid", + + # 微信机器人上报后端消息接口 + "BACKEND_URL": "http://127.0.0.1:5000/api/messages/receive", + # 轮询主循环间隔(秒) + "BOT_LOOP_INTERVAL": 3, + # 点击联系人后等待(秒) + "BOT_CLICK_AFTER_DELAY": 1.2, + # 切换会话后读取标题等待(秒) + "BOT_TITLE_AFTER_DELAY": 1.0, + # 联系人切换节流等待(秒) + "BOT_CONTACT_SWITCH_DELAY": 1.0, + # 主循环异常后的重试等待(秒) + "BOT_LOOP_ERROR_DELAY": 3.0, + + # 微信窗口目标宽度 + "WECHAT_WINDOW_TARGET_WIDTH": 1080, + # 微信窗口目标高度 + "WECHAT_WINDOW_TARGET_HEIGHT": 820, + # 微信窗口目标左侧坐标 + "WECHAT_WINDOW_TARGET_LEFT": 120, + # 微信窗口目标顶部坐标 + "WECHAT_WINDOW_TARGET_TOP": 80, + + # 是否保存 OCR 调试截图 + "OCR_SAVE_IMAGES": True, + + # 联系人行高(用于定位) + "CONTACT_ROW_HEIGHT": 64, + # 联系人列宽(用于定位) + "CONTACT_ROW_WIDTH": 240, + # 联系人列表左偏移 + "CONTACT_LIST_LEFT_OFFSET": 68, + # 联系人列表上偏移 + "CONTACT_LIST_TOP_OFFSET": 82, + # 联系人列表下偏移 + "CONTACT_LIST_BOTTOM_OFFSET": 0, + + # 会话名区域左偏移 + "SESSION_NAME_LEFT_OFFSET": 48, + # 会话名区域上偏移 + "SESSION_NAME_TOP_OFFSET": 8, + # 会话名区域宽度 + "SESSION_NAME_WIDTH": 140, + # 会话名区域高度 + "SESSION_NAME_HEIGHT": 24, + # 会话名 OCR 放大倍数 + "SESSION_NAME_OCR_SCALE": 4, + # 会话名 OCR 额外放大倍数 + "SESSION_NAME_OCR_EXTRA_SCALE": 6, + + # 聊天区截图左偏移 + "CHAT_CAPTURE_LEFT_OFFSET": 310, + # 聊天区截图上偏移 + "CHAT_CAPTURE_TOP_OFFSET": 70, + # 聊天区截图宽度 + "CHAT_CAPTURE_WIDTH": 750, + # 聊天区截图高度 + "CHAT_CAPTURE_HEIGHT": 550, + + # 顶部惩罚权重比例 + "OCR_TOP_PENALTY_RATIO": 0.18, + # 顶部惩罚二值化系数 + "OCR_TOP_PENALTY_BIN_FACTOR": 2.0, + # 顶部惩罚颜色系数 + "OCR_TOP_PENALTY_COLOR_FACTOR": 2.2, + + # 标题 OCR 区域左偏移(保留较大的方案) + "TITLE_OCR_AREA_LEFT_OFFSET": 310, + # 标题 OCR 区域上偏移(保留较大的方案) + "TITLE_OCR_AREA_TOP_OFFSET": 0, + # 标题 OCR 区域宽度(保留较大的方案) + "TITLE_OCR_AREA_WIDTH": 600, + # 标题 OCR 区域高度(保留较大的方案) + "TITLE_OCR_AREA_HEIGHT": 70, +} + + +def _raw_value(key: str) -> Any: + env_value = os.getenv(key) + if env_value is not None: + return env_value + return DEFAULT_CONFIG.get(key) + + +def get_str(key: str, default: str = "") -> str: + value = _raw_value(key) + if value is None: + return default + return str(value) + + +def get_int(key: str, default: int = 0) -> int: + value = _raw_value(key) + if value is None or value == "": + return default + return int(value) + + +def get_float(key: str, default: float = 0.0) -> float: + value = _raw_value(key) + if value is None or value == "": + return default + return float(value) + + +def get_bool(key: str, default: bool = False) -> bool: + value = _raw_value(key) + if value is None: + return default + if isinstance(value, bool): + return value + normalized = str(value).strip().lower() + if normalized in {"1", "true", "yes", "on"}: + return True + if normalized in {"0", "false", "no", "off"}: + return False + return default diff --git a/app/infrastructure/__init__.py b/app/infrastructure/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/backend.py b/app/infrastructure/backend.py new file mode 100644 index 0000000..75207ce --- /dev/null +++ b/app/infrastructure/backend.py @@ -0,0 +1,25 @@ + +from app.infrastructure.service.backend.config import app +from app.infrastructure.service.backend.db import init_db +from app.infrastructure.router.backend_routes import register_routes +from app.infrastructure.service.logging.log_service import init_logging, log_event, new_trace_id + + +init_logging() +register_routes(app) + + +def init_backend(): + trace_id = new_trace_id("backend") + try: + init_db() + log_event("INFO", "db", "db.init", trace_id, "boot", "ok", "数据库初始化成功") + except Exception as err: + log_event("ERROR", "db", "db.error", trace_id, "boot", "fail", "数据库初始化失败", reason=type(err).__name__) + raise + return app + + +def start_backend(host="127.0.0.1", port=5000, threaded=True): + backend_app = init_backend() + backend_app.run(host=host, port=port, threaded=threaded) diff --git a/app/infrastructure/router/__init__.py b/app/infrastructure/router/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/router/backend/__init__.py b/app/infrastructure/router/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/router/backend/bot.py b/app/infrastructure/router/backend/bot.py new file mode 100644 index 0000000..3129269 --- /dev/null +++ b/app/infrastructure/router/backend/bot.py @@ -0,0 +1,137 @@ +import json +import queue + +from flask import Response, jsonify, request, stream_with_context + +from app.application.bot_controller import bot_controller +from app.infrastructure.service.backend.db import set_setting +from app.infrastructure.service.logging.log_query_service import clear_logs, query_event_json, query_events, query_summary, query_trace +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + + +def _sync_runtime_settings(status): + current = (status.get("status") or "stopped").strip().lower() + running = current == "running" + transitional = current in {"starting", "stopping"} + errored = current == "error" + if running: + set_setting("listener_enabled", "1") + set_setting("listener_runtime_status", "running") + elif transitional: + set_setting("listener_runtime_status", current) + elif errored: + set_setting("listener_enabled", "0") + set_setting("listener_runtime_status", "error") + else: + set_setting("listener_enabled", "0") + set_setting("listener_runtime_status", "stopped") + + +def register_bot_routes(app): + def _stream_payload(status): + return f"event: status\ndata: {json.dumps({'success': True, **status}, ensure_ascii=False)}\n\n" + + @app.route("/api/bot/status", methods=["GET"]) + def api_bot_status(): + trace_id = new_trace_id("api") + status = bot_controller.status() + _sync_runtime_settings(status) + log_event("INFO", "api", "api.bot.status", trace_id, "status", "ok", "查询监听状态成功", extra={"status": status.get("status")}) + return jsonify({"success": True, **status}) + + @app.route("/api/bot/status/stream", methods=["GET"]) + def api_bot_status_stream(): + status_queue = queue.Queue(maxsize=8) + + def on_status(status): + _sync_runtime_settings(status) + try: + status_queue.put_nowait(status) + except queue.Full: + try: + status_queue.get_nowait() + except queue.Empty: + pass + try: + status_queue.put_nowait(status) + except queue.Full: + pass + + listener_id = bot_controller.add_status_listener(on_status, emit_initial=True) + + @stream_with_context + def generate(): + try: + yield "retry: 2000\n\n" + while True: + try: + status = status_queue.get(timeout=15) + yield _stream_payload(status) + except queue.Empty: + yield "event: ping\ndata: {}\n\n" + finally: + bot_controller.remove_status_listener(listener_id) + + return Response(generate(), mimetype="text/event-stream", headers={ + "Cache-Control": "no-cache", + "Connection": "keep-alive", + "X-Accel-Buffering": "no", + }) + + @app.route("/api/logs/v2/events", methods=["GET"]) + def api_logs_v2_events(): + trace_id = request.args.get("trace_id") or "" + module = request.args.get("module") or "" + level = request.args.get("level") or "" + event = request.args.get("event") or "" + start_ts = request.args.get("start_ts") or "" + end_ts = request.args.get("end_ts") or "" + keyword = request.args.get("keyword") or "" + page = request.args.get("page", 1) + size = request.args.get("size", 50) + payload = query_events(module=module or None, level=level or None, event=event or None, trace_id=trace_id or None, start_ts=start_ts or None, end_ts=end_ts or None, keyword=keyword or None, page=page, size=size) + return jsonify({"success": True, **payload}) + + @app.route("/api/logs/v2/trace/", methods=["GET"]) + def api_logs_v2_trace(trace_id): + items = query_trace(trace_id) + return jsonify({"success": True, "trace_id": trace_id, "items": items}) + + @app.route("/api/logs/v2/summary", methods=["GET"]) + def api_logs_v2_summary(): + limit = request.args.get("limit", 300) + payload = query_summary(limit=limit) + return jsonify({"success": True, **payload}) + + @app.route("/api/logs/v2/event/", methods=["GET"]) + def api_logs_v2_event(event_id): + item = query_event_json(event_id) + if not item: + return jsonify({"success": False, "error": "event_not_found"}), 404 + return jsonify({"success": True, "item": item}) + + @app.route("/api/logs/v2/clear", methods=["POST"]) + def api_logs_v2_clear(): + body = request.get_json(silent=True) or {} + module = (body.get("module") or request.values.get("module") or request.args.get("module") or "").strip() + payload = clear_logs(module=module or None) + return jsonify({"success": True, **payload}) + + @app.route("/api/bot/start", methods=["POST"]) + def api_bot_start(): + trace_id = new_trace_id("api") + backend_url = (request.values.get("backend_url") or "").strip() + if not backend_url: + backend_url = request.host_url.rstrip("/") + "/api/messages/receive" + status = bot_controller.start(backend_url) + _sync_runtime_settings(status) + log_event("INFO", "api", "api.bot.start", trace_id, "start", "ok", "启动监听请求已处理", extra={"status": status.get("status"), "backend_url": backend_url}) + return jsonify({"success": True, **status}) + + @app.route("/api/bot/stop", methods=["POST"]) + def api_bot_stop(): + trace_id = new_trace_id("api") + status = bot_controller.stop() + _sync_runtime_settings(status) + log_event("INFO", "api", "api.bot.stop", trace_id, "stop", "ok", "停止监听请求已处理", extra={"status": status.get("status")}) + return jsonify({"success": True, **status}) diff --git a/app/infrastructure/router/backend/messages.py b/app/infrastructure/router/backend/messages.py new file mode 100644 index 0000000..7ce26cc --- /dev/null +++ b/app/infrastructure/router/backend/messages.py @@ -0,0 +1,72 @@ +from datetime import datetime + +from flask import jsonify, request + +from app.infrastructure.service.backend.ai import call_ai +from app.infrastructure.service.backend.db import find_rule_reply, get_conn, get_setting +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + + +def register_message_routes(app): + @app.route("/api/messages/receive", methods=["POST"]) + def api_receive_message(): + trace_id = new_trace_id("api") + data = request.get_json(silent=True) or request.form.to_dict() or {} + content = (data.get("content") or "").strip() + wx_user_id = (data.get("wx_user_id") or "").strip() + wx_nickname = (data.get("wx_nickname") or "").strip() + is_friend_request = int(data.get("is_friend_request") or 0) + ocr_confidence = str(data.get("ocr_confidence") or "").strip() + ocr_bubble_side = str(data.get("ocr_bubble_side") or "").strip() + if not content and not is_friend_request: + log_event("WARNING", "api", "api.messages.receive", trace_id, "validate", "failed", "消息内容为空且非好友请求", reason="content_empty") + return jsonify({"error": "content is empty"}), 400 + + conn = get_conn() + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + try: + with conn.cursor() as cur: + cur.execute("INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_friend_request, reply_strategy, reply_reason, ocr_confidence, ocr_bubble_side, created_at) VALUES (%s, %s, 'in', %s, %s, %s, %s, %s, %s, %s)", (wx_user_id, wx_nickname, content, is_friend_request, "none", "received", ocr_confidence, ocr_bubble_side, now)) + in_msg_id = cur.lastrowid + + auto_on = str(get_setting("auto_reply_enabled", "1") or "1").strip().lower() in ["1", "true", "yes", "on"] + full_auto_on = str(get_setting("full_auto_reply_enabled", "0") or "0").strip().lower() in ["1", "true", "yes", "on"] + reply_text = "" + used_rule_id = None + reply_strategy = "none" + reply_reason = "" + + if not auto_on: + reply_reason = "auto_reply_disabled" + else: + rule = find_rule_reply(content) + if rule: + reply_text = (rule.get("reply_text") or "").strip() + used_rule_id = rule.get("id") + reply_strategy = "rule" + reply_reason = f"rule_hit:{used_rule_id}" + elif full_auto_on: + reply_strategy = "full_auto" + reply_reason = "full_auto_enabled" + reply_text = call_ai(content, wx_user_id) + else: + reply_reason = "rule_miss" + + should_reply = auto_on and bool(reply_text) + + reply_msg_id = None + if should_reply: + is_ai_reply = 0 if used_rule_id else 1 + cur.execute("INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_ai_reply, rule_id, reply_strategy, reply_reason, created_at) VALUES (%s, %s, 'out', %s, %s, %s, %s, %s, %s)", (wx_user_id, wx_nickname, reply_text, is_ai_reply, used_rule_id, reply_strategy, reply_reason, now)) + reply_msg_id = cur.lastrowid + conn.commit() + except Exception as exc: + conn.rollback() + log_event("ERROR", "api", "api.messages.receive", trace_id, "persist", "failed", "消息入库或回复处理失败", reason="db_error", extra={"error": str(exc)}) + raise + finally: + conn.close() + + log_event("INFO", "audit", "audit.decision", trace_id, "decision", "ok", "回复决策完成", reason=reply_reason or "none", extra={"wx_user_id": wx_user_id, "strategy": reply_strategy, "should_reply": should_reply, "rule_id": used_rule_id or ""}) + log_event("INFO", "api", "api.messages.receive", trace_id, "done", "ok", "消息处理完成", extra={"in_message_id": in_msg_id, "reply_message_id": reply_msg_id or "", "should_reply": should_reply}) + return jsonify({"success": True, "should_reply": should_reply, "reply_text": reply_text, "in_message_id": in_msg_id, "reply_message_id": reply_msg_id}) diff --git a/app/infrastructure/router/backend/rules.py b/app/infrastructure/router/backend/rules.py new file mode 100644 index 0000000..9e1b638 --- /dev/null +++ b/app/infrastructure/router/backend/rules.py @@ -0,0 +1,149 @@ +from datetime import datetime + +from flask import jsonify, request, send_from_directory + +from app.application.bot_controller import bot_controller +from app.infrastructure.service.backend.config import ASSETS_DIR, STATIC_DIR +from app.infrastructure.service.backend.db import SQLITE_DB_PATH, get_conn, get_setting, set_setting +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + +LOCAL_SETTING_DEFAULTS = { + "auto_reply_enabled": "1", + "listener_enabled": "0", + "listener_runtime_status": "stopped", + "full_auto_reply_enabled": "0", + "reply_fallback_mode": "ai", +} +LOCAL_SETTING_CACHE = {} + + +def _load_local_settings(force=False): + if LOCAL_SETTING_CACHE and not force: + return + for key, default in LOCAL_SETTING_DEFAULTS.items(): + LOCAL_SETTING_CACHE[key] = str(get_setting(key, default)) + + + +def _get_local_setting(key, default=None): + _load_local_settings(force=True) + return LOCAL_SETTING_CACHE.get(key, default) + + + +def _set_local_setting(key, value): + v = str(value) + LOCAL_SETTING_CACHE[key] = v + set_setting(key, v) + + + +def _frontend_index_available(): + return STATIC_DIR != ASSETS_DIR and (STATIC_DIR / "index.html").exists() + + + +def register_rule_routes(app): + @app.route("/") + @app.route("/index.html") + def frontend_page(): + if _frontend_index_available(): + return send_from_directory(STATIC_DIR, "index.html") + return send_from_directory(ASSETS_DIR, "admin.html") + + @app.route("/admin.html") + def admin_page(): + return send_from_directory(ASSETS_DIR, "admin.html") + + @app.route("/api/rules", methods=["GET", "POST"]) + def api_rules(): + action = request.values.get("action", "list") + conn = get_conn() + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + try: + with conn.cursor() as cur: + if action == "list": + cur.execute("SELECT * FROM auto_reply_rules ORDER BY id DESC") + rows = cur.fetchall() + log_event("INFO", "api", "api.rules.list", new_trace_id("rules"), "query", "ok", "查询回复匹配配置", extra={"db_path": str(SQLITE_DB_PATH), "count": len(rows)}) + return jsonify({"success": True, "data": rows, "db_path": str(SQLITE_DB_PATH)}) + + if action == "create": + keyword = (request.values.get("keyword") or "").strip() + match_type = request.values.get("match_type", "contain") + reply_text = (request.values.get("reply_text") or "").strip() + is_active = int(request.values.get("is_active", 1)) + if not keyword or not reply_text: + return jsonify({"success": False, "message": "关键词和回复内容不能为空"}) + if match_type not in ["contain", "equal"]: + match_type = "contain" + cur.execute("INSERT INTO auto_reply_rules(keyword, match_type, reply_text, is_active, created_at, updated_at) VALUES (%s, %s, %s, %s, %s, %s)", (keyword, match_type, reply_text, is_active, now, now)) + conn.commit() + return jsonify({"success": True}) + + if action == "toggle": + rule_id = int(request.values.get("id", 0)) + is_active = int(request.values.get("is_active", 0)) + if rule_id <= 0: + return jsonify({"success": False, "message": "参数错误"}) + cur.execute("UPDATE auto_reply_rules SET is_active = %s, updated_at = %s WHERE id = %s", (is_active, now, rule_id)) + conn.commit() + return jsonify({"success": True}) + + if action == "delete": + rule_id = int(request.values.get("id", 0)) + if rule_id <= 0: + return jsonify({"success": False, "message": "参数错误"}) + cur.execute("DELETE FROM auto_reply_rules WHERE id = %s", (rule_id,)) + conn.commit() + return jsonify({"success": True}) + + if action == "settings_get": + auto_on = _get_local_setting("auto_reply_enabled", "1") == "1" + full_auto_on = _get_local_setting("full_auto_reply_enabled", "0") == "1" + reply_fallback_mode = (_get_local_setting("reply_fallback_mode", "ai") or "ai").strip() or "ai" + bot_status = bot_controller.status() + runtime_status = (bot_status.get("status") or "stopped").strip().lower() + if runtime_status not in ["running", "starting", "stopping", "stopped", "error"]: + runtime_status = "stopped" + listener_on = runtime_status in ["running", "starting"] + return jsonify({ + "success": True, + "auto_reply_enabled": auto_on, + "listener_enabled": listener_on, + "listener_runtime_status": runtime_status, + "listener_intent_enabled": _get_local_setting("listener_enabled", "0") == "1", + "full_auto_reply_enabled": full_auto_on, + "reply_fallback_mode": reply_fallback_mode, + }) + + if action == "settings_set": + if "auto_reply_enabled" in request.values: + auto_on = "1" if request.values.get("auto_reply_enabled", "1") == "1" else "0" + _set_local_setting("auto_reply_enabled", auto_on) + if "listener_enabled" in request.values: + listener_on = "1" if request.values.get("listener_enabled", "0") == "1" else "0" + _set_local_setting("listener_enabled", listener_on) + if "listener_runtime_status" in request.values: + runtime_status = (request.values.get("listener_runtime_status") or "stopped").strip().lower() + if runtime_status not in ["running", "starting", "stopping", "stopped", "error"]: + runtime_status = "stopped" + _set_local_setting("listener_runtime_status", runtime_status) + if "full_auto_reply_enabled" in request.values: + full_auto_on = "1" if request.values.get("full_auto_reply_enabled", "0") == "1" else "0" + _set_local_setting("full_auto_reply_enabled", full_auto_on) + if "reply_fallback_mode" in request.values: + reply_fallback_mode = (request.values.get("reply_fallback_mode") or "ai").strip() or "ai" + _set_local_setting("reply_fallback_mode", reply_fallback_mode) + return jsonify({"success": True}) + + if action == "messages_recent": + limit = int(request.values.get("limit", 50)) + limit = max(1, min(100, limit)) + cur.execute("SELECT * FROM messages ORDER BY id DESC LIMIT %s", (limit,)) + rows = cur.fetchall() + return jsonify({"success": True, "data": rows}) + + return jsonify({"success": False, "message": "未知操作"}) + finally: + conn.close() diff --git a/app/infrastructure/router/backend_routes.py b/app/infrastructure/router/backend_routes.py new file mode 100644 index 0000000..41a5e60 --- /dev/null +++ b/app/infrastructure/router/backend_routes.py @@ -0,0 +1,9 @@ +from app.infrastructure.router.backend.rules import register_rule_routes +from app.infrastructure.router.backend.messages import register_message_routes +from app.infrastructure.router.backend.bot import register_bot_routes + + +def register_routes(app): + register_rule_routes(app) + register_message_routes(app) + register_bot_routes(app) diff --git a/app/infrastructure/service/__init__.py b/app/infrastructure/service/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/service/backend/__init__.py b/app/infrastructure/service/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/service/backend/ai.py b/app/infrastructure/service/backend/ai.py new file mode 100644 index 0000000..9def762 --- /dev/null +++ b/app/infrastructure/service/backend/ai.py @@ -0,0 +1,81 @@ +import requests + +from app.infrastructure.service.backend.config import AI_PROVIDER, DEEPSEEK_API_BASE, DEEPSEEK_API_KEY, DEEPSEEK_MODEL, DIFY_API_BASE, DIFY_API_KEY, DIFY_USER, OPENAI_API_BASE, OPENAI_API_KEY, OPENAI_MODEL +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + + +def do_openai_like(url, headers, payload): + try: + resp = requests.post(url, headers=headers, json=payload, timeout=60) + data = resp.json() if resp.text else {} + if resp.status_code >= 400: + return f"抱歉,AI 服务请求失败({resp.status_code})" + content = (((data or {}).get("choices") or [{}])[0].get("message") or {}).get("content", "") + return content.strip() if content else "抱歉,AI 暂时没有合理的回复。" + except Exception: + return "抱歉,AI 服务暂时不可用,请稍后再试。" + + +def do_dify(url, headers, payload): + try: + resp = requests.post(url, headers=headers, json=payload, timeout=60) + text = resp.text or "" + if "data:" in text: + answer = "" + for line in text.splitlines(): + line = line.strip() + if not line.startswith("data:"): + continue + chunk = line[5:].strip() + if not chunk or chunk == "[DONE]": + continue + try: + j = requests.models.complexjson.loads(chunk) + except Exception: + continue + if "answer" in j: + answer += j["answer"] + if answer.strip(): + return answer.strip() + data = resp.json() if resp.text else {} + if resp.status_code >= 400: + return f"抱歉,Dify 服务请求失败({resp.status_code})" + return (data.get("answer") or "抱歉,Dify 暂时没有合理的回复。").strip() + except Exception: + return "抱歉,Dify 服务暂时不可用,请稍后再试。" + + +def call_ai(prompt, user_id=""): + trace_id = new_trace_id("ai") + provider = AI_PROVIDER + log_event("INFO", "ai", "ai.request", trace_id, "request", "ok", "发起AI请求", extra={"provider": provider, "user_id": user_id or "", "prompt_len": len(prompt or "")}) + if provider == "mock": + result = "【自动回复】你刚才说了:" + (prompt or "")[:100] + log_event("INFO", "ai", "ai.response", trace_id, "response", "ok", "AI回复完成", extra={"provider": provider, "reply_len": len(result)}) + return result + if provider == "openai": + result = do_openai_like( + OPENAI_API_BASE.rstrip("/") + "/chat/completions", + {"Content-Type": "application/json", "Authorization": f"Bearer {OPENAI_API_KEY}"}, + {"model": OPENAI_MODEL, "messages": [{"role": "system", "content": "你是一个专业的微信私域运营助手,用简洁自然的中文回复用户。"}, {"role": "user", "content": prompt}], "temperature": 0.7, "user": user_id or None}, + ) + elif provider == "deepseek": + result = do_openai_like( + DEEPSEEK_API_BASE.rstrip("/") + "/chat/completions", + {"Content-Type": "application/json", "Authorization": f"Bearer {DEEPSEEK_API_KEY}"}, + {"model": DEEPSEEK_MODEL, "messages": [{"role": "system", "content": "你是一个简洁高效的微信助手。回复要求:一句话,不超过50字。"}, {"role": "user", "content": prompt}], "temperature": 0.7, "max_tokens": 100, "user": user_id or None}, + ) + elif provider == "dify": + result = do_dify( + DIFY_API_BASE.rstrip("/") + "/chat-messages", + {"Content-Type": "application/json", "Authorization": f"Bearer {DIFY_API_KEY}"}, + {"inputs": {}, "query": prompt, "response_mode": "streaming", "user": user_id or DIFY_USER, "conversation_id": ""}, + ) + else: + result = "AI_PROVIDER 未配置正确,请检查环境变量。" + + if result.startswith("抱歉") or "未配置正确" in result: + log_event("WARNING", "ai", "ai.response", trace_id, "response", "failed", "AI回复异常或降级", reason="provider_error", extra={"provider": provider, "reply": result[:120]}) + else: + log_event("INFO", "ai", "ai.response", trace_id, "response", "ok", "AI回复完成", extra={"provider": provider, "reply_len": len(result)}) + return result diff --git a/app/infrastructure/service/backend/config.py b/app/infrastructure/service/backend/config.py new file mode 100644 index 0000000..010709c --- /dev/null +++ b/app/infrastructure/service/backend/config.py @@ -0,0 +1,45 @@ +import os +from pathlib import Path + +from flask import Flask, request + +from app.configs.runtime_config import get_int, get_str + +PROJECT_ROOT = Path(__file__).resolve().parents[4] + +ASSETS_DIR = PROJECT_ROOT / "assets" +FRONTEND_DIST_DIR = PROJECT_ROOT / "frontend" / "dist" +_frontend_static_dir = get_str("FRONTEND_STATIC_DIR", "").strip() +FRONTEND_STATIC_DIR = Path(_frontend_static_dir).resolve() if _frontend_static_dir else None +STATIC_DIR = FRONTEND_STATIC_DIR or (FRONTEND_DIST_DIR if FRONTEND_DIST_DIR.exists() else ASSETS_DIR) + +DB_HOST = get_str("DB_HOST", "127.0.0.1") +DB_PORT = get_int("DB_PORT", 3306) +DB_NAME = get_str("DB_NAME", "ai_shiliu") +DB_USER = get_str("DB_USER", "ai_shiliu") +DB_PASS = get_str("DB_PASS", "") +DB_CHARSET = get_str("DB_CHARSET", "utf8mb4") + +AI_PROVIDER = get_str("AI_PROVIDER", "") +OPENAI_API_KEY = get_str("OPENAI_API_KEY", "") +OPENAI_API_BASE = get_str("OPENAI_API_BASE", "") +OPENAI_MODEL = get_str("OPENAI_MODEL", "") +DEEPSEEK_API_KEY = get_str("DEEPSEEK_API_KEY", "") +DEEPSEEK_API_BASE = get_str("DEEPSEEK_API_BASE", "") +DEEPSEEK_MODEL = get_str("DEEPSEEK_MODEL", "") +DIFY_API_KEY = get_str("DIFY_API_KEY", "") +DIFY_API_BASE = get_str("DIFY_API_BASE", "") +DIFY_USER = get_str("DIFY_USER", "") + +app = Flask(__name__, static_folder=str(STATIC_DIR), static_url_path="") + + +@app.after_request +def add_cors_headers(response): + origin = (request.headers.get("Origin") or "").strip() + allow_origin = origin or "*" + response.headers["Access-Control-Allow-Origin"] = allow_origin + response.headers["Vary"] = "Origin" + response.headers["Access-Control-Allow-Headers"] = "Content-Type, Authorization" + response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS" + return response diff --git a/app/infrastructure/service/backend/db.py b/app/infrastructure/service/backend/db.py new file mode 100644 index 0000000..7347655 --- /dev/null +++ b/app/infrastructure/service/backend/db.py @@ -0,0 +1,218 @@ +import json +import os +import re +import sqlite3 +from pathlib import Path + +from app.infrastructure.service.backend.config import PROJECT_ROOT +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + +_SETTING_CACHE = {} +SETTINGS_FILE = PROJECT_ROOT / "logs" / "state" / "local_settings.json" +LOCAL_APPDATA_DIR = Path(os.environ.get("LOCALAPPDATA", str(Path.home() / "AppData" / "Local"))) +SQLITE_DB_PATH = LOCAL_APPDATA_DIR / "com.shiliu.aiassistant" / "ai_shiliu.sqlite3" + + +class _SQLiteCursor: + def __init__(self, cursor): + self._cursor = cursor + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc, tb): + self._cursor.close() + + @staticmethod + def _adapt_sql(sql: str) -> str: + return sql.replace("%s", "?") + + def execute(self, sql, params=None): + sql = self._adapt_sql(sql) + if params is None: + self._cursor.execute(sql) + else: + self._cursor.execute(sql, params) + return self + + def fetchone(self): + row = self._cursor.fetchone() + return dict(row) if row is not None else None + + def fetchall(self): + return [dict(row) for row in self._cursor.fetchall()] + + @property + def lastrowid(self): + return self._cursor.lastrowid + + +class _SQLiteConn: + def __init__(self, conn): + self._conn = conn + + def cursor(self): + return _SQLiteCursor(self._conn.cursor()) + + def commit(self): + self._conn.commit() + + def rollback(self): + self._conn.rollback() + + def close(self): + self._conn.close() + + +def _bootstrap_sqlite_file(): + SQLITE_DB_PATH.parent.mkdir(parents=True, exist_ok=True) + + +def get_conn(db_name=None): + _bootstrap_sqlite_file() + conn = sqlite3.connect(str(SQLITE_DB_PATH)) + conn.row_factory = sqlite3.Row + conn.execute("PRAGMA foreign_keys = ON") + return _SQLiteConn(conn) + + +def init_db(): + trace_id = new_trace_id("db") + log_event("INFO", "db", "db.init", trace_id, "start", "ok", "初始化数据库开始", extra={"path": str(SQLITE_DB_PATH)}) + conn = get_conn() + try: + with conn.cursor() as cur: + cur.execute( + """ + CREATE TABLE IF NOT EXISTS messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + wx_user_id TEXT NOT NULL DEFAULT '', + wx_nickname TEXT NOT NULL DEFAULT '', + direction TEXT NOT NULL DEFAULT 'in', + content TEXT NOT NULL, + is_ai_reply INTEGER NOT NULL DEFAULT 0, + rule_id INTEGER NULL, + is_friend_request INTEGER NOT NULL DEFAULT 0, + reply_strategy TEXT NOT NULL DEFAULT '', + reply_reason TEXT NOT NULL DEFAULT '', + ocr_confidence TEXT NOT NULL DEFAULT '', + ocr_bubble_side TEXT NOT NULL DEFAULT '', + created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')) + ) + """ + ) + cur.execute("CREATE INDEX IF NOT EXISTS idx_messages_user_time ON messages(wx_user_id, created_at)") + cur.execute( + """ + CREATE TABLE IF NOT EXISTS auto_reply_rules ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + keyword TEXT NOT NULL, + match_type TEXT NOT NULL DEFAULT 'contain', + reply_text TEXT NOT NULL, + is_active INTEGER NOT NULL DEFAULT 1, + created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')), + updated_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')) + ) + """ + ) + + cur.execute("PRAGMA table_info(messages)") + cols = {str(x.get('name') or '') for x in (cur.fetchall() or [])} + if "reply_strategy" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN reply_strategy TEXT NOT NULL DEFAULT ''") + if "reply_reason" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN reply_reason TEXT NOT NULL DEFAULT ''") + if "ocr_confidence" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN ocr_confidence TEXT NOT NULL DEFAULT ''") + if "ocr_bubble_side" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN ocr_bubble_side TEXT NOT NULL DEFAULT ''") + + conn.commit() + log_event("INFO", "db", "db.init", trace_id, "done", "ok", "初始化数据库完成") + except Exception as exc: + conn.rollback() + log_event("ERROR", "db", "db.init", trace_id, "done", "failed", "初始化数据库失败", reason="db_error", extra={"error": str(exc)}) + raise + finally: + conn.close() + + +def _load_settings_file(): + if _SETTING_CACHE: + return + try: + if SETTINGS_FILE.exists(): + data = json.loads(SETTINGS_FILE.read_text(encoding="utf-8")) + if isinstance(data, dict): + for k, v in data.items(): + _SETTING_CACHE[str(k)] = str(v) + except Exception: + pass + + +def _save_settings_file(): + SETTINGS_FILE.parent.mkdir(parents=True, exist_ok=True) + SETTINGS_FILE.write_text(json.dumps(_SETTING_CACHE, ensure_ascii=False, indent=2), encoding="utf-8") + + +def get_setting(key, default=None): + _load_settings_file() + if key in _SETTING_CACHE: + return _SETTING_CACHE[key] + if default is None: + return None + val = str(default) + _SETTING_CACHE[key] = val + _save_settings_file() + return val + + +def set_setting(key, value): + _load_settings_file() + _SETTING_CACHE[str(key)] = str(value) + _save_settings_file() + + +def normalize_text(text): + t = (text or "").strip().lower() + t = re.sub(r"\s+", "", t) + t = t.replace(":", ":") + return t + + +def find_rule_reply(content): + trace_id = new_trace_id("db") + conn = get_conn() + try: + with conn.cursor() as cur: + cur.execute("SELECT * FROM auto_reply_rules WHERE is_active = 1 ORDER BY id ASC") + rules = cur.fetchall() + except Exception as exc: + log_event("ERROR", "db", "db.rule.query", trace_id, "query", "failed", "查询规则失败", reason="db_error", extra={"error": str(exc)}) + raise + finally: + conn.close() + + raw_content = (content or "").strip() + content_lower = raw_content.lower() + content_norm = normalize_text(raw_content) + + for rule in rules: + kw = (rule.get("keyword") or "").strip() + if not kw: + continue + + kw_lower = kw.lower() + kw_norm = normalize_text(kw) + match_type = rule.get("match_type") + + if match_type == "equal": + if content_lower == kw_lower or content_norm == kw_norm: + log_event("INFO", "db", "db.rule.match", trace_id, "match", "ok", "命中规则", reason="rule_hit", extra={"rule_id": rule.get("id"), "match_type": match_type}) + return rule + else: + if kw_lower in content_lower or kw_norm in content_norm: + log_event("INFO", "db", "db.rule.match", trace_id, "match", "ok", "命中规则", reason="rule_hit", extra={"rule_id": rule.get("id"), "match_type": match_type or "contain"}) + return rule + log_event("INFO", "db", "db.rule.match", trace_id, "match", "ok", "未命中规则", reason="rule_miss", extra={"rule_count": len(rules)}) + return None diff --git a/app/infrastructure/service/logging/log_query_service.py b/app/infrastructure/service/logging/log_query_service.py new file mode 100644 index 0000000..3fac476 --- /dev/null +++ b/app/infrastructure/service/logging/log_query_service.py @@ -0,0 +1,141 @@ +import hashlib +import json +from datetime import datetime +from pathlib import Path + +from app.infrastructure.service.wechat.config import LOG_ROOT_DIR + + +ALLOWED_MODULES = {"api", "bot", "ocr", "ai", "db", "capture", "audit", "error"} +DOMAIN_MODULES = {"api", "bot", "ocr", "ai", "db", "capture"} + + +def _infer_domain(row: dict) -> str: + module = str(row.get("module") or "").strip().lower() + if module in DOMAIN_MODULES: + return module + if module == "error": + event = str(row.get("event") or "") + prefix = event.split(".", 1)[0].strip().lower() + if prefix in DOMAIN_MODULES: + return prefix + return "api" + + +def _event_id(row: dict) -> str: + raw = json.dumps(row or {}, ensure_ascii=False, sort_keys=True) + return hashlib.md5(raw.encode("utf-8")).hexdigest() + + +def _enrich_row(row: dict) -> dict: + x = dict(row or {}) + x["domain"] = _infer_domain(x) + x["event_id"] = _event_id(x) + return x + + +def _read_jsonl(module: str): + p = Path(LOG_ROOT_DIR) / f"{module}.jsonl" + if not p.exists(): + return [] + rows = [] + with p.open("r", encoding="utf-8", errors="replace") as f: + for line in f: + line = line.strip() + if not line: + continue + try: + rows.append(json.loads(line)) + except Exception: + continue + return rows + + +def query_events(module=None, level=None, event=None, trace_id=None, start_ts=None, end_ts=None, keyword=None, page=1, size=50): + modules = [module] if module in ALLOWED_MODULES else sorted(ALLOWED_MODULES) + all_rows = [] + for m in modules: + all_rows.extend(_read_jsonl(m)) + def ok(row): + if level and str(row.get("level", "")).upper() != str(level).upper(): + return False + if event and str(row.get("event", "")) != str(event): + return False + if trace_id and str(row.get("trace_id", "")) != str(trace_id): + return False + if keyword and keyword not in json.dumps(row, ensure_ascii=False): + return False + ts = str(row.get("ts") or "") + if start_ts and ts < start_ts: + return False + if end_ts and ts > end_ts: + return False + return True + rows = [_enrich_row(r) for r in all_rows if ok(r)] + rows.sort(key=lambda x: str(x.get("ts") or ""), reverse=True) + page = max(1, int(page or 1)) + size = max(1, min(200, int(size or 50))) + start = (page - 1) * size + end = start + size + return {"total": len(rows), "page": page, "size": size, "items": rows[start:end]} + + +def query_trace(trace_id: str): + if not trace_id: + return [] + result = query_events(trace_id=trace_id, size=500) + items = result.get("items") or [] + items.sort(key=lambda x: str(x.get("ts") or "")) + return items + + +def query_event_json(event_id: str): + event_id = str(event_id or "").strip().lower() + if not event_id: + return None + for m in sorted(ALLOWED_MODULES): + rows = _read_jsonl(m) + for row in rows: + x = _enrich_row(row) + if str(x.get("event_id") or "") == event_id: + return x + return None + + +def clear_logs(module=None): + modules = [module] if module in ALLOWED_MODULES else sorted(ALLOWED_MODULES) + root = Path(LOG_ROOT_DIR) + deleted = [] + for m in modules: + for p in root.glob(f"{m}.log*"): + p.write_text("", encoding="utf-8") + deleted.append(str(p.name)) + for p in root.glob(f"{m}.jsonl*"): + p.write_text("", encoding="utf-8") + deleted.append(str(p.name)) + return {"modules": modules, "files": deleted} + + +def query_summary(limit=300): + events = query_events(size=limit).get("items") or [] + error_count = sum(1 for e in events if str(e.get("level", "")).upper() in {"ERROR"}) + fallback_count = sum(1 for e in events if str(e.get("event", "")).endswith("fallback")) + reasons = {} + domain_counts = {"api": 0, "bot": 0, "ocr": 0, "ai": 0, "db": 0, "capture": 0} + for e in events: + reason = str(e.get("reason") or "").strip() + if reason: + reasons[reason] = reasons.get(reason, 0) + 1 + domain = str(e.get("domain") or _infer_domain(e)) + if domain in domain_counts: + domain_counts[domain] += 1 + reason_top = sorted(reasons.items(), key=lambda x: x[1], reverse=True)[:20] + domain_top = sorted(domain_counts.items(), key=lambda x: x[1], reverse=True) + return { + "window": len(events), + "error_count": error_count, + "fallback_count": fallback_count, + "top_reasons": [{"reason": k, "count": v} for k, v in reason_top], + "domain_counts": [{"domain": k, "count": v} for k, v in domain_top], + "generated_at": datetime.now().astimezone().isoformat(timespec="seconds"), + } diff --git a/app/infrastructure/service/logging/log_schema.py b/app/infrastructure/service/logging/log_schema.py new file mode 100644 index 0000000..a148ab6 --- /dev/null +++ b/app/infrastructure/service/logging/log_schema.py @@ -0,0 +1,86 @@ +from dataclasses import dataclass, field +from datetime import datetime +from typing import Any + + +MODULES = {"api", "bot", "ocr", "ai", "db", "capture", "audit", "error"} +DOMAIN_MODULES = {"api", "bot", "ocr", "ai", "db", "capture"} + +ALLOWED_EVENTS = { + "api.bot.status", + "api.bot.start", + "api.bot.stop", + "api.messages.receive", + "audit.decision", + "bot.chat_analyze", + "bot.chat_snapshot", + "bot.loop", + "bot.session_scan", + "bot.session_service.init", + "bot.session_title", + "bot.submit", + "bot.unread.detect", + "bot.unread.scan", + "ocr.baidu.token", + "ocr.baidu.recognize", + "ocr.rapid.init", + "ocr.rapid.recognize", + "ocr.fallback", + "ocr.session_name", + "ocr.session_title", + "ocr.generic", + "capture.contact_list", + "capture.session_title", + "capture.chat_area", + "ai.request", + "ai.response", + "db.init", + "db.error", + "db.rule.query", + "db.rule.match", +} + + +def normalize_event(module: str, event: str) -> str: + e = str(event or "").strip().lower() + m = str(module or "").strip().lower() + if e in ALLOWED_EVENTS: + return e + if "." in e: + prefix = e.split(".", 1)[0] + if prefix in DOMAIN_MODULES: + return e + if m in DOMAIN_MODULES: + return f"{m}.unknown" + return "api.unknown" + + +@dataclass +class LogEvent: + level: str + module: str + event: str + trace_id: str + stage: str + status: str + message: str + reason: str = "" + extra: dict[str, Any] = field(default_factory=dict) + ts: str = "" + + def to_dict(self) -> dict[str, Any]: + ts = self.ts or datetime.now().astimezone().isoformat(timespec="milliseconds") + module = self.module if self.module in MODULES else "api" + event = normalize_event(module, self.event) + return { + "ts": ts, + "level": (self.level or "INFO").upper(), + "module": module, + "event": event, + "trace_id": self.trace_id or "-", + "stage": self.stage or "-", + "status": self.status or "ok", + "reason": self.reason or "", + "message": self.message or "", + "extra": self.extra or {}, + } diff --git a/app/infrastructure/service/logging/log_service.py b/app/infrastructure/service/logging/log_service.py new file mode 100644 index 0000000..4b7e513 --- /dev/null +++ b/app/infrastructure/service/logging/log_service.py @@ -0,0 +1,102 @@ +import json +import logging +import os +from logging.handlers import RotatingFileHandler +from pathlib import Path + +from app.configs.runtime_config import get_bool, get_int, get_str +from app.infrastructure.service.logging.log_schema import ALLOWED_EVENTS, LogEvent, MODULES, normalize_event +from app.infrastructure.service.wechat.config import LOG_ROOT_DIR + +_INITIALIZED = False +_LOGGERS: dict[str, logging.Logger] = {} +_JSON_LOGGERS: dict[str, logging.Logger] = {} + + +class _JsonFormatter(logging.Formatter): + def format(self, record): + if isinstance(record.msg, dict): + return json.dumps(record.msg, ensure_ascii=False) + return json.dumps({"message": str(record.msg)}, ensure_ascii=False) + + +class _TextFormatter(logging.Formatter): + def format(self, record): + if isinstance(record.msg, dict): + data = record.msg + extra = data.get("extra") or {} + kv = " ".join([f"{k}={v}" for k, v in extra.items()]) + suffix = f" | {kv}" if kv else "" + return f"[{data.get('ts')}][{data.get('level')}][{data.get('module')}][{data.get('event')}][{data.get('trace_id')}] {data.get('message')}{suffix}" + return str(record.msg) + + +def _build_logger(name: str, file_path: Path, formatter: logging.Formatter, level: int, rotate_mb: int, backup_count: int): + logger = logging.getLogger(name) + logger.handlers.clear() + logger.propagate = False + logger.setLevel(level) + file_path.parent.mkdir(parents=True, exist_ok=True) + handler = RotatingFileHandler(str(file_path), maxBytes=rotate_mb * 1024 * 1024, backupCount=backup_count, encoding="utf-8") + handler.setLevel(level) + handler.setFormatter(formatter) + logger.addHandler(handler) + return logger + + +def init_logging(): + global _INITIALIZED + if _INITIALIZED: + return + enabled = get_bool("LOG_ENABLED", True) + if not enabled: + logging.disable(logging.CRITICAL) + _INITIALIZED = True + return + level_name = (get_str("LOG_LEVEL", "INFO") or "INFO").upper() + level = getattr(logging, level_name, logging.INFO) + rotate_mb = max(1, get_int("LOG_ROTATE_MB", 5)) + backup_count = max(1, get_int("LOG_BACKUP_COUNT", 7)) + root = Path(LOG_ROOT_DIR) + for module in MODULES: + text_logger = _build_logger(f"solo.{module}.text", root / f"{module}.log", _TextFormatter(), level, rotate_mb, backup_count) + json_logger = _build_logger(f"solo.{module}.json", root / f"{module}.jsonl", _JsonFormatter(), level, rotate_mb, backup_count) + _LOGGERS[module] = text_logger + _JSON_LOGGERS[module] = json_logger + _INITIALIZED = True + + +def log_event(level: str, module: str, event: str, trace_id: str, stage: str, status: str, message: str, reason: str = "", extra: dict | None = None): + if not _INITIALIZED: + init_logging() + if logging.root.manager.disable >= logging.CRITICAL: + return + normalized_event = normalize_event(module, event) + payload_extra = dict(extra or {}) + if normalized_event != str(event or "").strip().lower() and normalized_event not in ALLOWED_EVENTS: + payload_extra["event_raw"] = event + payload_extra["event_normalized"] = normalized_event + payload = LogEvent( + level=level, + module=module, + event=normalized_event, + trace_id=trace_id, + stage=stage, + status=status, + reason=reason, + message=message, + extra=payload_extra, + ).to_dict() + module_name = payload["module"] + lvl = getattr(logging, payload["level"], logging.INFO) + _LOGGERS[module_name].log(lvl, payload) + _JSON_LOGGERS[module_name].log(lvl, payload) + if lvl >= logging.ERROR and module_name != "error": + _LOGGERS["error"].log(lvl, payload) + _JSON_LOGGERS["error"].log(lvl, payload) + + +def new_trace_id(prefix: str = "trace") -> str: + import uuid + + return f"{prefix}_{uuid.uuid4().hex[:12]}" diff --git a/app/infrastructure/service/wechat/__init__.py b/app/infrastructure/service/wechat/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/service/wechat/chat_snapshot_analyzer.py b/app/infrastructure/service/wechat/chat_snapshot_analyzer.py new file mode 100644 index 0000000..260dd12 --- /dev/null +++ b/app/infrastructure/service/wechat/chat_snapshot_analyzer.py @@ -0,0 +1,1129 @@ +from dataclasses import dataclass, asdict +from io import BytesIO +from pathlib import Path +import json +import re +import sys + +import cv2 +import numpy as np +from PIL import Image + +# 项目根目录路径 +ROOT = Path(__file__).resolve().parents[4] +sys.path.insert(0, str(ROOT)) + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import ( + OCR_SAVE_DIR, + OCR_TOP_PENALTY_RATIO, + OCR_TOP_PENALTY_BIN_FACTOR, + OCR_TOP_PENALTY_COLOR_FACTOR, +) +from app.infrastructure.service.wechat.ocr import OCRService + +# 点击后的聊天截图目录 +CLICKED_DIR = ROOT / OCR_SAVE_DIR / 'sessions' / 'clicked' +# OCR输出目录,包含子目录original、merged_binary、ocr_crops +OUT_DIR = ROOT / OCR_SAVE_DIR / 'sessions' / 'clicked_ocr' +# 原始截图保存目录 +ORIGINAL_DIR = OUT_DIR / 'original' +# 合并二值化图片保存目录 +MERGED_DIR = OUT_DIR / 'merged_binary' +# OCR裁剪区域保存目录 +OCR_DIR = OUT_DIR / 'ocr_crops' +# 创建所有输出目录 +for _dir in (OUT_DIR, ORIGINAL_DIR, MERGED_DIR, OCR_DIR): + _dir.mkdir(parents=True, exist_ok=True) + + +# 获取图片输出目录,根据类别返回不同子目录路径 +def get_image_out_dir(stem: str, category: str = 'ocr') -> Path: + safe = stem or 'unknown' + base = OCR_DIR + if category == 'original': + base = ORIGINAL_DIR + elif category == 'merged': + base = MERGED_DIR + out = base / safe + out.mkdir(parents=True, exist_ok=True) + return out + +# 日志记录器 +# OCR服务单例 +ocr = OCRService() + +# 二值化和自适应阈值参数 +BINARY_THRESHOLD = 248 # 固定二值化阈值 +ADAPTIVE_BLOCK_SIZE = 13 # 自适应阈值块大小 +ADAPTIVE_C = 1 # 自适应阈值偏移量 +LEFT_MERGE_KERNEL = (5, 1) # 左侧气泡的形态学操作核 +DEFAULT_MERGE_KERNEL = (3, 1) # 默认形态学操作核 +OPEN_KERNEL = (2, 2) # 开运算核大小 + +# 气泡颜色和位置启发式参数 +PEER_BUBBLE_RGB = (238, 238, 240) # 对方消息气泡颜色(#EEEEF0) +LEFT_BUBBLE_CX_RATIO = 0.58 # 左侧气泡中心x坐标比例阈值 +RIGHT_BUBBLE_MIN_LEFT_RATIO = 0.48 # 右侧气泡最小左侧比例 +LEFT_SIDE_MAX_RIGHT_RATIO = 0.78 # 左侧气泡最大右侧比例 +LEFT_COLOR_THRESHOLD = 64 # 左侧气泡颜色差异阈值 +RIGHT_COLOR_THRESHOLD = 108 # 右侧气泡颜色差异阈值 +BRIGHTNESS_CUTOFF = 248 # 亮度截止值 +BG_WHITE_THRESHOLD = 245 # 背景白色阈值 +BRIGHT_MASK_THRESHOLD = 242 # 高亮遮罩阈值 + +# 连通组件分析的面积和尺寸阈值 +MIN_AREA_BINARY = 700 # 二值图像最小连通区域面积 +MIN_WIDTH_BINARY = 42 # 二值图像最小宽度 +MIN_HEIGHT_BINARY = 24 # 二值图像最小高度 +MIN_AREA_COLOR = 560 # 彩色图像最小连通区域面积 +MIN_WIDTH_COLOR = 38 # 彩色图像最小宽度 +MIN_HEIGHT_COLOR = 22 # 彩色图像最小高度 + +# 全二值化备选框评分参数 +FULL_BIN_SCORE_BOTTOM = 5.0 # 底部位置得分系数 +FULL_BIN_SCORE_AREA = 0.08 # 面积得分系数 +FULL_BIN_SCORE_WIDTH = 0.15 # 宽度得分系数 +FULL_BIN_PENALTY_TALL = 8.0 # 过高惩罚系数 +FULL_BIN_PENALTY_WIDE = 3.0 # 过宽惩罚系数 + +# 最新消息候选框过滤规则(用于pick_last_white_box_from_merged_binary) +AVATAR_RATIO_MIN = 0.75 +AVATAR_RATIO_MAX = 1.35 +AVATAR_MIN_SIZE = 28 +AVATAR_MAX_SIZE = 72 +AVATAR_EDGE_LEFT_RATIO = 0.2 +AVATAR_EDGE_RIGHT_RATIO = 0.8 +TIME_MARKER_MIN_H = 10 +TIME_MARKER_MAX_H = 22 +TIME_MARKER_MIN_W = 28 +TIME_MARKER_MAX_W = 110 +TIME_MARKER_RATIO_MIN = 1.8 +TIME_MARKER_RATIO_MAX = 8.0 +TIME_MARKER_CENTER_TOLERANCE = 0.16 + +# 二值气泡框评分参数 +BIN_SCORE_BOTTOM = 5.0 # 底部位置得分系数 +BIN_SCORE_AREA = 0.12 # 面积得分系数 +BIN_SCORE_OVERLAP = 220.0 # 重叠度得分系数 +BIN_PENALTY_TOP_GAP_LEFT = 10.0 # 左侧气泡顶部间隙惩罚 +BIN_PENALTY_TOP_GAP_RIGHT = 4.0 # 右侧气泡顶部间隙惩罚 +BIN_PENALTY_BOTTOM_GAP = 1.8 # 底部间隙惩罚 +BIN_PENALTY_TOO_TALL = 9.0 # 过高惩罚 +BIN_PENALTY_TOO_WIDE = 2.0 # 过宽惩罚 + +# 彩色气泡框评分参数 +COLOR_SCORE_AREA = 0.35 # 面积得分系数 +COLOR_SCORE_BOTTOM = 3.0 # 底部位置得分系数 +COLOR_SCORE_OVERLAP = 180.0 # 重叠度得分系数 +COLOR_PENALTY_TOP_GAP_LEFT = 7.5 # 左侧气泡顶部间隙惩罚 +COLOR_PENALTY_BOTTOM_GAP = 1.6 # 底部间隙惩罚 +COLOR_PENALTY_TOO_TALL = 7.0 # 过高惩罚 +COLOR_PENALTY_TOO_WIDE = 1.6 # 过宽惩罚 +COLOR_SCORE_TOP_GAP_RIGHT = 1.0 # 右侧气泡顶部间隙得分 +COLOR_SCORE_HEIGHT_RIGHT = 2.0 # 右侧气泡高度得分 + +# 最新消息簇评分参数 +CLUSTER_SCORE_BOTTOM = 2.2 # 簇底部位置得分系数 +CLUSTER_SCORE_HEIGHT = 0.9 # 簇高度得分系数 +CLUSTER_SCORE_WIDTH = 0.12 # 簇宽度得分系数 +CLUSTER_SCORE_TEXT_LEN = 1.5 # 文本长度得分系数 +CLUSTER_SCORE_MULTI_LINE_BONUS = 35.0 # 多行消息额外加分 + +# 非正文文本过滤:精确匹配的内容 +NON_BODY_EXACT_TEXTS = { + '小程序', + ':S', +} +# 非正文文本过滤:包含这些关键词的内容 +NON_BODY_CONTAINS_TEXTS = ( + '有事请@其他福利官', + '我是机器人', + '群主小助手', +) + + +# 聊天快照分析结果数据类 +@dataclass +class AnalyzeResult: + file: str + size: tuple[int, int] | None + crop_box: dict | None + latest_text: str | None + is_self_sent: bool | None + bubble_side: str | None + confidence: float + valid_lines: list[str] + error: str | None + + +# 将PIL图片转换为PNG格式的字节数据 +def pil_to_bytes(img: Image.Image) -> bytes: + buf = BytesIO() + img.save(buf, format='PNG') + return buf.getvalue() + + +# 对图片进行OCR识别,返回识别到的文本行列表 +def ocr_lines(img: Image.Image, scene: str) -> list[str]: + return [x.strip() for x in ocr.recognize(pil_to_bytes(img), scene=scene) if x and str(x).strip()] + + +def ocr_items_direct(img: Image.Image) -> list[dict]: + provider = getattr(ocr, 'rapid_provider', None) + if provider is None or not provider.ensure_ready() or provider.engine is None: + return [] + arr = cv2.cvtColor(np.array(img.convert('RGB')), cv2.COLOR_RGB2BGR) + result = provider.engine(arr) + if not result or len(result) < 1: + return [] + rec_res = result[0] or [] + items = [] + for item in rec_res: + if not item or len(item) < 2: + continue + box = np.array(item[0], dtype=np.float32) + text = str(item[1]).strip() + confidence = float(item[2]) if len(item) > 2 else 0.0 + if not text: + continue + items.append({ + 'text': text, + 'confidence': confidence, + 'left': float(box[:, 0].min()), + 'top': float(box[:, 1].min()), + 'right': float(box[:, 0].max()), + 'bottom': float(box[:, 1].max()), + }) + return items + + +# 构建合并的二值化图像,结合固定阈值和自适应阈值进行文字区域提取 +def build_merged_binary_image(img: Image.Image, *, is_left_bubble: bool | None = None) -> Image.Image: + arr = np.array(img.convert('RGB')) + gray = cv2.cvtColor(arr, cv2.COLOR_RGB2GRAY) + blurred = cv2.GaussianBlur(gray, (5, 5), 0) + _, binary_inv = cv2.threshold(blurred, BINARY_THRESHOLD, 255, cv2.THRESH_BINARY_INV) + adaptive_inv = cv2.adaptiveThreshold( + blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, + cv2.THRESH_BINARY_INV, ADAPTIVE_BLOCK_SIZE, ADAPTIVE_C + ) + merged = cv2.bitwise_or(binary_inv, adaptive_inv) + # 接近极限收缩:几乎只保留细小横向连接,尽量打断大白块 + if is_left_bubble is True: + merge_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, LEFT_MERGE_KERNEL) + merged = cv2.morphologyEx(merged, cv2.MORPH_CLOSE, merge_kernel, iterations=1) + merged = cv2.morphologyEx(merged, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_RECT, OPEN_KERNEL)) + else: + merge_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, DEFAULT_MERGE_KERNEL) + merged = cv2.morphologyEx(merged, cv2.MORPH_CLOSE, merge_kernel, iterations=1) + merged = cv2.morphologyEx(merged, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_RECT, OPEN_KERNEL)) + return Image.fromarray(merged) + + +# 从全二值化图像中选择最佳文字区域框 +def pick_box_from_full_binary(img: Image.Image) -> dict | None: + merged = np.array(build_merged_binary_image(img)) + num_labels, _, stats, _ = cv2.connectedComponentsWithStats(merged, 8) + h, w = merged.shape[:2] + best = None + for label in range(1, num_labels): + x, y, bw, bh, area = stats[label] + if area < 300: + continue + if bw < 50 or bh < 24: + continue + right = x + bw + bottom = y + bh + score = 0.0 + score += bottom * FULL_BIN_SCORE_BOTTOM + score += min(area, 20000) * FULL_BIN_SCORE_AREA + score += min(bw, int(w * 0.7)) * FULL_BIN_SCORE_WIDTH + if bh > h * 0.45: + score -= (bh - h * 0.45) * FULL_BIN_PENALTY_TALL + if bw > w * 0.65: + score -= (bw - w * 0.65) * FULL_BIN_PENALTY_WIDE + if best is None or score > best[0]: + best = (score, x, y, right, bottom) + if best is None: + return None + _, left, top, right, bottom = best + return { + 'left': int(left), + 'top': int(top), + 'right': int(right), + 'bottom': int(bottom), + 'width': int(right - left), + 'height': int(bottom - top), + } + + +# 从合并的二值化图像中选择最下方(最新)的白色文字框 +def pick_last_white_box_from_merged_binary(merged_img: Image.Image) -> dict | None: + merged = np.array(merged_img.convert('L')) + img_h, img_w = merged.shape[:2] + num_labels, _, stats, _ = cv2.connectedComponentsWithStats(merged, 8) + boxes = [] + for label in range(1, num_labels): + x, y, w, h, area = stats[label] + if area <= 0 or w <= 0 or h <= 0: + continue + right = x + w + bottom = y + h + ratio = w / max(1.0, float(h)) + is_full_width_strip = x <= img_w * 0.02 and right >= img_w * 0.98 and w >= img_w * 0.9 + if is_full_width_strip: + continue + if w < 32 or h < 12: + continue + + # 规则1:过滤边缘头像框(近似正方形 + 固定尺寸 + 处于左右边缘) + is_avatar_like = AVATAR_RATIO_MIN <= ratio <= AVATAR_RATIO_MAX and AVATAR_MIN_SIZE <= w <= AVATAR_MAX_SIZE and AVATAR_MIN_SIZE <= h <= AVATAR_MAX_SIZE + is_edge_avatar = x <= img_w * AVATAR_EDGE_LEFT_RATIO or right >= img_w * AVATAR_EDGE_RIGHT_RATIO + if is_avatar_like and is_edge_avatar: + continue + + # 规则2:过滤中间时间标记(短高、细长、位于屏幕中轴附近) + cx = (x + right) / 2.0 + is_time_marker_like = TIME_MARKER_MIN_H <= h <= TIME_MARKER_MAX_H and TIME_MARKER_MIN_W <= w <= TIME_MARKER_MAX_W and TIME_MARKER_RATIO_MIN <= ratio <= TIME_MARKER_RATIO_MAX and abs(cx - img_w / 2.0) <= img_w * TIME_MARKER_CENTER_TOLERANCE + if is_time_marker_like: + continue + + is_left_box = cx <= img_w * LEFT_BUBBLE_CX_RATIO and x <= img_w * RIGHT_BUBBLE_MIN_LEFT_RATIO + if not is_left_box: + continue + + boxes.append((x, y, right, bottom, w, h, area)) + + if not boxes: + return None + + candidates = [] + for x, y, right, bottom, w, h, area in boxes: + score = 0.0 + score += bottom * 1.0 + score += right * 0.08 + score += min(area, 28000) * 0.0012 + if right < img_w * 0.35: + score -= 80.0 + if right > img_w * 0.82: + score -= (right - img_w * 0.82) * 1.4 + if w > img_w * 0.45 and right > img_w * 0.75: + score -= min(260.0, (w - img_w * 0.45) * 1.2 + (right - img_w * 0.75) * 1.0) + candidates.append((score, x, y, right, bottom)) + + candidates.sort(key=lambda item: item[0]) + _, left, top, right, bottom = candidates[-1] + return { + 'left': int(left), + 'top': int(top), + 'right': int(right), + 'bottom': int(bottom), + 'width': int(right - left), + 'height': int(bottom - top), + } + + +# 使用OCR引擎识别图片中的文字和位置信息 +def ocr_items_with_boxes(img: Image.Image, offset_x: int = 0, offset_y: int = 0) -> list[dict]: + provider = getattr(ocr, 'provider', None) + engine = getattr(provider, 'engine', None) + ready = getattr(provider, 'ready', False) + if not ready or engine is None: + return [] + try: + result = engine.ocr(np.array(img.convert('RGB'))) + except Exception: + return [] + items = [] + if not isinstance(result, list): + return items + for block in result: + if not isinstance(block, dict): + continue + texts = block.get('rec_texts') or [] + scores = block.get('rec_scores') or [] + boxes = block.get('rec_boxes') + if boxes is None: + boxes = [] + for idx, text in enumerate(texts): + text = str(text).strip() + if not text: + continue + score = float(scores[idx]) if idx < len(scores) and scores[idx] is not None else 0.0 + if score < 0.3 or idx >= len(boxes): + continue + box = np.array(boxes[idx]).astype(float) + if box.ndim == 1: + if box.size < 4: + continue + left, top, right, bottom = float(box[0]), float(box[1]), float(box[2]), float(box[3]) + cx = (left + right) / 2.0 + cy = (top + bottom) / 2.0 + else: + xs = box[:, 0] + ys = box[:, 1] + left, right = float(xs.min()), float(xs.max()) + top, bottom = float(ys.min()), float(ys.max()) + cx = float(xs.mean()) + cy = float(ys.mean()) + items.append({ + 'text': text, + 'score': score, + 'left': left + offset_x, + 'right': right + offset_x, + 'top': top + offset_y, + 'bottom': bottom + offset_y, + 'cx': cx + offset_x, + 'cy': cy + offset_y, + 'height': (bottom - top), + 'width': (right - left), + }) + return items + + +# 判断OCR识别出的文本行是否应该保留 +def should_keep_line(text: str) -> bool: + text = (text or '').strip() + return bool(text) + + +# 清理候选文本行,去除非正文前缀和无效符号 +def cleanup_candidate_lines(lines: list[str]) -> list[str]: + cleaned = [] + for idx, raw in enumerate(lines): + text = str(raw).strip() + if not text: + continue + + cleaned.append(text) + + # 如果最后只剩一个很短的符号行,优先回退到其上一条正文 + if len(cleaned) >= 2 and len(cleaned[-1]) <= 3 and re.fullmatch(r'[::;;SsxX]+', cleaned[-1]): + cleaned = cleaned[:-1] + + # 若仍有明显非正文前缀挂在最上面,继续剥掉 + + return cleaned + + +# 去重文本行列表,移除重复内容 +def dedupe_lines(lines: list[str]) -> list[str]: + out = [] + seen = set() + for line in lines: + text = str(line).strip() + if not text or text in seen: + continue + seen.add(text) + out.append(text) + return out + + +# 根据几何位置去重OCR识别项,移除位置和文本都相同的重复项 +def dedupe_items_by_geometry(items: list[dict]) -> list[dict]: + if not items: + return [] + items = sorted(items, key=lambda x: (-x.get('score', 0.0), x['top'], x['left'])) + kept: list[dict] = [] + for item in items: + text = item['text'].strip() + duplicate = False + for old in kept: + if old['text'].strip() != text: + continue + if abs(old['cx'] - item['cx']) <= 18 and abs(old['cy'] - item['cy']) <= 12: + duplicate = True + break + if not duplicate: + kept.append(item) + return sorted(kept, key=lambda x: (x['cy'], x['left'])) + + +# 将OCR识别项按行分组为多个簇,每簇包含同一行的文本项 +def build_line_clusters(items: list[dict], y_gap: float = 18.0) -> list[list[dict]]: + items = dedupe_items_by_geometry([x for x in items if should_keep_line(x['text'])]) + if not items: + return [] + clusters: list[list[dict]] = [] + current = [items[0]] + for item in items[1:]: + prev = current[-1] + avg_h = max(10.0, (prev.get('height', 0) + item.get('height', 0)) / 2.0) + gap_limit = max(y_gap, avg_h * 1.15) + if abs(item['cy'] - prev['cy']) <= gap_limit: + current.append(item) + else: + clusters.append(current) + current = [item] + clusters.append(current) + return clusters + + +# 将同一行的OCR项合并为单行文本字符串 +def cluster_to_lines(cluster: list[dict]) -> list[str]: + rows = build_line_clusters(cluster, y_gap=10.0) + lines = [] + for row in rows: + row = dedupe_items_by_geometry(sorted(row, key=lambda x: x['left'])) + parts = [] + for item in row: + text = item['text'].strip() + if not text: + continue + if parts and parts[-1] == text: + continue + parts.append(text) + merged = ''.join(parts) + if merged: + lines.append(merged) + return dedupe_lines(lines) + + +# 计算文本簇的边界框(上下左右和中心点) +def cluster_bounds(cluster: list[dict]) -> dict: + return { + 'top': min(x['top'] for x in cluster), + 'bottom': max(x['bottom'] for x in cluster), + 'left': min(x['left'] for x in cluster), + 'right': max(x['right'] for x in cluster), + 'cx': sum(x['cx'] for x in cluster) / len(cluster), + } + + +# 根据簇内文本项估算单行文字的高度 +def estimate_cluster_line_height(cluster: list[dict]) -> float: + heights = [float(x.get('height', 0) or 0) for x in cluster if float(x.get('height', 0) or 0) > 0] + if not heights: + return 18.0 + return max(14.0, float(np.median(heights))) + + +# 根据文本簇边界裁剪出气泡区域图片,使用颜色和形态学方法定位气泡 +def crop_bubble_box(img: Image.Image, cluster_items: list[dict], stem: str | None = None) -> tuple[Image.Image | None, dict | None]: + if not cluster_items: + return None, None + + arr = np.array(img.convert('RGB')) + img_h, img_w = arr.shape[:2] + bounds = cluster_bounds(cluster_items) + + seed_left = max(0, int(bounds['left'] - 20)) + seed_right = min(img_w, int(bounds['right'] + 20)) + seed_top = max(0, int(bounds['top'] - 30)) + seed_bottom = min(img_h, int(bounds['bottom'] + 14)) + if seed_right <= seed_left or seed_bottom <= seed_top: + return None, None + + seed = arr[seed_top:seed_bottom, seed_left:seed_right] + if seed.size == 0: + return None, None + + # 对方消息气泡:优先锚定到 #EEEEF0 附近;自己消息可再走别的颜色策略 + seed_pixels = seed.reshape(-1, 3).astype(np.int16) + brightness = seed_pixels.mean(axis=1) + bubble_pixels = seed_pixels[brightness < BRIGHTNESS_CUTOFF] + if bubble_pixels.size == 0: + bubble_pixels = seed_pixels + median_target = np.median(bubble_pixels, axis=0) + peer_target = np.array(PEER_BUBBLE_RGB, dtype=np.int16) # #EEEEF0 + # 左侧消息优先锚定 #EEEEF0 的灰底黑字气泡;右侧保留原有自适应策略 + is_left_bubble = bounds['cx'] <= img_w * LEFT_BUBBLE_CX_RATIO + if is_left_bubble: + target = peer_target + threshold = LEFT_COLOR_THRESHOLD + else: + target = median_target.astype(np.int16) + threshold = RIGHT_COLOR_THRESHOLD + + diff = np.abs(arr.astype(np.int16) - target.reshape(1, 1, 3)) + dist = diff.sum(axis=2) + + bg_mask = (arr[:, :, 0] > BG_WHITE_THRESHOLD) & (arr[:, :, 1] > BG_WHITE_THRESHOLD) & (arr[:, :, 2] > BG_WHITE_THRESHOLD) + bright_mask = arr.mean(axis=2) > BRIGHT_MASK_THRESHOLD + color_mask = (dist <= threshold) & (~bg_mask) & (~bright_mask) + color_mask = color_mask.astype(np.uint8) * 255 + + if is_left_bubble: + # 左侧灰气泡更怕把上下两条消息连在一起,这里弱化纵向粘连、强化横向连通 + kernel_close = cv2.getStructuringElement(cv2.MORPH_RECT, (11, 3)) + kernel_open = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) + else: + kernel_close = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7)) + kernel_open = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) + color_mask = cv2.morphologyEx(color_mask, cv2.MORPH_CLOSE, kernel_close) + color_mask = cv2.morphologyEx(color_mask, cv2.MORPH_OPEN, kernel_open) + + text_cx = bounds['cx'] + text_cy = (bounds['top'] + bounds['bottom']) / 2.0 + text_h = max(1.0, bounds['bottom'] - bounds['top']) + text_w = max(1.0, bounds['right'] - bounds['left']) + + def is_probable_left_avatar_candidate(stats_arr, label_idx: int, x: int, y: int, w: int, h: int) -> bool: + if not is_left_bubble: + return False + if x > img_w * 0.2: + return False + if w <= 0 or h <= 0: + return False + wh_ratio = w / max(1.0, float(h)) + if wh_ratio < 0.72 or wh_ratio > 1.35: + return False + if w < max(18.0, text_h * 0.55) or w > max(92.0, text_h * 2.4): + return False + + right_edge = x + w + row_hit = False + n = stats_arr.shape[0] if hasattr(stats_arr, 'shape') else len(stats_arr) + for j in range(1, n): + if j == label_idx: + continue + ox, oy, ow, oh, oarea = stats_arr[j] + if oarea <= 0 or ow <= 0 or oh <= 0: + continue + if ox <= right_edge: + continue + gap = ox - right_edge + if gap < 2 or gap > max(120.0, text_w * 1.4): + continue + overlap_h = max(0.0, min(y + h, oy + oh) - max(y, oy)) + if overlap_h < min(h, oh) * 0.45: + continue + if ow < w * 1.15: + continue + if oh < h * 0.75: + continue + row_hit = True + break + return row_hit + + def pick_box_from_binary_merge() -> tuple[int, int, int, int] | None: + merged_out_dir = get_image_out_dir(stem or 'unknown', 'merged') if stem else None + merged_img = build_merged_binary_image(img, is_left_bubble=is_left_bubble) + merged = np.array(merged_img) + + if merged_out_dir is not None: + merged_img.save(merged_out_dir / 'bubble_bin.png') + + num_labels2, labels2, stats2, _ = cv2.connectedComponentsWithStats(merged, 8) + best_local = None + for label in range(1, num_labels2): + x, y, w, h, area = stats2[label] + if area <= 0 or w <= 0 or h <= 0: + continue + if is_probable_left_avatar_candidate(stats2, label, x, y, w, h): + continue + right = x + w + bottom = y + h + if not (x <= text_cx <= right and y <= text_cy <= bottom): + continue + + top_gap = max(0.0, bounds['top'] - y) + bottom_gap = max(0.0, bottom - bounds['bottom']) + overlap_x = max(0.0, min(bounds['right'], right) - max(bounds['left'], x)) + overlap_ratio = overlap_x / text_w if text_w > 0 else 0.0 + if overlap_ratio < 0.45: + continue + + score = 0.0 + score += bottom * BIN_SCORE_BOTTOM + score += area * BIN_SCORE_AREA + score += overlap_ratio * BIN_SCORE_OVERLAP + if y < img_h * 0.18: + score -= (img_h * 0.18 - y) * 2.0 + score -= top_gap * (BIN_PENALTY_TOP_GAP_LEFT if is_left_bubble else BIN_PENALTY_TOP_GAP_RIGHT) + score -= abs(bottom_gap - 12.0) * BIN_PENALTY_BOTTOM_GAP + + max_reasonable_h = max(120.0, text_h * 3.4) + max_reasonable_w = max(360.0, text_w * 1.9) + if h > max_reasonable_h: + score -= (h - max_reasonable_h) * BIN_PENALTY_TOO_TALL + if w > max_reasonable_w: + score -= (w - max_reasonable_w) * BIN_PENALTY_TOO_WIDE + + if is_left_bubble: + region = arr[y:bottom, x:right].reshape(-1, 3).astype(np.int16) + if region.size > 0: + region_mean = np.median(region, axis=0) + color_score = float(320 - np.abs(region_mean - peer_target).sum()) + score += max(0.0, color_score) + + if best_local is None or score > best_local[0]: + best_local = (score, x, y, right, bottom) + if best_local is None: + return None + return best_local[1], best_local[2], best_local[3], best_local[4] + + best = None + binary_box = pick_box_from_binary_merge() + if binary_box is not None: + left, top, right, bottom = binary_box + best = (float(bottom), left, top, right, bottom) + else: + num_labels, labels, stats, _ = cv2.connectedComponentsWithStats(color_mask, 8) + for label in range(1, num_labels): + x, y, w, h, area = stats[label] + if area <= 0 or w <= 0 or h <= 0: + continue + if is_probable_left_avatar_candidate(stats, label, x, y, w, h): + continue + right = x + w + bottom = y + h + if not (x <= text_cx <= right and y <= text_cy <= bottom): + continue + + top_gap = max(0.0, bounds['top'] - y) + bottom_gap = max(0.0, bottom - bounds['bottom']) + overlap_x = max(0.0, min(bounds['right'], right) - max(bounds['left'], x)) + overlap_ratio = overlap_x / text_w if text_w > 0 else 0.0 + + score = 0.0 + score += area * COLOR_SCORE_AREA + score += bottom * COLOR_SCORE_BOTTOM + score += overlap_ratio * COLOR_SCORE_OVERLAP + if y < img_h * OCR_TOP_PENALTY_RATIO: + score -= (img_h * OCR_TOP_PENALTY_RATIO - y) * OCR_TOP_PENALTY_COLOR_FACTOR + + if is_left_bubble: + region = arr[y:bottom, x:right].reshape(-1, 3).astype(np.int16) + region_mean = np.median(region, axis=0) + color_score = float(320 - np.abs(region_mean - peer_target).sum()) + score += max(0.0, color_score) + # 目标是最后一片灰框,不是整列灰底 + score -= top_gap * COLOR_PENALTY_TOP_GAP_LEFT + score -= abs(bottom_gap - 12.0) * COLOR_PENALTY_BOTTOM_GAP + max_reasonable_h = max(110.0, text_h * 2.8) + if h > max_reasonable_h: + score -= (h - max_reasonable_h) * COLOR_PENALTY_TOO_TALL + max_reasonable_w = max(320.0, text_w * 1.6) + if w > max_reasonable_w: + score -= (w - max_reasonable_w) * COLOR_PENALTY_TOO_WIDE + else: + score += top_gap * COLOR_SCORE_TOP_GAP_RIGHT + score += h * COLOR_SCORE_HEIGHT_RIGHT + + if best is None or score > best[0]: + best = (score, x, y, right, bottom) + + if best is not None: + _, left, top, right, bottom = best + + if is_left_bubble: + cand_w = max(1, int(right - left)) + cand_h = max(1, int(bottom - top)) + cand_ratio = cand_w / float(cand_h) + if left <= int(img_w * 0.2) and 0.70 <= cand_ratio <= 1.35 and cand_w <= max(96, int(text_h * 2.6)): + left = max(0, int(bounds['left'] - 6)) + right = min(img_w, int(bounds['right'] + 12)) + top = max(0, int(bounds['top'] - 4)) + bottom = min(img_h, int(bounds['bottom'] + 10)) + + # 基于已找到的色块做方向扩张:左侧气泡重点往左/上/下扩 + def col_match_ratio(x: int, y1: int, y2: int) -> float: + seg = dist[max(0, y1):min(img_h, y2), max(0, x):min(img_w, x + 1)] + if seg.size == 0: + return 0.0 + return float((seg <= threshold).mean()) + + def row_match_ratio(y: int, x1: int, x2: int) -> float: + seg = dist[max(0, y):min(img_h, y + 1), max(0, x1):min(img_w, x2)] + if seg.size == 0: + return 0.0 + return float((seg <= threshold).mean()) + + is_left_bubble = bounds['cx'] <= img_w * 0.58 + line_h = estimate_cluster_line_height(cluster_items) + current_h = max(1.0, float(bottom - top)) + # 不写死目标高度,按当前识别到的文字行高推测一个更合理的气泡高度。 + # 经验上 4 行消息块通常需要约 5~6 个文本行高的容纳空间; + # 当前框偏小时,优先把增量用于向上扩展。 + desired_h = max(current_h, line_h * 5.6) + need_more_h = max(0.0, desired_h - current_h) + + # 左侧消息按“红框风格”收紧:更贴正文,避免包太大 + expand_left_limit = 12 if is_left_bubble else 30 + expand_right_limit = 22 if is_left_bubble else 90 + expand_up_limit = max(6, int(min(18, line_h * 0.55 + need_more_h * 0.08))) if is_left_bubble else max(40, int(min(120, line_h * 3.8 + need_more_h * 0.9))) + expand_down_limit = max(10, int(min(28, line_h * 0.85 + need_more_h * 0.10))) if is_left_bubble else max(20, int(min(60, line_h * 1.6 + need_more_h * 0.25))) + + for _ in range(expand_left_limit): + if left <= 1: + break + ratio = col_match_ratio(left - 1, top, bottom) + if ratio < 0.18: + break + left -= 1 + + for _ in range(expand_right_limit): + if right >= img_w - 1: + break + ratio = col_match_ratio(right, top, bottom) + if ratio < 0.18: + break + right += 1 + + up_steps = 0 + top_guard = max(0, int(bounds['top'] - (line_h * 0.9 if is_left_bubble else line_h * 2.2))) + for _ in range(expand_up_limit): + if top <= 1 or top <= top_guard: + break + ratio = row_match_ratio(top - 1, left, right) + # 左侧消息向上严格很多,避免把昵称/头像旁白区卷进来 + if is_left_bubble: + if ratio < 0.18: + break + else: + if ratio < 0.10 and up_steps > int(line_h * 0.8): + break + top -= 1 + up_steps += 1 + + down_steps = 0 + for _ in range(expand_down_limit): + if bottom >= img_h - 1: + break + ratio = row_match_ratio(bottom, left, right) + if ratio < 0.16 and down_steps > int(line_h * 0.5): + break + bottom += 1 + down_steps += 1 + + # 如果扩张后仍明显矮于按行高估计的合理高度,左侧消息也只做很有限补偿,避免变成大包围框 + current_h2 = max(1, bottom - top) + missing_h = max(0, int(desired_h - current_h2)) + if missing_h > 0: + if is_left_bubble: + extra_up = min(max(0, int(missing_h * 0.08)), max(0, top - top_guard)) + extra_down = min(max(0, int(missing_h * 0.35)), max(0, img_h - bottom)) + else: + extra_up = min(max(0, int(missing_h * 0.75)), max(0, top)) + extra_down = min(max(0, int(missing_h * 0.25)), max(0, img_h - bottom)) + top -= extra_up + bottom += extra_down + + # 左侧消息最终再做一次边界钳制,逼近你标的红框大小 + if is_left_bubble: + target_left = int(bounds['left'] - 6) + target_top = int(bounds['top'] - max(3, line_h * 0.28)) + target_right = int(bounds['right'] + 10) + target_bottom = int(bounds['bottom'] + max(8, line_h * 0.45)) + left = max(0, min(int(left), target_left)) + left = max(left, max(0, target_left - 2)) + top = max(0, min(int(top), target_top)) + top = max(top, max(0, target_top - 2)) + right = min(img_w, max(int(right), target_right)) + right = min(right, target_right + 4) + bottom = min(img_h, max(int(bottom), target_bottom)) + bottom = min(bottom, target_bottom + 4) + else: + left = max(0, int(left - 4)) + top = max(0, int(top - 4)) + right = min(img_w, int(right + 4)) + bottom = min(img_h, int(bottom + 4)) + else: + # 找不到色块时才退回文本框轻微扩边;左侧消息按正文贴边框处理 + if bounds['cx'] <= img_w * 0.58: + left = max(0, int(bounds['left'] - 6)) + right = min(img_w, int(bounds['right'] + 12)) + top = max(0, int(bounds['top'] - 4)) + bottom = min(img_h, int(bounds['bottom'] + 10)) + else: + left = max(0, int(bounds['left'] - 24)) + right = min(img_w, int(bounds['right'] + 26)) + top = max(0, int(bounds['top'] - 42)) + bottom = min(img_h, int(bounds['bottom'] + 22)) + + if right <= left or bottom <= top: + return None, None + box = {'left': left, 'top': top, 'right': right, 'bottom': bottom, 'width': right - left, 'height': bottom - top} + return img.crop((left, top, right, bottom)), box + + +# 对气泡图片进行OCR识别,返回识别到的文本行列表 +def ocr_bubble_text(bubble_img: Image.Image, stem: str) -> list[str]: + scale = 5 + scaled_img = bubble_img.resize((bubble_img.width * scale, bubble_img.height * scale), Image.Resampling.LANCZOS) + raw_lines = ocr_lines(scaled_img, f'clicked_{stem}_bubble_crop') + + def normalize(lines: list[str]) -> list[str]: + merged = [] + for line in lines: + text = str(line).strip() + if not should_keep_line(text): + continue + if text not in merged: + merged.append(text) + return merged + + def build_bold_binary_image(source_img: Image.Image) -> Image.Image: + gray = np.array(source_img.convert('L')) + _, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) + binary_img = Image.fromarray(binary).convert('L') + scaled_binary = binary_img.resize((source_img.width * scale, source_img.height * scale), Image.Resampling.NEAREST) + arr = np.array(scaled_binary) + kernel = np.ones((2, 2), np.uint8) + dilated = cv2.dilate(255 - arr, kernel, iterations=1) + return Image.fromarray(255 - dilated).convert('RGB') + + def recognize_joined_short_text(source_img: Image.Image) -> str | None: + items = ocr_items_direct(source_img) + if len(items) < 2: + return None + items.sort(key=lambda item: (item['left'], item['top'])) + text = ''.join(item['text'] for item in items if should_keep_line(item['text'])) + if not text: + return None + if len(text) <= 8 and re.fullmatch(r'[一-鿿A-Za-z0-9]+', text): + return text + return None + + def looks_like_short_name(text: str) -> bool: + text = (text or '').strip() + if not text: + return False + if len(text) > 4: + return False + if any(ch in text for ch in ',。!?!?.、/@'): + return False + return re.fullmatch(r'[一-鿿A-Za-z0-9]+', text) is not None + + def looks_like_headerish(text: str) -> bool: + text = (text or '').strip() + if not text: + return False + if looks_like_short_name(text): + return True + if ('+' in text and re.search(r'\d', text)) or '拍立减' in text or '限时' in text: + return True + return False + + def choose_best_suffix(lines: list[str]) -> list[str]: + lines = cleanup_candidate_lines(lines) + if not lines: + return [] + suffixes = [lines[i:] for i in range(len(lines))] + def suffix_score(seq: list[str]) -> tuple[float, float, float]: + total_chars = sum(len(x) for x in seq) + score = total_chars * 0.5 + score -= max(0, len(seq) - 4) * 12 + score -= len(seq) * 2 + first = seq[0] + last = seq[-1] + if looks_like_headerish(first) and len(seq) > 1: + score -= 35 + if len(first) <= 8 and len(seq) > 1 and len(seq[1]) >= 8: + score -= 26 + if looks_like_short_name(last) and len(seq) > 1: + score -= 55 + if len(last) <= 3: + score -= 40 + if len(seq) == 1 and len(last) >= 2: + score += 14 + return (score, -len(seq), total_chars) + best = max(suffixes, key=suffix_score) + return cleanup_candidate_lines(best) + + raw_norm = normalize(raw_lines) + should_try_short_text = bubble_img.width <= 90 and bubble_img.height <= 60 and (not raw_norm or len(''.join(raw_norm)) <= 2) + if should_try_short_text: + bold_binary_img = build_bold_binary_image(bubble_img) + bold_binary_img.save(get_image_out_dir(stem, 'ocr') / 'bubble_crop_bold_binary_5x.png') + joined_text = recognize_joined_short_text(bold_binary_img) + if joined_text and (not raw_norm or len(joined_text) > len(''.join(raw_norm))): + return [joined_text] + + if raw_norm: + return raw_norm + return [] + + +# 从OCR识别项中选择最新的消息簇,返回文本和原始簇 +def pick_latest_cluster(items: list[dict], image_w: int, image_h: int) -> tuple[list[str], list[str], list[dict]]: + if not items: + return [], [], [] + clusters = build_line_clusters(items, y_gap=max(18.0, image_h * 0.018)) + if not clusters: + return [], [], [] + + scored = [] + for idx, cluster in enumerate(clusters): + bounds = cluster_bounds(cluster) + lines = cluster_to_lines(cluster) + if not lines: + continue + height = bounds['bottom'] - bounds['top'] + width = bounds['right'] - bounds['left'] + text_len = sum(len(x) for x in lines) + score = 0.0 + score += bounds['bottom'] * CLUSTER_SCORE_BOTTOM + score += min(120.0, height * CLUSTER_SCORE_HEIGHT) + score += min(80.0, width * CLUSTER_SCORE_WIDTH) + score += min(60.0, text_len * CLUSTER_SCORE_TEXT_LEN) + if len(lines) >= 2: + score += CLUSTER_SCORE_MULTI_LINE_BONUS + + is_left_cluster = bounds['cx'] <= image_w * LEFT_BUBBLE_CX_RATIO and bounds['left'] <= image_w * RIGHT_BUBBLE_MIN_LEFT_RATIO + if not is_left_cluster: + continue + min_line_len = min((len(x.strip()) for x in lines if x and x.strip()), default=0) + if is_left_cluster and len(lines) == 1 and min_line_len <= 4: + near_bottom = bounds['bottom'] >= image_h * 0.62 + has_cjk = any(re.search(r'[一-鿿]', x or '') for x in lines) + if not (near_bottom and has_cjk): + score -= 120.0 + if is_left_cluster and width <= max(52.0, height * 1.25): + near_bottom = bounds['bottom'] >= image_h * 0.62 + has_cjk = any(re.search(r'[一-鿿]', x or '') for x in lines) + if not (near_bottom and has_cjk): + score -= 140.0 + + scored.append((score, idx, lines, cluster)) + + if not scored: + return [], [], [] + scored.sort(key=lambda x: x[0], reverse=True) + _, _, best_lines, best_cluster = scored[0] + + # 为了优先保证截图只落在最后一条正文块,这里先不向上合并前一个 cluster。 + return list(best_lines)[:4], dedupe_lines([x['text'] for x in items]), list(best_cluster) + + +# 从聊天快照中提取最新消息文本 +def extract_latest_text(img: Image.Image, stem: str, preferred_ocr_img: Image.Image | None = None, preferred_crop_box: dict | None = None) -> tuple[str | None, list[str], list[dict], dict | None]: + img_np = np.array(img) + h, w = img_np.shape[:2] + all_items: list[dict] = [] + merged_out_dir = get_image_out_dir(stem, 'merged') + ocr_out_dir = get_image_out_dir(stem, 'ocr') + + merged_full = build_merged_binary_image(img) + merged_full.save(merged_out_dir / 'full_bin.png') + + raw_items = ocr_items_with_boxes(img, offset_x=0, offset_y=0) + merged_items = dedupe_items_by_geometry(raw_items) + for item in merged_items: + text = item['text'].strip() + if should_keep_line(text): + all_items.append(item) + + cluster_lines, valid_lines, cluster_items = pick_latest_cluster(all_items, w, h) + bubble_img, bubble_box = crop_bubble_box(img, cluster_items, stem) + ocr_source_img = preferred_ocr_img if preferred_ocr_img is not None else bubble_img + crop_box = preferred_crop_box if preferred_ocr_img is not None else bubble_box + if ocr_source_img is not None: + ocr_source_img.save(ocr_out_dir / 'bubble_crop.png') + bubble_lines = ocr_bubble_text(ocr_source_img, stem) + bubble_lines = cleanup_candidate_lines(bubble_lines) + if bubble_lines: + return '\n'.join(bubble_lines), valid_lines, cluster_items, crop_box + latest_block_lines = list(cluster_lines) + latest_block_lines = cleanup_candidate_lines(latest_block_lines) + latest_block = '\n'.join(latest_block_lines) if latest_block_lines else None + return latest_block, valid_lines, cluster_items, crop_box + + +# 检测最新消息气泡位于屏幕左侧还是右侧(判断是自己还是对方的消息) +def detect_latest_bubble_side(img: Image.Image, cluster_items: list[dict], crop_box: dict | None = None) -> tuple[str | None, float]: + arr = np.array(img.convert('RGB')) + h, w = arr.shape[:2] + + if crop_box: + left = float(crop_box.get('left', 0)) + right = float(crop_box.get('right', left)) + center_x = (left + right) / 2.0 + if center_x >= w * LEFT_BUBBLE_CX_RATIO or left >= w * RIGHT_BUBBLE_MIN_LEFT_RATIO: + return 'right', 0.9 + return 'left', 0.9 + + if cluster_items: + avg_cx = sum(x['cx'] for x in cluster_items) / len(cluster_items) + min_left = min(x['left'] for x in cluster_items) + max_right = max(x['right'] for x in cluster_items) + width = max_right - min_left + if avg_cx >= w * LEFT_BUBBLE_CX_RATIO or min_left >= w * RIGHT_BUBBLE_MIN_LEFT_RATIO: + return 'right', 0.84 if width > w * 0.18 else 0.78 + if avg_cx <= w * 0.52 or max_right <= w * LEFT_SIDE_MAX_RIGHT_RATIO: + return 'left', 0.84 if width > w * 0.18 else 0.78 + + focus = arr[int(h * 0.38):, :, :] + hsv = cv2.cvtColor(focus, cv2.COLOR_RGB2HSV) + green_mask = cv2.inRange(hsv, np.array([35, 25, 80]), np.array([95, 255, 255])) + kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) + green_mask = cv2.morphologyEx(green_mask, cv2.MORPH_CLOSE, kernel) + contours, _ = cv2.findContours(green_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + candidates = [] + y_offset = int(h * 0.38) + for cnt in contours: + x, y, ww, hh = cv2.boundingRect(cnt) + area = ww * hh + right = x + ww + if area < 2500: + continue + if hh < 28 or ww < 80: + continue + if right < w * 0.66: + continue + if x < w * 0.45 and ww > w * 0.45: + continue + candidates.append((y + y_offset, x, ww, hh, area)) + + if candidates: + candidates.sort(key=lambda item: (item[0] + item[3], item[1])) + y, x, ww, hh, area = candidates[-1] + center_x = x + ww / 2.0 + side = 'right' if center_x >= w * LEFT_BUBBLE_CX_RATIO else 'left' + confidence = min(0.72, 0.50 + min(0.22, area / 40000.0)) + return side, confidence + + return 'left', 0.35 + + +# 分析PIL图片的主函数,提取最新消息、判断发送方并返回分析结果 +def analyze_pil_image(img: Image.Image, stem: str, file_name: str | None = None) -> AnalyzeResult: + trace_id = new_trace_id("bot") + safe_stem = stem or 'unknown' + ocr_out_dir = get_image_out_dir(safe_stem, 'ocr') + for p in ocr_out_dir.glob('*.png'): + p.unlink(missing_ok=True) + + img = img.convert('RGB') + original_out_dir = get_image_out_dir(safe_stem, 'original') + img.save(original_out_dir / 'full_raw.png') + + merged_full = build_merged_binary_image(img) + last_white_box = pick_last_white_box_from_merged_binary(merged_full) + preferred_ocr_img = None + preferred_crop_box = None + if last_white_box is not None: + preferred_crop_box = dict(last_white_box) + preferred_ocr_img = img.crop(( + int(last_white_box['left']), + int(last_white_box['top']), + int(last_white_box['right']), + int(last_white_box['bottom']), + )) + preferred_ocr_img.save(original_out_dir / 'last_white_box_raw.png') + + latest_text, valid_lines, cluster_items, crop_box = extract_latest_text(img, safe_stem, preferred_ocr_img=preferred_ocr_img, preferred_crop_box=preferred_crop_box) + bubble_side, confidence = detect_latest_bubble_side(img, cluster_items, crop_box=crop_box) + if bubble_side == 'right': + latest_text = None + valid_lines = [] + is_self_sent = None if bubble_side is None else (bubble_side == 'right') + result = AnalyzeResult( + file=file_name or f'{safe_stem}.png', + size=img.size, + crop_box=crop_box, + latest_text=latest_text, + is_self_sent=is_self_sent, + bubble_side=bubble_side, + confidence=confidence, + valid_lines=valid_lines, + error=None, + ) + (ocr_out_dir / 'result.json').write_text(json.dumps(asdict(result), ensure_ascii=False, indent=2), encoding='utf-8') + log_event("INFO", "bot", "bot.chat_snapshot", trace_id, "analyze", "ok", "聊天快照分析完成", extra={"file": result.file, "has_text": bool(result.latest_text), "bubble_side": result.bubble_side or "", "confidence": result.confidence}) + return result + + diff --git a/app/infrastructure/service/wechat/config.py b/app/infrastructure/service/wechat/config.py new file mode 100644 index 0000000..3af6995 --- /dev/null +++ b/app/infrastructure/service/wechat/config.py @@ -0,0 +1,124 @@ +import os +from pathlib import Path + +from app.configs.runtime_config import get_bool, get_float, get_int, get_str + +PROJECT_ROOT = Path(__file__).resolve().parents[4] + + +def _local_appdata_root() -> Path: + local_appdata = (os.getenv("LOCALAPPDATA") or "").strip() + if local_appdata: + return Path(local_appdata) + return Path.home() / "AppData" / "Local" + + +def _resolve_path(path_value: str, base_dir: Path) -> str: + path = Path(path_value) + if not path.is_absolute(): + path = base_dir / path + return str(path.resolve()) + + +APP_NAME = (get_str("APP_NAME", "AiShiliu") or "AiShiliu").strip() or "AiShiliu" +APP_DATA_DIR = _resolve_path( + get_str("APP_DATA_DIR", "") or get_str("OPENCLAW_APP_DATA_DIR", "") or str(_local_appdata_root() / APP_NAME), + PROJECT_ROOT, +) +LOG_ROOT_DIR = _resolve_path(get_str("LOG_ROOT_DIR", os.path.join(APP_DATA_DIR, "logs")), PROJECT_ROOT) +BACKEND_LOG_DIR = _resolve_path(get_str("BACKEND_LOG_DIR", os.path.join(LOG_ROOT_DIR, "backend")), PROJECT_ROOT) +FRONTEND_LOG_DIR = _resolve_path(get_str("FRONTEND_LOG_DIR", os.path.join(LOG_ROOT_DIR, "frontend")), PROJECT_ROOT) +BACKEND_PYTHON_LOG_FILE = _resolve_path( + get_str("BACKEND_PYTHON_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "python", "backend.log")), + PROJECT_ROOT, +) +BOT_LOG_FILE = _resolve_path( + get_str("BOT_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "bot", "bot.log")), + PROJECT_ROOT, +) +BOT_SESSION_LIST_LOG_FILE = _resolve_path( + get_str("BOT_SESSION_LIST_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "bot", "session_list.log")), + PROJECT_ROOT, +) +BOT_SESSION_DETAIL_LOG_FILE = _resolve_path( + get_str("BOT_SESSION_DETAIL_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "bot", "session_detail.log")), + PROJECT_ROOT, +) +OCR_LOG_FILE = _resolve_path( + get_str("OCR_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "ocr", "ocr.log")), + PROJECT_ROOT, +) +OCR_BAIDU_LOG_FILE = _resolve_path( + get_str("OCR_BAIDU_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "ocr", "baidu.log")), + PROJECT_ROOT, +) +OCR_RAPID_LOG_FILE = _resolve_path( + get_str("OCR_RAPID_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "ocr", "rapid.log")), + PROJECT_ROOT, +) +TAURI_LOG_FILE = _resolve_path( + get_str("TAURI_LOG_FILE", os.path.join(FRONTEND_LOG_DIR, "tauri", "tauri.log")), + PROJECT_ROOT, +) +VUE_LOG_FILE = _resolve_path( + get_str("VUE_LOG_FILE", os.path.join(FRONTEND_LOG_DIR, "vue", "vue.log")), + PROJECT_ROOT, +) +OCR_SAVE_DIR = _resolve_path(get_str("OCR_SAVE_DIR", os.path.join(BACKEND_LOG_DIR, "ocr_debug_images")), PROJECT_ROOT) +BLOCKED_ROW_CACHE_FILE = _resolve_path( + get_str("BLOCKED_ROW_CACHE_FILE", os.path.join(BACKEND_LOG_DIR, "state", "blocked_rows.json")), + PROJECT_ROOT, +) + +BAIDU_API_KEY = get_str("BAIDU_API_KEY", "") +BAIDU_SECRET_KEY = get_str("BAIDU_SECRET_KEY", "") +OCR_PROVIDER = get_str("OCR_PROVIDER", "baidu").strip().lower() +RAPID_OCR_DET_MODEL_PATH = get_str("RAPID_OCR_DET_MODEL_PATH", "app/resources/ocr_models/ch_PP-OCRv4_det.onnx").strip() +RAPID_OCR_REC_MODEL_PATH = get_str("RAPID_OCR_REC_MODEL_PATH", "app/resources/ocr_models/ch_PP-OCRv4_rec.onnx").strip() +RAPID_OCR_CLS_MODEL_PATH = get_str("RAPID_OCR_CLS_MODEL_PATH", "app/resources/ocr_models/ch_ppocr_mobile_v2.0_cls.onnx").strip() +BACKEND_URL = get_str("BACKEND_URL", "http://127.0.0.1:5000/api/messages/receive") +LOOP_INTERVAL = get_int("BOT_LOOP_INTERVAL", 3) +CLICK_AFTER_DELAY = get_float("BOT_CLICK_AFTER_DELAY", 1.2) +TITLE_AFTER_DELAY = get_float("BOT_TITLE_AFTER_DELAY", 1.0) +CONTACT_SWITCH_DELAY = get_float("BOT_CONTACT_SWITCH_DELAY", 1.0) +LOOP_ERROR_DELAY = get_float("BOT_LOOP_ERROR_DELAY", 3) +WECHAT_WINDOW_TARGET_WIDTH = get_int("WECHAT_WINDOW_TARGET_WIDTH", 1080) +WECHAT_WINDOW_TARGET_HEIGHT = get_int("WECHAT_WINDOW_TARGET_HEIGHT", 820) +WECHAT_WINDOW_TARGET_LEFT = get_int("WECHAT_WINDOW_TARGET_LEFT", 120) +WECHAT_WINDOW_TARGET_TOP = get_int("WECHAT_WINDOW_TARGET_TOP", 80) +OCR_SAVE_IMAGES = get_bool("OCR_SAVE_IMAGES", True) +CONTACT_ROW_HEIGHT = get_int("CONTACT_ROW_HEIGHT", 64) +CONTACT_ROW_WIDTH = get_int("CONTACT_ROW_WIDTH", 240) +CONTACT_LIST_LEFT_OFFSET = get_int("CONTACT_LIST_LEFT_OFFSET", 68) +CONTACT_LIST_TOP_OFFSET = get_int("CONTACT_LIST_TOP_OFFSET", 82) +CONTACT_LIST_BOTTOM_OFFSET = get_int("CONTACT_LIST_BOTTOM_OFFSET", 0) +SESSION_NAME_LEFT_OFFSET = get_int("SESSION_NAME_LEFT_OFFSET", 56) +SESSION_NAME_TOP_OFFSET = get_int("SESSION_NAME_TOP_OFFSET", 8) +SESSION_NAME_WIDTH = get_int("SESSION_NAME_WIDTH", 134) +SESSION_NAME_HEIGHT = get_int("SESSION_NAME_HEIGHT", 24) +SESSION_NAME_OCR_SCALE = get_int("SESSION_NAME_OCR_SCALE", 4) +SESSION_NAME_OCR_EXTRA_SCALE = get_int("SESSION_NAME_OCR_EXTRA_SCALE", 6) +CHAT_CAPTURE_LEFT_OFFSET = get_int("CHAT_CAPTURE_LEFT_OFFSET", 310) +CHAT_CAPTURE_TOP_OFFSET = get_int("CHAT_CAPTURE_TOP_OFFSET", 70) +CHAT_CAPTURE_WIDTH = get_int("CHAT_CAPTURE_WIDTH", 750) +CHAT_CAPTURE_HEIGHT = get_int("CHAT_CAPTURE_HEIGHT", 550) +OCR_TOP_PENALTY_RATIO = get_float("OCR_TOP_PENALTY_RATIO", 0.18) +OCR_TOP_PENALTY_BIN_FACTOR = get_float("OCR_TOP_PENALTY_BIN_FACTOR", 2.0) +OCR_TOP_PENALTY_COLOR_FACTOR = get_float("OCR_TOP_PENALTY_COLOR_FACTOR", 2.2) +TITLE_OCR_AREA_LEFT_OFFSET = get_int("TITLE_OCR_AREA_LEFT_OFFSET", 240) +TITLE_OCR_AREA_TOP_OFFSET = get_int("TITLE_OCR_AREA_TOP_OFFSET", 4) +TITLE_OCR_AREA_WIDTH = get_int("TITLE_OCR_AREA_WIDTH", 600) +TITLE_OCR_AREA_HEIGHT = get_int("TITLE_OCR_AREA_HEIGHT", 64) + +NO_REPLY_KEYWORDS = [ + "谢谢", "好的", "嗯", "哦", "ok", "收到", + "[图片]", "[语音]", "[视频]", "[文件]" +] + +BLOCKED_SESSION_KEYWORDS = [ + "服务号", "公众号", "微信公众平台", "文件传输助手" +] + +UI_NOISE_KEYWORDS = [ + "微信", "Weixin", "WeChat", "聊天信息", "搜索", "更多", "表情", "发送", "Message", "Messages" +] diff --git a/app/infrastructure/service/wechat/ocr.py b/app/infrastructure/service/wechat/ocr.py new file mode 100644 index 0000000..a95d8f2 --- /dev/null +++ b/app/infrastructure/service/wechat/ocr.py @@ -0,0 +1,346 @@ +import base64 +from io import BytesIO +from pathlib import Path + +import cv2 +import numpy as np +import requests +from PIL import Image + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import ( + BAIDU_API_KEY, + BAIDU_SECRET_KEY, + OCR_PROVIDER, + RAPID_OCR_CLS_MODEL_PATH, + RAPID_OCR_DET_MODEL_PATH, + RAPID_OCR_REC_MODEL_PATH, + SESSION_NAME_OCR_EXTRA_SCALE, + SESSION_NAME_OCR_SCALE, +) + + +BAIDU_FALLBACK_ERROR_CODES = {17, 18, 110, 111} + + +def _runtime_roots() -> list[Path]: + roots: list[Path] = [] + + meipass = getattr(__import__("sys"), "_MEIPASS", None) + if meipass: + roots.append(Path(meipass)) + + file_root = Path(__file__).resolve().parents[4] + roots.append(file_root) + + cwd = Path.cwd().resolve() + roots.append(cwd) + roots.append(cwd / "resources") + roots.append(cwd / "app") + + try: + exe_parent = Path(__import__("sys").executable).resolve().parent + roots.append(exe_parent) + roots.append(exe_parent / "resources") + roots.append(exe_parent / "app") + except Exception: + pass + + unique_roots: list[Path] = [] + seen = set() + for root in roots: + key = str(root) + if key in seen: + continue + seen.add(key) + unique_roots.append(root) + return unique_roots + + +def _resolve_project_path(path_str: str) -> str: + path = Path(path_str) + if path.is_absolute(): + return str(path) + + candidates = [(root / path).resolve() for root in _runtime_roots()] + for candidate in candidates: + if candidate.exists(): + return str(candidate) + return str(candidates[0]) + + +class OCRBase: + provider_name = "base" + + def recognize(self, image_data, scene="generic", mode="generic"): + raise NotImplementedError + + +class BaiduOCR(OCRBase): + provider_name = "baidu" + + def __init__(self, api_key, secret_key): + self.api_key = api_key + self.secret_key = secret_key + self.access_token = None + self.last_error_code = None + self.last_error_msg = "" + self.get_access_token() + + def get_access_token(self): + trace_id = new_trace_id("ocr") + if not self.api_key or not self.secret_key: + log_event("WARNING", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR凭据缺失", reason="credential_missing") + return + url = "https://aip.baidubce.com/oauth/2.0/token" + params = {"grant_type": "client_credentials", "client_id": self.api_key, "client_secret": self.secret_key} + try: + response = requests.post(url, params=params, timeout=10) + if response.status_code == 200: + self.access_token = response.json().get("access_token") + if self.access_token: + log_event("INFO", "ocr", "ocr.baidu.token", trace_id, "token", "ok", "百度OCR token获取成功") + else: + log_event("WARNING", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR token为空", reason="token_empty") + else: + log_event("WARNING", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR token获取失败", reason="http_error", extra={"status_code": response.status_code}) + except Exception as e: + log_event("ERROR", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR token请求异常", reason="request_error", extra={"error": str(e)}) + + def _reset_last_error(self): + self.last_error_code = None + self.last_error_msg = "" + + def should_fallback_to_rapid(self): + return self.last_error_code in BAIDU_FALLBACK_ERROR_CODES + + def recognize(self, image_data, scene="generic", mode="generic"): + trace_id = new_trace_id("ocr") + self._reset_last_error() + if not self.access_token: + self.last_error_msg = "no_access_token" + log_event("WARNING", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR无可用token", reason="no_access_token", extra={"scene": scene}) + return [] + url = f"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={self.access_token}" + payload = {"image": base64.b64encode(image_data).decode(), "language_type": "CHN_ENG", "detect_direction": "true", "probability": "true"} + try: + response = requests.post(url, data=payload, timeout=10) + if response.status_code == 200: + result = response.json() + if "error_code" in result: + self.last_error_code = result.get("error_code") + self.last_error_msg = result.get("error_msg") or "" + log_event("WARNING", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR返回错误码", reason="baidu_error", extra={"scene": scene, "error_code": self.last_error_code, "error_msg": self.last_error_msg}) + return [] + if "words_result" in result: + lines = [] + for item in result["words_result"]: + text = item.get("words", "") + prob = item.get("probability", {}).get("average", 0.9) + if text and prob > 0.6: + lines.append(text) + log_event("INFO", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "ok", "百度OCR识别完成", extra={"scene": scene, "line_count": len(lines)}) + return lines + else: + self.last_error_msg = f"http_{response.status_code}" + log_event("WARNING", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR请求失败", reason="http_error", extra={"scene": scene, "status_code": response.status_code}) + except Exception as e: + self.last_error_msg = str(e) + log_event("ERROR", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR请求异常", reason="request_error", extra={"scene": scene, "error": str(e)}) + return [] + + +class RapidLocalOCR(OCRBase): + provider_name = "rapid" + + def __init__(self): + self.ready = False + self.engine = None + self._init_engine() + + def ensure_ready(self): + return self.ready and self.engine is not None + + def _init_engine(self): + trace_id = new_trace_id("ocr") + try: + from rapidocr_onnxruntime import RapidOCR + + model_paths = { + "det_model_path": _resolve_project_path(RAPID_OCR_DET_MODEL_PATH), + "rec_model_path": _resolve_project_path(RAPID_OCR_REC_MODEL_PATH), + "cls_model_path": _resolve_project_path(RAPID_OCR_CLS_MODEL_PATH), + } + existing_model_paths = {key: value for key, value in model_paths.items() if Path(value).exists()} + if len(existing_model_paths) == len(model_paths): + self.engine = RapidOCR(**existing_model_paths) + log_extra = existing_model_paths + else: + self.engine = RapidOCR() + log_extra = {**model_paths, "missing_models": [value for value in model_paths.values() if not Path(value).exists()]} + self.ready = True + log_event("INFO", "ocr", "ocr.rapid.init", trace_id, "init", "ok", "RapidOCR初始化成功", extra=log_extra) + except Exception as e: + self.ready = False + log_event("WARNING", "ocr", "ocr.rapid.init", trace_id, "init", "failed", "RapidOCR初始化失败", reason="init_error", extra={"error": str(e)}) + + def recognize(self, image_data, scene="generic", mode="generic"): + trace_id = new_trace_id("ocr") + if not self.ready or self.engine is None: + log_event("WARNING", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "failed", "RapidOCR未就绪", reason="not_ready", extra={"scene": scene}) + return [] + try: + img_np = np.frombuffer(image_data, dtype=np.uint8) + img = cv2.imdecode(img_np, cv2.IMREAD_COLOR) + if img is None: + log_event("WARNING", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "failed", "RapidOCR图像解码失败", reason="decode_failed", extra={"scene": scene}) + return [] + result = self.engine(img) + if not result or len(result) < 1: + log_event("INFO", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "ok", "RapidOCR识别结果为空", reason="empty_result", extra={"scene": scene}) + return [] + rec_res = result[0] or [] + lines = [] + for item in rec_res: + if not item or len(item) < 2: + continue + text = str(item[1]).strip() + if text: + lines.append(text) + log_event("INFO", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "ok", "RapidOCR识别完成", extra={"scene": scene, "line_count": len(lines)}) + return lines + except Exception as e: + log_event("ERROR", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "failed", "RapidOCR识别异常", reason="recognize_error", extra={"scene": scene, "error": str(e)}) + return [] + + +class OCRService(OCRBase): + provider_name = "service" + + def __init__(self, provider=None): + self.provider_requested = (provider or OCR_PROVIDER or "baidu").strip().lower() + self.baidu_provider = BaiduOCR(BAIDU_API_KEY, BAIDU_SECRET_KEY) + self.rapid_provider = RapidLocalOCR() + self.provider = self._build_provider(self.provider_requested) + + def _build_provider(self, provider_name: str): + if provider_name in {"rapid", "rapidocr"}: + return self.rapid_provider + if provider_name in {"baidu", "baiduocr"}: + return self.baidu_provider + if provider_name == "auto": + if self.baidu_provider.access_token: + return self.baidu_provider + if self.rapid_provider.ensure_ready(): + return self.rapid_provider + return self.baidu_provider + return self.baidu_provider + + def _provider_recognize(self, image_data, scene): + trace_id = new_trace_id("ocr") + lines = self.provider.recognize(image_data, scene=scene) + if self.provider.provider_name != "baidu": + return lines + if lines: + return lines + no_token_fallback = self.baidu_provider.last_error_msg == "no_access_token" + should_fallback = self.baidu_provider.should_fallback_to_rapid() or no_token_fallback + if not should_fallback: + return lines + if not self.rapid_provider.ensure_ready(): + log_event("WARNING", "ocr", "ocr.fallback", trace_id, "fallback", "failed", "触发Rapid回退但引擎未就绪", reason="rapid_not_ready", extra={"scene": scene, "baidu_error": self.baidu_provider.last_error_msg or ""}) + return lines + rapid_lines = self.rapid_provider.recognize(image_data, scene=f"{scene}_rapid_fallback") + if rapid_lines: + log_event("INFO", "ocr", "ocr.fallback", trace_id, "fallback", "ok", "百度OCR回退Rapid成功", reason="fallback_success", extra={"scene": scene, "line_count": len(rapid_lines)}) + else: + log_event("WARNING", "ocr", "ocr.fallback", trace_id, "fallback", "failed", "百度OCR回退Rapid失败", reason="fallback_empty", extra={"scene": scene}) + return rapid_lines + + def _encode_image(self, image_obj): + buf = BytesIO() + image_obj.save(buf, format="PNG") + return buf.getvalue() + + def _normalize_lines(self, lines, min_len=1, exclude=None): + exclude = set(exclude or []) + normalized = [] + for line in lines or []: + text = str(line).strip() + if not text: + continue + if len(text) < min_len: + continue + if text in exclude: + continue + normalized.append(text) + return normalized + + def _build_session_name_variants(self, image_data): + image = Image.open(BytesIO(image_data)).convert("RGB") + gray = image.convert("L") + base_scale = max(2, int(SESSION_NAME_OCR_SCALE)) + extra_scale = max(base_scale, int(SESSION_NAME_OCR_EXTRA_SCALE)) + + enlarged = gray.resize( + (gray.width * base_scale, gray.height * base_scale), + resample=Image.Resampling.LANCZOS, + ) + contrast = cv2.equalizeHist(np.array(enlarged)) + binary = cv2.threshold(contrast, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] + binary_inv = cv2.threshold(contrast, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1] + + extra_enlarged = gray.resize( + (gray.width * extra_scale, gray.height * extra_scale), + resample=Image.Resampling.LANCZOS, + ) + extra_contrast = cv2.equalizeHist(np.array(extra_enlarged)) + + return [ + ("name_crop", image_data), + (f"name_orig_{base_scale}x", self._encode_image(enlarged)), + (f"name_eq_{base_scale}x", self._encode_image(Image.fromarray(contrast))), + (f"name_bin_{base_scale}x", self._encode_image(Image.fromarray(binary))), + (f"name_bin_inv_{base_scale}x", self._encode_image(Image.fromarray(binary_inv))), + (f"name_orig_{extra_scale}x", self._encode_image(extra_enlarged)), + (f"name_eq_{extra_scale}x", self._encode_image(Image.fromarray(extra_contrast))), + ] + + def _recognize_session_name(self, image_data, scene): + trace_id = new_trace_id("ocr") + for variant_name, variant_bytes in self._build_session_name_variants(image_data): + lines = self._normalize_lines( + self._provider_recognize(variant_bytes, scene=f"{scene}_{variant_name}"), + min_len=1, + ) + if lines: + log_event("INFO", "ocr", "ocr.session_name", trace_id, "recognize", "ok", "会话名识别成功", extra={"scene": scene, "variant": variant_name, "line_count": len(lines)}) + return lines + log_event("INFO", "ocr", "ocr.session_name", trace_id, "recognize", "failed", "会话名识别为空", reason="empty_result", extra={"scene": scene}) + return [] + + def _recognize_session_title(self, image_data, scene): + trace_id = new_trace_id("ocr") + lines = self._provider_recognize(image_data, scene=scene) + normalized = self._normalize_lines(lines, min_len=1) + if normalized: + log_event("INFO", "ocr", "ocr.session_title", trace_id, "recognize", "ok", "会话标题识别成功", extra={"scene": scene, "line_count": len(normalized)}) + else: + log_event("INFO", "ocr", "ocr.session_title", trace_id, "recognize", "failed", "会话标题识别为空", reason="empty_result", extra={"scene": scene}) + return normalized + + def recognize_session_name(self, image_data, scene="session_name"): + return self._recognize_session_name(image_data, scene=scene) + + def recognize_session_title(self, image_data, scene="session_title"): + return self._recognize_session_title(image_data, scene=scene) + + def recognize(self, image_data, scene="generic", mode="generic"): + trace_id = new_trace_id("ocr") + if mode == "session_name": + return self.recognize_session_name(image_data, scene=scene) + if mode == "session_title": + return self.recognize_session_title(image_data, scene=scene) + lines = self._normalize_lines(self._provider_recognize(image_data, scene=scene), min_len=1) + log_event("INFO", "ocr", "ocr.generic", trace_id, "recognize", "ok", "通用OCR识别完成", extra={"scene": scene, "line_count": len(lines)}) + return lines diff --git a/app/infrastructure/service/wechat/screenshot.py b/app/infrastructure/service/wechat/screenshot.py new file mode 100644 index 0000000..46e3e19 --- /dev/null +++ b/app/infrastructure/service/wechat/screenshot.py @@ -0,0 +1,314 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Dict + +import cv2 +import numpy as np +from PIL import ImageGrab + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import ( + CHAT_CAPTURE_HEIGHT, + CHAT_CAPTURE_LEFT_OFFSET, + CHAT_CAPTURE_TOP_OFFSET, + CHAT_CAPTURE_WIDTH, + CONTACT_LIST_BOTTOM_OFFSET, + CONTACT_LIST_LEFT_OFFSET, + CONTACT_LIST_TOP_OFFSET, + CONTACT_ROW_WIDTH, + SESSION_NAME_HEIGHT, + SESSION_NAME_LEFT_OFFSET, + SESSION_NAME_TOP_OFFSET, + SESSION_NAME_WIDTH, + TITLE_OCR_AREA_HEIGHT, + TITLE_OCR_AREA_LEFT_OFFSET, + TITLE_OCR_AREA_TOP_OFFSET, + TITLE_OCR_AREA_WIDTH, +) + + +@dataclass +class CaptureBox: + left: int + top: int + right: int + bottom: int + + @property + def width(self) -> int: + return self.right - self.left + + @property + def height(self) -> int: + return self.bottom - self.top + + def as_tuple(self): + return (self.left, self.top, self.right, self.bottom) + + def as_dict(self) -> Dict[str, int]: + return { + "left": self.left, + "top": self.top, + "right": self.right, + "bottom": self.bottom, + "width": self.width, + "height": self.height, + } + + +class ScreenshotService: + def build_box(self, left: int, top: int, width: int, height: int) -> CaptureBox: + return CaptureBox( + left=int(left), + top=int(top), + right=int(left + width), + bottom=int(top + height), + ) + + def build_box_from_window(self, window_rect: dict, left_offset: int, top_offset: int, width: int, height: int) -> CaptureBox: + return self.build_box( + left=window_rect["left"] + int(left_offset), + top=window_rect["top"] + int(top_offset), + width=int(width), + height=int(height), + ) + + def build_contact_list_box(self, window_rect: dict, left_offset: int, top_offset: int, width: int, bottom_offset: int) -> CaptureBox: + left = window_rect["left"] + int(left_offset) + top = window_rect["top"] + int(top_offset) + right = left + int(width) + bottom = window_rect["bottom"] - int(bottom_offset) + return CaptureBox(left=left, top=top, right=right, bottom=bottom) + + def is_valid_box(self, box: CaptureBox) -> bool: + return box.right > box.left and box.bottom > box.top + + def capture_box(self, left: int, top: int, width: int, height: int): + box = self.build_box(left, top, width, height) + if not self.is_valid_box(box): + raise ValueError(f"invalid capture box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def capture_from_window(self, window_rect: dict, left_offset: int, top_offset: int, width: int, height: int): + box = self.build_box_from_window(window_rect, left_offset, top_offset, width, height) + if not self.is_valid_box(box): + raise ValueError(f"invalid window capture box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def capture_contact_list(self, window_rect: dict, left_offset: int, top_offset: int, width: int, bottom_offset: int): + box = self.build_contact_list_box(window_rect, left_offset, top_offset, width, bottom_offset) + if not self.is_valid_box(box): + raise ValueError(f"invalid contact list box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def get_contact_list_box(self, window_rect: dict) -> CaptureBox: + return self.build_contact_list_box( + window_rect, + left_offset=CONTACT_LIST_LEFT_OFFSET, + top_offset=CONTACT_LIST_TOP_OFFSET, + width=CONTACT_ROW_WIDTH, + bottom_offset=CONTACT_LIST_BOTTOM_OFFSET, + ) + + def capture_contact_list_default(self, window_rect: dict): + trace_id = new_trace_id("capture") + box = self.get_contact_list_box(window_rect) + log_event("INFO", "capture", "capture.contact_list", trace_id, "capture", "ok", "截图会话列表区域", extra=box.as_dict()) + return self.capture_contact_list( + window_rect, + left_offset=CONTACT_LIST_LEFT_OFFSET, + top_offset=CONTACT_LIST_TOP_OFFSET, + width=CONTACT_ROW_WIDTH, + bottom_offset=CONTACT_LIST_BOTTOM_OFFSET, + ) + + def get_session_title_box(self, window_rect: dict) -> CaptureBox: + return self.build_box_from_window( + window_rect, + left_offset=TITLE_OCR_AREA_LEFT_OFFSET, + top_offset=TITLE_OCR_AREA_TOP_OFFSET, + width=TITLE_OCR_AREA_WIDTH, + height=TITLE_OCR_AREA_HEIGHT, + ) + + def capture_session_title(self, window_rect: dict): + trace_id = new_trace_id("capture") + box = self.get_session_title_box(window_rect) + log_event("INFO", "capture", "capture.session_title", trace_id, "capture", "ok", "截图会话标题区域", extra=box.as_dict()) + return self.capture_area_from_box(box) + + def get_chat_capture_box(self, window_rect: dict) -> CaptureBox: + base_height = max(120, CHAT_CAPTURE_HEIGHT) + max_height = max(base_height, window_rect["height"] - CHAT_CAPTURE_TOP_OFFSET) + return self.build_box_from_window( + window_rect, + left_offset=CHAT_CAPTURE_LEFT_OFFSET, + top_offset=CHAT_CAPTURE_TOP_OFFSET, + width=CHAT_CAPTURE_WIDTH, + height=max_height, + ) + + def capture_chat_area(self, window_rect: dict): + trace_id = new_trace_id("capture") + box = self.get_chat_capture_box(window_rect) + image = self.capture_area_from_box(box) + chat_bottom = self._detect_chat_bottom_by_binary_merge(image) + if chat_bottom is not None: + image = image.crop((0, 0, image.size[0], chat_bottom)) + extra = box.as_dict() + extra["dynamic_bottom"] = chat_bottom or "" + extra["final_width"] = image.size[0] + extra["final_height"] = image.size[1] + log_event("INFO", "capture", "capture.chat_area", trace_id, "capture", "ok", "截图聊天区域", extra=extra) + return image + + def crop_session_name(self, row_img): + return self.crop_from_image( + row_img, + left=SESSION_NAME_LEFT_OFFSET, + top=SESSION_NAME_TOP_OFFSET, + width=SESSION_NAME_WIDTH, + height=SESSION_NAME_HEIGHT, + ) + + def capture_area_from_box(self, box: CaptureBox): + if not self.is_valid_box(box): + raise ValueError(f"invalid capture box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def _build_merged_binary_array(self, image_obj): + arr = np.array(image_obj.convert("RGB")) + gray = cv2.cvtColor(arr, cv2.COLOR_RGB2GRAY) + blurred = cv2.GaussianBlur(gray, (5, 5), 0) + _, binary_inv = cv2.threshold(blurred, 248, 255, cv2.THRESH_BINARY_INV) + adaptive_inv = cv2.adaptiveThreshold( + blurred, + 255, + cv2.ADAPTIVE_THRESH_GAUSSIAN_C, + cv2.THRESH_BINARY_INV, + 13, + 1, + ) + merged = cv2.bitwise_or(binary_inv, adaptive_inv) + kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 1)) + merged = cv2.morphologyEx(merged, cv2.MORPH_CLOSE, kernel, iterations=1) + merged = cv2.morphologyEx(merged, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))) + return merged + + def _detect_chat_bottom_by_binary_merge(self, image_obj) -> int | None: + if image_obj is None: + return None + merged = self._build_merged_binary_array(image_obj) + img_h, img_w = merged.shape[:2] + start_y = max(0, int(img_h * 0.55)) + roi = merged[start_y:, :] + if roi.size == 0: + return None + row_density = (roi > 0).mean(axis=1) + min_run = max(28, int(img_h * 0.045)) + dense_limit = 0.018 + run_start = None + candidates = [] + for idx, density in enumerate(row_density.tolist() + [1.0]): + is_blank = density <= dense_limit + if is_blank and run_start is None: + run_start = idx + continue + if is_blank: + continue + if run_start is not None: + run_end = idx + if run_end - run_start >= min_run: + top = start_y + run_start + bottom = start_y + run_end + if top >= img_h * 0.58 and bottom <= img_h - 8: + candidates.append((top, bottom)) + run_start = None + if not candidates: + return self._detect_chat_bottom(image_obj) + top, _ = candidates[-1] + bottom = max(120, int(top - 4)) + if bottom >= img_h - 20: + return None + return bottom + + def crop_from_image(self, image_obj, left: int, top: int, width: int, height: int): + if image_obj is None: + return None + img_w, img_h = image_obj.size + crop_left = min(max(0, int(left)), img_w) + crop_top = min(max(0, int(top)), img_h) + crop_right = min(img_w, crop_left + max(1, int(width))) + crop_bottom = min(img_h, crop_top + max(1, int(height))) + if crop_right <= crop_left or crop_bottom <= crop_top: + return None + return image_obj.crop((crop_left, crop_top, crop_right, crop_bottom)) + + def _detect_chat_bottom(self, image_obj) -> int | None: + if image_obj is None: + return None + img_rgb = np.array(image_obj.convert("RGB")) + if img_rgb.size == 0: + return None + gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY) + img_h, img_w = gray.shape[:2] + start_y = max(0, int(img_h * 0.55)) + focus = gray[start_y:, :] + if focus.size == 0: + return None + row_mean = focus.mean(axis=1) + row_std = focus.std(axis=1) + bright_mask = (row_mean >= 242) & (row_std <= 18) + run = self._find_last_run(bright_mask, min_len=max(18, int(img_h * 0.035))) + candidate_y = None + if run is not None: + run_top, run_bottom = run + candidate_y = start_y + run_top + edge_img = cv2.Canny(focus, 40, 120) + edge_strength = edge_img.mean(axis=1) + if len(row_mean) >= 2: + transition = np.abs(np.diff(row_mean, prepend=row_mean[0])) + else: + transition = np.zeros_like(row_mean) + score = edge_strength * 1.8 + transition * 2.4 + score[: max(8, int(len(score) * 0.15))] = 0 + if candidate_y is not None: + local_limit = max(0, candidate_y - start_y + 4) + score[local_limit:] = 0 + best_idx = int(np.argmax(score)) if score.size else -1 + best_score = float(score[best_idx]) if best_idx >= 0 else 0.0 + edge_candidate = None + if best_idx >= 0 and best_score >= 12.0: + edge_candidate = start_y + best_idx + final_y = None + if candidate_y is not None and edge_candidate is not None: + if abs(candidate_y - edge_candidate) <= 28: + final_y = min(candidate_y, edge_candidate) + else: + final_y = candidate_y + else: + final_y = candidate_y if candidate_y is not None else edge_candidate + if final_y is None: + return None + final_y = max(120, min(img_h, int(final_y - 6))) + if final_y >= img_h - 20: + return None + return final_y + + def _find_last_run(self, mask: np.ndarray, min_len: int) -> tuple[int, int] | None: + run_start = None + best = None + for idx, flag in enumerate(mask.tolist() + [False]): + if flag and run_start is None: + run_start = idx + continue + if flag: + continue + if run_start is None: + continue + run_len = idx - run_start + if run_len >= min_len: + best = (run_start, idx) + run_start = None + return best diff --git a/app/infrastructure/service/wechat/session_service.py b/app/infrastructure/service/wechat/session_service.py new file mode 100644 index 0000000..758fea6 --- /dev/null +++ b/app/infrastructure/service/wechat/session_service.py @@ -0,0 +1,288 @@ +from __future__ import annotations + +from dataclasses import dataclass +from io import BytesIO +import json +import os +from typing import Callable + +import cv2 +import numpy as np + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.chat_snapshot_analyzer import analyze_pil_image +from app.infrastructure.service.wechat.unread_session_analyzer import UnreadSessionAnalyzer +from app.infrastructure.service.wechat.config import ( + BLOCKED_SESSION_KEYWORDS, + CONTACT_ROW_HEIGHT, + OCR_SAVE_DIR, + OCR_SAVE_IMAGES, + SESSION_NAME_HEIGHT, + SESSION_NAME_LEFT_OFFSET, + SESSION_NAME_TOP_OFFSET, + SESSION_NAME_WIDTH, + UI_NOISE_KEYWORDS, +) + + + +# 会话扫描结果数据类,包含所有会话列表和未读会话列表 +@dataclass +class SessionScanResult: + sessions: list[dict] + unread_sessions: list[dict] + + +# 聊天快照分析结果数据类 +@dataclass +class ChatAnalyzeResult: + ok: bool + file_name: str + latest_text: str + confidence: str | float + bubble_side: str + screenshot_path: str + + +# 微信会话服务类,处理会话列表扫描、红点检测和聊天截图分析 +class WechatSessionService: + def __init__(self, screenshot_service, ocr_service, save_debug_image: Callable | None = None): + self.screenshot = screenshot_service + self.ocr = ocr_service + self.save_debug_image = save_debug_image + self._session_title_cache = {"value": "", "ts": 0.0} + self.unread_analyzer = UnreadSessionAnalyzer() + log_event("INFO", "bot", "bot.session_service.init", new_trace_id("bot"), "init", "ok", "会话服务初始化完成") + +# 根据窗口矩形计算会话列表区域的位置 + def get_contact_list_rect(self, window_rect): + box = self.screenshot.get_contact_list_box(window_rect) + return { + 'left': box.left, + 'top': box.top, + 'right': box.right, + 'bottom': box.bottom, + } + +# 从会话行图片中裁剪出会话名称区域 + def extract_session_name_image(self, row_img): + return self.screenshot.crop_session_name(row_img) + +# 检测会话列表中的所有红点位置(红色圆点表示未读消息) + def detect_red_dots(self, window_rect): + contact_rect = self.get_contact_list_rect(window_rect) + screenshot = self.screenshot.capture_contact_list_default(window_rect) + return self.unread_analyzer.detect_red_dots(contact_rect, screenshot) + +# 检测单行会话图片中是否有未读红点标记(严格模式) + def row_has_red_dot(self, row_img, relaxed=False): + return self.unread_analyzer.row_has_red_dot(row_img, relaxed=relaxed) + +# 检测单行会话图片中是否有未读红点标记(宽松模式) + def row_has_red_dot_weak(self, row_img): + return self.unread_analyzer.row_has_red_dot_weak(row_img) + +# 扫描所有会话行,识别哪些有未读消息标记 + def get_all_sessions_with_unread(self, window_rect, round_count): + trace_id = new_trace_id("bot") + contact_rect = self.get_contact_list_rect(window_rect) + screenshot = self.screenshot.capture_contact_list_default(window_rect) + + sessions, unread_sessions = self.unread_analyzer.get_all_sessions_with_unread( + contact_rect=contact_rect, + screenshot=screenshot, + round_count=round_count, + save_debug_image=lambda image_obj, filename: self._save_debug_image(image_obj, filename), + ) + self._save_session_scan_debug(round_count=round_count, sessions=sessions, unread_sessions=unread_sessions, contact_rect=contact_rect) + log_event("INFO", "bot", "bot.session_scan", trace_id, "scan", "ok", "会话扫描完成", extra={"round": int(round_count), "total": len(sessions), "unread": len(unread_sessions)}) + return SessionScanResult(sessions=sessions, unread_sessions=unread_sessions) + +# 标准化文本用于匹配:去除空格并转为小写 + def normalize_match_text(self, text): + if not text: + return "" + text = str(text).strip().lower() + return "".join(ch for ch in text if not ch.isspace()) + +# 生成会话屏蔽关键字的唯一标识key,用于缓存比对 + def make_block_key(self, text): + normalized = self.normalize_match_text(text) + if not normalized: + return "" + return f"title:{normalized}" + +# 重置当前会话标题缓存 + def reset_session_title_cache(self): + self._session_title_cache = {"value": "", "ts": 0.0} + +# 通过OCR识别当前会话窗口的标题文字 + def get_session_title_by_ocr(self, window_rect): + trace_id = new_trace_id("bot") + try: + if not window_rect: + return "" + area_name = "main" + screenshot = self.screenshot.capture_session_title(window_rect) + img_bytes = BytesIO() + screenshot.save(img_bytes, format='PNG') + valid = self.ocr.recognize_session_title(img_bytes.getvalue(), scene=f"session_title_{area_name}") + if valid: + title = valid[0] + log_event("INFO", "bot", "bot.session_title", trace_id, "ocr", "ok", "会话标题识别成功", extra={"title": title}) + return title + log_event("INFO", "bot", "bot.session_title", trace_id, "ocr", "failed", "会话标题识别为空", reason="empty_result") + return "" + except Exception as e: + log_event("ERROR", "bot", "bot.session_title", trace_id, "ocr", "failed", "会话标题识别异常", reason="ocr_error", extra={"error": str(e)}) + return "" + +# 获取当前会话标题,优先使用缓存避免频繁OCR调用 + def get_current_session_title(self, window_rect): + try: + import time + + now_ts = time.time() + cached_title = (self._session_title_cache.get("value") or "").strip() + cached_ts = float(self._session_title_cache.get("ts") or 0.0) + if cached_title and now_ts - cached_ts <= 1.2: + return cached_title + + title = (self.get_session_title_by_ocr(window_rect) or "").strip() + if title and title not in UI_NOISE_KEYWORDS: + self._session_title_cache = {"value": title, "ts": now_ts} + return title + except Exception as e: + return "" + +# 判断当前选中的会话是否应被跳过(点击后标题检查阶段) + def should_skip_current_session(self, window_rect, session, blocked_row_cache, save_blocked_row_cache: Callable): + title = self.get_current_session_title(window_rect) + block_key = self.make_block_key(title) + if block_key and block_key in blocked_row_cache: + return True + normalized_title = self.normalize_match_text(title) + for keyword in BLOCKED_SESSION_KEYWORDS: + if self.normalize_match_text(keyword) in normalized_title: + if block_key: + blocked_row_cache[block_key] = title or keyword + save_blocked_row_cache() + return True + return False + +# 比较两个会话名称是否匹配(考虑模糊匹配和大小写) + def is_same_session(self, expected_session, current_session): + expected = self.normalize_match_text(expected_session) + current = self.normalize_match_text(current_session) + if not expected or not current: + return False + return expected in current or current in expected + +# 根据OCR识别结果判断会话列表中的会话是否应被跳过 + def should_skip_session_by_ocr(self, session, blocked_row_cache, save_blocked_row_cache: Callable): + image_obj = session.get('row_img') + if image_obj is None: + return False + try: + name_img = self.extract_session_name_image(image_obj) + if name_img is None: + return False + + crop_box = { + 'left': SESSION_NAME_LEFT_OFFSET, + 'top': SESSION_NAME_TOP_OFFSET, + 'width': SESSION_NAME_WIDTH, + 'height': SESSION_NAME_HEIGHT, + 'row_w': image_obj.size[0], + 'row_h': image_obj.size[1], + 'crop_w': name_img.size[0], + 'crop_h': name_img.size[1], + } + if OCR_SAVE_IMAGES: + file_name = f"row_{int(session.get('row_idx', 0)):03d}_name_raw.png" + self._save_debug_image(name_img, os.path.join('sessions', 'name_ocr', file_name)) + + img_bytes = BytesIO() + name_img.save(img_bytes, format='PNG') + lines = self.ocr.recognize_session_name(img_bytes.getvalue(), scene=f"session_row_{session.get('row_idx')}") + line_text = ' '.join(lines) + session['list_ocr_title'] = line_text + normalized_text = self.normalize_match_text(line_text) + block_key = self.make_block_key(line_text) + if block_key and block_key in blocked_row_cache: + return True + for keyword in BLOCKED_SESSION_KEYWORDS: + if self.normalize_match_text(keyword) in normalized_text: + if block_key: + blocked_row_cache[block_key] = line_text or keyword + save_blocked_row_cache() + return True + return False + except Exception as e: + return False + +# 分析点击后的聊天区域截图,提取最新消息文本并返回分析结果 + def analyze_clicked_session(self, window_rect, round_count, row_idx): + trace_id = new_trace_id("bot") + chat_box = self.screenshot.get_chat_capture_box(window_rect) + if not self.screenshot.is_valid_box(chat_box): + log_event("WARNING", "bot", "bot.chat_analyze", trace_id, "capture", "failed", "聊天区截图区域无效", reason="invalid_box") + return ChatAnalyzeResult(ok=False, file_name='', latest_text='', confidence='', bubble_side='', screenshot_path='') + + screenshot = self.screenshot.capture_chat_area(window_rect) + file_name = f"round_{round_count:04d}_row_{row_idx:03d}_chat.png" + rel_path = os.path.join('sessions', 'clicked', file_name) + self._save_debug_image(screenshot, rel_path) + result = analyze_pil_image(screenshot, stem=os.path.splitext(file_name)[0], file_name=file_name) + latest_text = (getattr(result, 'latest_text', None) or '').strip() + confidence = getattr(result, 'confidence', '') + bubble_side = getattr(result, 'bubble_side', '') + log_event("INFO", "bot", "bot.chat_analyze", trace_id, "analyze", "ok", "聊天截图分析完成", extra={"round": int(round_count), "row_idx": int(row_idx), "has_text": bool(latest_text), "bubble_side": bubble_side or "", "confidence": confidence}) + return ChatAnalyzeResult( + ok=bool(latest_text), + file_name=file_name, + latest_text=latest_text, + confidence=confidence, + bubble_side=bubble_side, + screenshot_path=rel_path, + ) + +# 保存会话扫描调试数据(类似聊天分析输出 result.json) + def _save_session_scan_debug(self, round_count: int, sessions: list[dict], unread_sessions: list[dict], contact_rect: dict): + if not OCR_SAVE_IMAGES: + return + try: + debug_dir = os.path.join(OCR_SAVE_DIR, 'sessions', 'scan_debug') + os.makedirs(debug_dir, exist_ok=True) + file_name = f"round_{round_count:04d}_scan.json" + file_path = os.path.join(debug_dir, file_name) + rows = [] + for session in sessions: + rows.append({ + 'row_idx': session.get('row_idx'), + 'has_red_dot': bool(session.get('has_red_dot')), + 'has_red_by_global': bool(session.get('has_red_by_global')), + 'has_red_by_row': bool(session.get('has_red_by_row')), + 'has_red_by_row_weak': bool(session.get('has_red_by_row_weak')), + 'click_x': session.get('click_x'), + 'click_y': session.get('click_y'), + 'list_ocr_title': session.get('list_ocr_title', ''), + }) + payload = { + 'round': int(round_count), + 'contact_rect': contact_rect, + 'total_sessions': len(sessions), + 'unread_count': len(unread_sessions), + 'unread_rows': [s.get('row_idx') for s in unread_sessions], + 'rows': rows, + } + with open(file_path, 'w', encoding='utf-8') as f: + json.dump(payload, f, ensure_ascii=False, indent=2) + except Exception as e: + pass + +# 保存调试图片的内部方法 + def _save_debug_image(self, image_obj, filename): + if not self.save_debug_image: + return + self.save_debug_image(image_obj, filename) diff --git a/app/infrastructure/service/wechat/unread_session_analyzer.py b/app/infrastructure/service/wechat/unread_session_analyzer.py new file mode 100644 index 0000000..2b5c3d7 --- /dev/null +++ b/app/infrastructure/service/wechat/unread_session_analyzer.py @@ -0,0 +1,258 @@ +from __future__ import annotations + +import cv2 +import numpy as np + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import CONTACT_ROW_HEIGHT + + + +class UnreadSessionAnalyzer: + def __init__(self): + pass + + def detect_red_dots(self, contact_rect: dict, screenshot) -> list[dict]: + trace_id = new_trace_id("bot") + try: + img_np = np.array(screenshot) + hsv = cv2.cvtColor(cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR), cv2.COLOR_BGR2HSV) + mask = cv2.inRange(hsv, np.array([0, 80, 80]), np.array([12, 255, 255])) + cv2.inRange(hsv, np.array([168, 80, 80]), np.array([180, 255, 255])) + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + contact_width = contact_rect['right'] - contact_rect['left'] + red_dots_raw = [] + for contour in contours: + area = cv2.contourArea(contour) + if 12 < area < 220: + perimeter = cv2.arcLength(contour, True) + if perimeter <= 0: + continue + circularity = 4 * np.pi * area / (perimeter * perimeter) + if circularity <= 0.45: + continue + moments = cv2.moments(contour) + if moments['m00'] == 0: + continue + cx = int(moments['m10'] / moments['m00']) + cy = int(moments['m01'] / moments['m00']) + if cx > contact_width * 0.1: + red_dots_raw.append({'x': contact_rect['left'] + cx, 'y': contact_rect['top'] + cy, 'rel_y': cy}) + + snapped_map = {} + for dot in red_dots_raw: + row_idx = int(round((dot['y'] - contact_rect['top']) / max(1, CONTACT_ROW_HEIGHT))) + snapped_y = int(contact_rect['top'] + row_idx * CONTACT_ROW_HEIGHT + CONTACT_ROW_HEIGHT // 2) + if row_idx not in snapped_map: + snapped_map[row_idx] = {'x': dot['x'], 'y': snapped_y, 'row_idx': row_idx} + + red_dots_final = sorted(snapped_map.values(), key=lambda d: d['y']) + log_event("INFO", "bot", "bot.unread.detect", trace_id, "detect", "ok", "红点检测完成", extra={"dot_count": len(red_dots_final)}) + return red_dots_final + except Exception as e: + log_event("ERROR", "bot", "bot.unread.detect", trace_id, "detect", "failed", "红点检测异常", reason="detect_error", extra={"error": str(e)}) + return [] + + def row_has_red_dot(self, row_img, relaxed: bool = False) -> bool: + try: + row_np = np.array(row_img) + h, w = row_np.shape[:2] + if h < 30 or w < 100: + return False + + margin_left = max(6, int(w * 0.012)) + avatar_size = int(h * 0.72) + avatar_y = (h - avatar_size) // 2 + avatar_x = margin_left + + avatar_cx = avatar_x + avatar_size / 2.0 + avatar_cy = avatar_y + avatar_size / 2.0 + avatar_r = avatar_size * 0.50 + + probe_x1 = avatar_x + int(avatar_size * 0.42) + probe_y1 = max(0, avatar_y - int(avatar_size * 0.10)) + probe_x2 = min(w, avatar_x + int(avatar_size * 1.00)) + probe_y2 = min(h, avatar_y + int(avatar_size * 0.36)) + + if probe_x2 <= probe_x1 or probe_y2 <= probe_y1: + return False + + probe = row_np[probe_y1:probe_y2, probe_x1:probe_x2] + if probe.size == 0: + return False + + probe_hsv = cv2.cvtColor(probe, cv2.COLOR_RGB2HSV) + mask1 = cv2.inRange(probe_hsv, np.array([0, 115, 125]), np.array([12, 255, 255])) + mask2 = cv2.inRange(probe_hsv, np.array([168, 115, 125]), np.array([180, 255, 255])) + mask = cv2.bitwise_or(mask1, mask2) + + kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) + mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel) + mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel) + + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + if not contours: + self.debug_log(f"row_red w={w} h={h} candidates=0") + return False + + candidates = [] + pw = probe_x2 - probe_x1 + ph = probe_y2 - probe_y1 + + for cnt in contours: + area = cv2.contourArea(cnt) + if not (8 <= area <= 260): + continue + + x, y, cw, ch = cv2.boundingRect(cnt) + peri = cv2.arcLength(cnt, True) + if peri <= 0: + continue + + circ = 4 * np.pi * area / (peri * peri) + ar = max(cw, ch) / max(1, min(cw, ch)) + + cx = x + cw / 2.0 + cy = y + ch / 2.0 + gx = probe_x1 + cx + gy = probe_y1 + cy + + in_upper_right = cx > pw * 0.30 and cx < pw * 0.90 and cy < ph * 0.68 + near_avatar_corner = ( + gx >= avatar_x + avatar_size * 0.66 and + gx <= avatar_x + avatar_size * 1.00 and + gy >= avatar_y - avatar_size * 0.06 and + gy <= avatar_y + avatar_size * 0.24 + ) + if not (in_upper_right and near_avatar_corner): + continue + + comp_mask = np.zeros(mask.shape, dtype=np.uint8) + cv2.drawContours(comp_mask, [cnt], -1, 255, thickness=-1) + ys, xs = np.where(comp_mask > 0) + if len(xs) == 0: + continue + + global_xs = xs + probe_x1 + global_ys = ys + probe_y1 + d2 = (global_xs - avatar_cx) ** 2 + (global_ys - avatar_cy) ** 2 + outside_ratio = float(np.count_nonzero(d2 > (avatar_r * 0.92) ** 2)) / len(d2) + + min_area = 10 if relaxed else 14 + min_small_outside = 0.18 if relaxed else 0.25 + min_small_circ = 0.72 if relaxed else 0.82 + min_match_score = 7 if relaxed else 8 + min_match_outside = 0.10 if relaxed else 0.15 + + if area < min_area: + continue + if area < 20 and outside_ratio < min_small_outside: + continue + if gy > avatar_y + avatar_size * 0.24: + continue + if area < 20 and circ < min_small_circ: + continue + if area < 20 and ar > 1.20: + continue + + if area >= 120: + shape_ok = circ > 0.26 and ar < 2.6 + elif area >= 28: + shape_ok = circ > 0.45 and ar < 1.9 + else: + shape_ok = circ > 0.82 and ar <= 1.20 and outside_ratio >= 0.25 + if not shape_ok: + continue + + white_ratio = 0.0 + if cw >= 7 and ch >= 7: + inner = probe[max(0, y):min(probe.shape[0], y + ch), max(0, x):min(probe.shape[1], x + cw)] + if inner.size > 0: + gray = cv2.cvtColor(inner, cv2.COLOR_RGB2GRAY) + white_ratio = np.count_nonzero(gray > 190) / gray.size + + score = 3 + if area >= 14: + score += 2 + if circ > 0.85: + score += 2 + elif circ > 0.70: + score += 1 + if ar <= 1.15: + score += 2 + elif ar <= 1.35: + score += 1 + if outside_ratio >= 0.35: + score += 4 + elif outside_ratio >= 0.25: + score += 3 + elif outside_ratio >= 0.15: + score += 1 + if 0.05 <= white_ratio <= 0.60: + score += 1 + + candidates.append({ + 'score': score, + 'area': area, + 'circ': circ, + 'ar': ar, + 'outside_ratio': outside_ratio, + 'white_ratio': white_ratio, + 'center': (gx, gy), + 'bbox': (probe_x1 + x, probe_y1 + y, cw, ch), + 'min_match_score': min_match_score, + 'min_match_outside': min_match_outside, + }) + + if not candidates: + return False + + best = max(candidates, key=lambda x: x['score']) + matched = best['score'] >= best['min_match_score'] and best['outside_ratio'] >= best['min_match_outside'] + return matched + except Exception as e: + return False + + def row_has_red_dot_weak(self, row_img) -> bool: + return self.row_has_red_dot(row_img, relaxed=True) + + def get_all_sessions_with_unread(self, contact_rect: dict, screenshot, round_count: int, save_debug_image: Callable | None = None) -> tuple[list[dict], list[dict]]: + trace_id = new_trace_id("bot") + red_dots = self.detect_red_dots(contact_rect, screenshot) + red_y_list = [dot['y'] for dot in red_dots] + row_count = max(1, int((contact_rect['bottom'] - contact_rect['top']) / max(1, CONTACT_ROW_HEIGHT))) + sessions = [] + + for row_idx in range(row_count): + top = int(row_idx * CONTACT_ROW_HEIGHT) + bottom = int(min((row_idx + 1) * CONTACT_ROW_HEIGHT, screenshot.height)) + if bottom <= top: + continue + row_img = screenshot.crop((0, top, screenshot.width, bottom)) + center_y = int(contact_rect['top'] + row_idx * CONTACT_ROW_HEIGHT + CONTACT_ROW_HEIGHT // 2) + has_red_by_global = any(abs(center_y - y) <= max(7, CONTACT_ROW_HEIGHT // 4) for y in red_y_list) + has_red_by_row = self.row_has_red_dot(row_img) + has_red_by_row_weak = self.row_has_red_dot_weak(row_img) if has_red_by_global and not has_red_by_row else has_red_by_row + has_red = has_red_by_row or (has_red_by_global and has_red_by_row_weak) + row_name = f"round_{round_count:04d}_row_{row_idx:03d}.png" + if save_debug_image: + save_debug_image(row_img, f"sessions/all/{row_name}") + if has_red: + save_debug_image(row_img, f"sessions/unread/{row_name}") + sessions.append({ + 'row_idx': row_idx, + 'has_red_dot': has_red, + 'has_red_by_global': has_red_by_global, + 'has_red_by_row': has_red_by_row, + 'has_red_by_row_weak': has_red_by_row_weak, + 'click_x': int((contact_rect['left'] + contact_rect['right']) // 2), + 'click_y': center_y, + 'row_img': row_img.copy(), + }) + + unread_sessions = [s for s in sessions if s['has_red_dot']] + global_hits = sum(1 for s in sessions if s['has_red_by_global']) + row_hits = sum(1 for s in sessions if s['has_red_by_row']) + row_weak_hits = sum(1 for s in sessions if s['has_red_by_row_weak']) + log_event("INFO", "bot", "bot.unread.scan", trace_id, "scan", "ok", "未读会话扫描完成", extra={"round": int(round_count), "rows": len(sessions), "unread": len(unread_sessions), "global_hits": global_hits, "row_hits": row_hits, "row_weak_hits": row_weak_hits}) + return sessions, unread_sessions diff --git a/app/infrastructure/wechat_multi_chat_bot copy.py.bak b/app/infrastructure/wechat_multi_chat_bot copy.py.bak new file mode 100644 index 0000000..17f90ea --- /dev/null +++ b/app/infrastructure/wechat_multi_chat_bot copy.py.bak @@ -0,0 +1,504 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +import ctypes # Windows窗口句柄相关API +import hashlib # 文本去重哈希 +import logging # 日志模块 +import os # 文件目录操作 +import re # 正则过滤文本 +import time # 休眠/节流 +from datetime import datetime # 时间戳命名与日志辅助 +from io import BytesIO # 图片转字节流给OCR + +import cv2 # 图像处理 +import numpy as np # 数组/图像矩阵 +import pyautogui # 鼠标键盘自动化 +import pyperclip # 剪贴板粘贴发送文本 +import requests # 调用后端接口 +import uiautomation as auto # Windows UI 自动化 +from PIL import ImageGrab, Image # 截图与图像对象 + +from app.infrastructure.service.wechat.config import BAIDU_API_KEY, BAIDU_SECRET_KEY, BACKEND_URL, LOOP_INTERVAL, NO_REPLY_KEYWORDS, BLOCKED_SESSION_KEYWORDS, UI_NOISE_KEYWORDS, BOT_DEBUG_LOG, WECHAT_WINDOW_TARGET_WIDTH, WECHAT_WINDOW_TARGET_HEIGHT, WECHAT_WINDOW_TARGET_LEFT, WECHAT_WINDOW_TARGET_TOP, OCR_SAVE_IMAGES, OCR_SAVE_DIR # 机器人配置 +from app.infrastructure.service.wechat.ocr import BaiduOCR # 百度OCR封装 + +logging.basicConfig( # 配置全局日志 + level=logging.INFO, # 默认输出INFO及以上 + format="%(asctime)s - %(levelname)s - %(message)s", # 日志格式 + handlers=[ + logging.FileHandler("wechat_multi_chat_bot.log", encoding="utf-8"), # 写文件 + logging.StreamHandler() # 打终端 + ], +) +logger = logging.getLogger(__name__) # 当前模块日志器 + + +def debug_log(message): + if BOT_DEBUG_LOG: # 仅在调试开关开启时输出 + logger.info(f"[DEBUG] {message}") + + +class WechatMultiChatBot: + """微信自动回复机器人(UI自动化 + OCR + 规则/AI回复)。""" + + def __init__(self): + """初始化OCR、微信窗口句柄和运行期状态。""" + logger.info("[BOT] 初始化开始") # 生命周期日志 + self.ocr = BaiduOCR(BAIDU_API_KEY, BAIDU_SECRET_KEY) # OCR客户端 + self.wechat_window = None # 微信窗口对象 + self.find_wechat_window() # 启动即查找窗口 + self.seen_messages = {} # 去重缓存:contact_key -> hash set + self.processed_contacts = set() # 预留:已处理联系人集合 + self.running = False # 主循环运行状态 + logger.info("[BOT] 初始化完成") + + def find_wechat_window(self): + """查找微信主窗口;成功后执行窗口标准化。""" + logger.info("[WIN] 正在查找微信窗口") + self.wechat_window = auto.WindowControl(searchDepth=1, Name='微信') # 按窗口名查找 + if self.wechat_window.Exists(0, 0): # 立即探测是否存在 + logger.info("[WIN] 找到微信窗口") + self.normalize_wechat_window() # 找到后标准化尺寸 + return + logger.error("[WIN] 未找到微信窗口") + raise Exception("未找到微信窗口") + + def normalize_wechat_window(self): + """将微信窗口调整到预设位置和尺寸,保证识别区域稳定。""" + logger.info("[WIN] 开始标准化窗口大小和位置") + try: + self.wechat_window.SetActive() # 激活窗口 + time.sleep(0.25) # 等待激活稳定 + + hwnd = getattr(self.wechat_window, "NativeWindowHandle", 0) # 尝试取窗口句柄 + if hwnd: + user32 = ctypes.windll.user32 # Win32接口 + SWP_NOZORDER = 0x0004 # 不改变Z序 + SWP_NOACTIVATE = 0x0010 # 不抢前台焦点 + user32.SetWindowPos( + int(hwnd), # 目标窗口句柄 + 0, # hWndInsertAfter + int(WECHAT_WINDOW_TARGET_LEFT), # 目标左上x + int(WECHAT_WINDOW_TARGET_TOP), # 目标左上y + int(WECHAT_WINDOW_TARGET_WIDTH), # 目标宽度 + int(WECHAT_WINDOW_TARGET_HEIGHT), # 目标高度 + SWP_NOZORDER | SWP_NOACTIVATE, # 标志位 + ) + logger.info(f"[WIN] 句柄模式窗口标准化成功 hwnd={hwnd}") + else: + if hasattr(self.wechat_window, "MoveTo") and hasattr(self.wechat_window, "Resize"): # 兼容旧接口 + self.wechat_window.MoveTo(WECHAT_WINDOW_TARGET_LEFT, WECHAT_WINDOW_TARGET_TOP) # 移动窗口 + self.wechat_window.Resize(WECHAT_WINDOW_TARGET_WIDTH, WECHAT_WINDOW_TARGET_HEIGHT) # 调整尺寸 + logger.info("[WIN] MoveTo/Resize 模式窗口标准化成功") + else: + raise Exception("未获取到窗口句柄且不支持 MoveTo/Resize") + + time.sleep(0.35) # 等待窗口重排完成 + logger.info(f"[WIN] 标准化参数 left={WECHAT_WINDOW_TARGET_LEFT} top={WECHAT_WINDOW_TARGET_TOP} width={WECHAT_WINDOW_TARGET_WIDTH} height={WECHAT_WINDOW_TARGET_HEIGHT}") + debug_log(f"window_normalized=({WECHAT_WINDOW_TARGET_LEFT},{WECHAT_WINDOW_TARGET_TOP},{WECHAT_WINDOW_TARGET_WIDTH},{WECHAT_WINDOW_TARGET_HEIGHT})") + except Exception as e: + logger.warning(f"[WIN] 窗口标准化失败,继续按当前窗口运行: {e}") + + def get_window_rect(self): + try: + rect = self.wechat_window.BoundingRectangle # UIA矩形 + result = {'left': rect.left, 'top': rect.top, 'right': rect.right, 'bottom': rect.bottom, 'width': rect.right - rect.left, 'height': rect.bottom - rect.top} # 转字典 + debug_log(f"window_rect={result}") + return result + except Exception as e: + logger.warning(f"[WIN] 获取窗口位置失败: {e}") + return None + + def get_contact_list_rect(self, window_rect): + rect = {'left': window_rect['left'] + 10, 'top': window_rect['top'] + 50, 'right': window_rect['left'] + int(window_rect['width'] * 0.25) - 10, 'bottom': window_rect['bottom'] - 50} # 左侧会话列表区域 + debug_log(f"contact_rect={rect}") + return rect + + def detect_red_dots(self, window_rect): + logger.info("[DETECT] 开始检测红点") + contact_rect = self.get_contact_list_rect(window_rect) # 获取列表区域 + try: + screenshot = ImageGrab.grab(bbox=(contact_rect['left'], contact_rect['top'], contact_rect['right'], contact_rect['bottom'])) # 列表截图 + img_np = np.array(screenshot) # PIL -> numpy + img_bgr = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR) # RGB -> BGR + hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV) # BGR -> HSV + mask = cv2.inRange(hsv, np.array([0, 80, 80]), np.array([12, 255, 255])) + cv2.inRange(hsv, np.array([168, 80, 80]), np.array([180, 255, 255])) # 红色双区间 + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 查找连通域 + contact_width = contact_rect['right'] - contact_rect['left'] # 列表宽度 + red_dots_raw = [] # 原始红点 + for contour in contours: + area = cv2.contourArea(contour) # 面积过滤 + if 12 < area < 220: + perimeter = cv2.arcLength(contour, True) # 周长 + if perimeter > 0: + circularity = 4 * np.pi * area / (perimeter * perimeter) # 圆度 + if circularity > 0.45: + M = cv2.moments(contour) # 矩中心 + if M["m00"] != 0: + cx = int(M["m10"] / M["m00"]) # 中心x + cy = int(M["m01"] / M["m00"]) # 中心y + if cx > contact_width * 0.1: # 过滤左边缘噪声 + red_dots_raw.append({'x': contact_rect['left'] + cx, 'y': contact_rect['top'] + cy, 'rel_y': cy}) # 记录绝对坐标 + red_dots_grouped = [] # 按行合并后的红点 + debug_log(f"red_dots_raw={len(red_dots_raw)}") + used = set() # 已分组索引 + for i, dot in enumerate(red_dots_raw): + if i in used: + continue + group = [dot] # 当前分组 + for j, other in enumerate(red_dots_raw): + if j != i and j not in used and abs(dot['rel_y'] - other['rel_y']) < 50: # 同一行 + group.append(other) + used.add(j) + red_dots_grouped.append({'x': sum(d['x'] for d in group) // len(group), 'y': sum(d['y'] for d in group) // len(group)}) # 行中心 + used.add(i) + logger.info(f"[DETECT] 红点检测完成 grouped={len(red_dots_grouped)}") + debug_log(f"red_dots_grouped={len(red_dots_grouped)}") + return red_dots_grouped + except Exception as e: + logger.error(f"[DETECT] 检测红点失败: {e}") + return [] + + def click_contact_by_red_dot(self, red_dot, window_rect): + contact_rect = self.get_contact_list_rect(window_rect) # 计算左侧联系人列表区域 + click_x = (contact_rect['left'] + contact_rect['right']) // 2 # 点击联系人列表中线,避免点到红点本身 + click_y = red_dot['y'] # 使用红点纵坐标对应会话行 + logger.info(f"[ACTION] 点击联系人 x={click_x} y={click_y}") # 记录点击行为 + pyautogui.click(click_x, click_y) # 执行点击 + time.sleep(1.2) # 等待会话内容加载 + session_title = self.get_current_session_title() # 读取当前会话标题 + logger.info(f"[ACTION] 当前会话标题 title={session_title or '未知'}") # 输出标题用于排查 + time.sleep(1.0) # 再等待短时间,保证后续OCR稳定 + + def get_session_title_by_ocr(self): + try: + window_rect = self.get_window_rect() # 获取微信窗口坐标 + if not window_rect: + return "" # 窗口坐标不可用 + + title_areas = [ # 多个标题区域兜底,适配不同微信版本/缩放 + ( + window_rect['left'] + int(window_rect['width'] * 0.32), + window_rect['top'] + 6, + window_rect['right'] - int(window_rect['width'] * 0.30), + window_rect['top'] + max(40, int(window_rect['height'] * 0.085)), + ), + ( + window_rect['left'] + int(window_rect['width'] * 0.28), + window_rect['top'] + 4, + window_rect['right'] - int(window_rect['width'] * 0.24), + window_rect['top'] + max(46, int(window_rect['height'] * 0.095)), + ), + ] + + for idx, (left, top, right, bottom) in enumerate(title_areas, 1): # 逐区域尝试 + screenshot = ImageGrab.grab(bbox=(left, top, right, bottom)) # 截标题图 + self.save_ocr_debug_image(screenshot, f"title_ocr_{idx}_{datetime.now().strftime('%Y%m%d_%H%M%S_%f')}.png") # 落盘调试 + img_bytes = BytesIO() # 内存字节流 + screenshot.save(img_bytes, format='PNG') # 转png字节 + lines = self.ocr.recognize(img_bytes.getvalue()) # OCR识别 + valid = [x.strip() for x in lines if x and x.strip() and len(x.strip()) >= 2] # 清洗文本 + valid = [x for x in valid if x not in UI_NOISE_KEYWORDS] # 去噪 + if valid: + title = valid[0] # 取首个有效标题 + debug_log(f"session_title_ocr={title} area={idx} lines={valid[:5]}") + return title + + return "" # 全部区域失败 + except Exception as e: + debug_log(f"session_title_ocr_error={e}") + return "" # OCR异常返回空 + + def get_current_session_title(self): + try: + title_ctrl = self.wechat_window.TextControl(foundIndex=1) # 优先UIA读标题 + if hasattr(title_ctrl, "Exists") and not title_ctrl.Exists(0.3, 0.05): # 快速存在性检查 + debug_log("session_title_not_found_fast") + title = self.get_session_title_by_ocr() # UIA失败转OCR + return title + title = (getattr(title_ctrl, "Name", "") or "").strip() # 读取控件Name + if not title or title in UI_NOISE_KEYWORDS: # 噪声/空值 + title = self.get_session_title_by_ocr() # OCR兜底 + debug_log(f"session_title={title}") + return title + except Exception as e: + debug_log(f"session_title_error={e}") + return self.get_session_title_by_ocr() # 异常也兜底 + + def is_blocked_session(self): + title = self.get_current_session_title() # 取会话标题 + if not title: + return False # 标题未知默认不拦截 + for keyword in BLOCKED_SESSION_KEYWORDS: # 命中过滤词则跳过 + if keyword in title: + logger.info(f"[SESSION] 命中过滤会话 title={title} keyword={keyword}") + return True + return False + + def get_latest_message_areas(self, window_rect): + """计算多段消息识别区域(靠近底部,适配不同窗口尺寸)。""" + chat_left = window_rect['left'] + int(window_rect['width'] * 0.30) # 聊天区左边界 + chat_right = window_rect['right'] - 20 # 聊天区右边界 + chat_top = window_rect['top'] + int(window_rect['height'] * 0.16) # 聊天区上边界 + chat_bottom = window_rect['bottom'] - int(window_rect['height'] * 0.20) # 聊天区下边界(排除输入区) + chat_height = max(420, int((chat_bottom - chat_top) * 0.90)) # 有效聊天高度 + + area1_h = max(220, int(chat_height * 0.46)) # 近底部区域 + area2_h = max(320, int(chat_height * 0.72)) # 中大区域 + area3_h = max(420, int(chat_height * 0.98)) # 大区域兜底 + + areas = [ + {'left': chat_left, 'top': max(chat_top, chat_bottom - area1_h), 'right': chat_right, 'bottom': chat_bottom}, # 区域1 + {'left': chat_left, 'top': max(chat_top, chat_bottom - area2_h), 'right': chat_right, 'bottom': chat_bottom - max(35, int(area1_h * 0.12))}, # 区域2 + {'left': chat_left, 'top': max(chat_top, chat_bottom - area3_h), 'right': chat_right, 'bottom': chat_bottom - max(80, int(area2_h * 0.20))}, # 区域3 + ] + debug_log(f"message_areas={areas}") + return areas + + def should_reply(self, text): + """基础过滤:过短、无意义、无需回复文本直接跳过。""" + if not text or len(text) < 2: # 文本太短不回复 + return False + text_lower = text.lower() # 统一小写比较 + for keyword in NO_REPLY_KEYWORDS: # 命中免回复词 + if keyword.lower() in text_lower: + return False + return not text.isdigit() # 纯数字通常无语义 + + def is_new_message(self, text, contact_key): + """消息去重:同一会话内已处理过的文本不重复回复。""" + if contact_key not in self.seen_messages: + self.seen_messages[contact_key] = set() # 首次初始化会话集合 + h = hashlib.md5(text.encode("utf-8")).hexdigest() # 文本哈希 + if h in self.seen_messages[contact_key]: + logger.info(f"[FILTER] 重复消息 contact_key={contact_key}") + return False + self.seen_messages[contact_key].add(h) # 记录已处理 + if len(self.seen_messages[contact_key]) > 50: # 限制缓存规模 + self.seen_messages[contact_key] = set(list(self.seen_messages[contact_key])[-50:]) + return True + + def extract_text_by_uia(self): + logger.info("[UIA] 尝试控件树文本提取") + lines = [] # 候选文本 + try: + all_text_controls = self.wechat_window.GetChildren() # 取一级子控件 + for ctrl in all_text_controls: + name = (getattr(ctrl, 'Name', '') or '').strip() # 控件文本 + if not name: + continue + if len(name) < 2: + continue + if re.fullmatch(r"[0-9:\-\s]+", name): # 过滤时间/数字 + continue + if name in UI_NOISE_KEYWORDS: # 过滤UI噪声 + continue + lines.append(name) # 保留候选 + except Exception as e: + logger.warning(f"[UIA] 控件树提取失败: {e}") + + dedup = [] # 去重结果 + seen = set() # 去重集合 + for x in lines: + if x not in seen: + dedup.append(x) + seen.add(x) + + logger.info(f"[UIA] 控件树提取文本数={len(dedup)}") + debug_log(f"uia_lines={dedup[-8:] if dedup else []}") + return dedup + + def save_ocr_debug_image(self, image_obj, filename): + """保存OCR调试截图,便于核对截取区域和图像质量。""" + if not OCR_SAVE_IMAGES: # 开关关闭则不落盘 + return + try: + os.makedirs(OCR_SAVE_DIR, exist_ok=True) # 创建目录 + file_path = os.path.join(OCR_SAVE_DIR, filename) # 文件路径 + image_obj.save(file_path) # 保存图片 + debug_log(f"saved_ocr_image={file_path}") + except Exception as e: + logger.warning(f"[OCR] 保存调试截图失败: {e}") + + def get_ai_reply(self, message): + """调用后端接口获取最终回复(规则优先,AI兜底)。""" + logger.info(f"[API] 请求后端生成回复 content={message}") + try: + resp = requests.post(BACKEND_URL, json={"content": message, "wx_user_id": "multi_chat_bot", "wx_nickname": "用户"}, timeout=10) # 请求后端 + logger.info(f"[API] 后端响应 status={resp.status_code}") + if resp.status_code == 200: + data = resp.json() # 解析json + if data.get("success") and data.get("should_reply"): + reply = (data.get("reply_text") or "").strip() # 取回复文本 + logger.info(f"[API] 生成回复成功 reply={reply}") + return reply + logger.info("[API] 后端未返回可发送回复") + except Exception as e: + logger.error(f"[API] 调用接口失败: {e}") + return None + + def send_message(self, text, window_rect): + logger.info(f"[SEND] 开始发送 reply={text}") + try: + self.wechat_window.SetActive() # 激活微信窗口 + time.sleep(0.3) + pyautogui.click(window_rect['left'] + window_rect['width'] // 2, window_rect['bottom'] - 100) # 点击输入框 + time.sleep(0.3) + pyautogui.hotkey('ctrl', 'a') # 全选旧文本 + pyautogui.press('delete') # 清空输入框 + pyperclip.copy(text) # 文本放入剪贴板 + pyautogui.hotkey('ctrl', 'v') # 粘贴内容 + pyautogui.press('enter') # 回车发送 + logger.info("[SEND] 发送成功") + except Exception as e: + logger.error(f"[SEND] 发送失败: {e}") + + def process_current_chat(self, window_rect, contact_key): + logger.info(f"[CHAT] 开始处理会话 contact_key={contact_key}") + if self.is_blocked_session(): # 系统会话直接跳过 + logger.info("[CHAT] 当前会话在过滤名单,跳过") + return False + try: + all_lines = [] # OCR/UIA汇总文本 + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f") # 调试图时间戳 + for idx, msg_rect in enumerate(self.get_latest_message_areas(window_rect), 1): # 分区识别 + screenshot = ImageGrab.grab(bbox=(msg_rect['left'], msg_rect['top'], msg_rect['right'], msg_rect['bottom'])) # 区域截图 + img_np = np.array(screenshot) # 转numpy + + raw_pil = Image.fromarray(img_np) # 原图 + self.save_ocr_debug_image(raw_pil, f"{timestamp}_{contact_key}_area{idx}_raw.png") # 保存原图 + raw_bytes = BytesIO() # 原图字节流 + raw_pil.save(raw_bytes, format='PNG') + lines_raw = self.ocr.recognize(raw_bytes.getvalue()) # 原图OCR + + gray = cv2.cvtColor(img_np, cv2.COLOR_RGB2GRAY) # 灰度化 + enhanced = cv2.convertScaleAbs(gray, alpha=1.35, beta=8) # 提升对比度 + _, binary = cv2.threshold(enhanced, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) # 二值化 + pil_bin = Image.fromarray(binary) # 二值图 + self.save_ocr_debug_image(pil_bin, f"{timestamp}_{contact_key}_area{idx}_bin.png") # 保存二值图 + bin_bytes = BytesIO() # 二值图字节流 + pil_bin.save(bin_bytes, format='PNG') + lines_bin = self.ocr.recognize(bin_bytes.getvalue()) # 二值图OCR + + lines = lines_raw + lines_bin # 合并两路识别 + logger.info(f"[OCR] area={idx} raw={len(lines_raw)} bin={len(lines_bin)} total={len(lines)}") + debug_log(f"ocr_lines_count={len(lines)} contact_key={contact_key} area={idx}") + all_lines.extend(lines) # 汇总 + + if not all_lines: # 分区都失败时走整块兜底 + logger.info("[CHAT] 分区OCR无结果,尝试整块聊天区兜底") + chat_left = window_rect['left'] + int(window_rect['width'] * 0.30) + chat_right = window_rect['right'] - 20 + chat_top = window_rect['top'] + int(window_rect['height'] * 0.16) + chat_bottom = window_rect['bottom'] - int(window_rect['height'] * 0.20) + full_shot = ImageGrab.grab(bbox=(chat_left, chat_top, chat_right, chat_bottom)) # 整块截图 + full_np = np.array(full_shot) + full_gray = cv2.cvtColor(full_np, cv2.COLOR_RGB2GRAY) + full_enh = cv2.convertScaleAbs(full_gray, alpha=1.25, beta=6) + _, full_bin = cv2.threshold(full_enh, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) + full_pil = Image.fromarray(full_bin) + self.save_ocr_debug_image(full_pil, f"{timestamp}_{contact_key}_fallback_full_bin.png") # 保存兜底图 + full_bytes = BytesIO() + full_pil.save(full_bytes, format='PNG') + full_lines = self.ocr.recognize(full_bytes.getvalue()) # 兜底OCR + logger.info(f"[OCR] fallback_full_chat lines={len(full_lines)}") + all_lines.extend(full_lines) + + if not all_lines: # OCR全失败时走UIA + logger.info("[CHAT] OCR 无结果,尝试 UIA 文本兜底") + all_lines = self.extract_text_by_uia() + + if not all_lines: # UIA也失败 + logger.info("[CHAT] OCR+UIA 均无结果,结束") + return False + + valid_lines = [line.strip() for line in all_lines if len(line.strip()) >= 2] # 过滤无效行 + if not valid_lines: + logger.info("[CHAT] 过滤后无有效文本,结束") + return False + + latest = None # 最终待处理消息 + prioritized = [line for line in reversed(valid_lines) if ("报名" in line or "课程" in line or "价格" in line)] # 规则关键词优先 + if prioritized: + latest = prioritized[0] + logger.info(f"[CHAT] 规则关键词优先命中 latest={latest}") + else: + for line in reversed(valid_lines): # 从最新往前找可回复文本 + if self.should_reply(line): + latest = line + break + + if not latest: + logger.info("[CHAT] 没有命中可回复文本,结束") + debug_log("skip_all_should_reply=false") + return False + + logger.info(f"[CHAT] 识别目标消息 latest={latest}") + debug_log(f"latest_text={latest}") + if not self.is_new_message(latest, contact_key): # 重复消息不再回 + debug_log("skip_duplicate_message") + return False + + reply = self.get_ai_reply(latest) # 请求后端生成回复 + if reply: + debug_log(f"ai_reply={reply}") + self.send_message(reply, window_rect) # 发送回复 + logger.info("[CHAT] 本次会话处理完成(已发送)") + return True + + debug_log("no_ai_reply") + logger.info("[CHAT] 本次会话处理完成(无可发送回复)") + return False + except Exception as e: + logger.error(f"[CHAT] 处理聊天失败: {e}") + return False + + def run_forever(self): + """主循环:红点检测 -> 点击会话 -> 处理消息 -> 间隔轮询。""" + logger.info("[LOOP] 监听循环启动") + self.running = True # 标记运行中 + round_count = 0 # 轮次计数 + while self.running: + try: + round_count += 1 # 新一轮 + logger.info(f"[LOOP] 开始第 {round_count} 轮") + debug_log(f"round={round_count}") + window_rect = self.get_window_rect() # 获取窗口坐标 + if not window_rect: + logger.info("[LOOP] 未取到窗口位置,等待下一轮") + time.sleep(LOOP_INTERVAL) + continue + red_dots = self.detect_red_dots(window_rect) # 红点检测 + logger.info(f"[LOOP] 本轮红点数={len(red_dots)}") + debug_log(f"red_dots_detected={len(red_dots)}") + if not red_dots: + logger.info("[LOOP] 未检测到红点,走当前会话兜底") + debug_log("fallback_current_chat") + self.process_current_chat(window_rect, "current_chat_fallback") # 无红点也扫当前会话 + time.sleep(LOOP_INTERVAL) + continue + for idx, red_dot in enumerate(red_dots, 1): # 逐个红点处理 + logger.info(f"[LOOP] 处理红点 {idx}/{len(red_dots)}") + self.click_contact_by_red_dot(red_dot, window_rect) # 点击会话 + contact_key = f"{red_dot['x']}_{red_dot['y']}" # 联系人key + self.process_current_chat(window_rect, contact_key) # 处理会话 + time.sleep(1) # 短暂节流 + logger.info(f"[LOOP] 第 {round_count} 轮结束,休眠 {LOOP_INTERVAL} 秒") + time.sleep(LOOP_INTERVAL) + except Exception as e: + logger.error(f"[LOOP] 循环出错: {e}") + time.sleep(3) # 异常后稍等再继续 + + def stop(self): + logger.info("[LOOP] 收到停止信号") + self.running = False # 置位退出 + + +if __name__ == "__main__": + try: + bot = WechatMultiChatBot() # 构造机器人 + bot.run_forever() # 进入主循环 + except KeyboardInterrupt: + bot.stop() # Ctrl+C优雅停止 + except Exception as e: + print(f"错误: {e}") # 启动异常输出 diff --git a/app/infrastructure/wechat_multi_chat_bot.py b/app/infrastructure/wechat_multi_chat_bot.py new file mode 100644 index 0000000..d72b2f0 --- /dev/null +++ b/app/infrastructure/wechat_multi_chat_bot.py @@ -0,0 +1,373 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ctypes +import ctypes.wintypes +import json +import os +import shutil +import time +from io import BytesIO + +import pyautogui +import pyperclip +import requests +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.ocr import OCRService +from app.infrastructure.service.wechat.screenshot import ScreenshotService +from app.infrastructure.service.wechat.session_service import WechatSessionService + +from app.infrastructure.service.wechat.config import ( + LOOP_INTERVAL, LOOP_ERROR_DELAY, CLICK_AFTER_DELAY, TITLE_AFTER_DELAY, + CONTACT_SWITCH_DELAY, BOT_LOG_FILE, BOT_SESSION_LIST_LOG_FILE, BOT_SESSION_DETAIL_LOG_FILE, + WECHAT_WINDOW_TARGET_WIDTH, WECHAT_WINDOW_TARGET_HEIGHT, + WECHAT_WINDOW_TARGET_LEFT, WECHAT_WINDOW_TARGET_TOP, + OCR_SAVE_IMAGES, OCR_SAVE_DIR, BLOCKED_ROW_CACHE_FILE, + CONTACT_ROW_HEIGHT, CONTACT_ROW_WIDTH, + CONTACT_LIST_LEFT_OFFSET, CONTACT_LIST_TOP_OFFSET, CONTACT_LIST_BOTTOM_OFFSET, + SESSION_NAME_LEFT_OFFSET, SESSION_NAME_TOP_OFFSET, SESSION_NAME_WIDTH, SESSION_NAME_HEIGHT, + CHAT_CAPTURE_LEFT_OFFSET, CHAT_CAPTURE_TOP_OFFSET, CHAT_CAPTURE_WIDTH, CHAT_CAPTURE_HEIGHT, + TITLE_OCR_AREA_LEFT_OFFSET, TITLE_OCR_AREA_TOP_OFFSET, TITLE_OCR_AREA_WIDTH, TITLE_OCR_AREA_HEIGHT, +) + + +class WechatMultiChatBot: + + def _sleep_interruptible(self, seconds): + end_ts = time.time() + max(0.0, float(seconds or 0)) + while self.running and time.time() < end_ts: + time.sleep(min(0.1, end_ts - time.time())) + + def submit_message(self, session_name, content, confidence="", bubble_side=""): + trace_id = new_trace_id("bot") + backend_url = (os.getenv("BACKEND_URL") or "").strip() + if not backend_url or not content: + log_event("WARNING", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报参数不完整", reason="invalid_input") + return {"success": False, "should_reply": False, "reply_text": ""} + try: + payload = { + "wx_user_id": session_name or "", + "wx_nickname": session_name or "", + "content": content, + "is_friend_request": 0, + "ocr_confidence": confidence, + "ocr_bubble_side": bubble_side, + } + resp = requests.post(backend_url, json=payload, timeout=5) + if resp.status_code != 200: + log_event("WARNING", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报失败", reason="http_error", extra={"status_code": resp.status_code}) + return {"success": False, "should_reply": False, "reply_text": ""} + data = resp.json() if resp.text else {} + if not isinstance(data, dict): + log_event("WARNING", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报返回格式异常", reason="invalid_response") + return {"success": False, "should_reply": False, "reply_text": ""} + result = { + "success": bool(data.get("success")), + "should_reply": bool(data.get("should_reply")), + "reply_text": (data.get("reply_text") or "").strip(), + } + log_event("INFO", "bot", "bot.submit", trace_id, "submit", "ok", "消息上报成功", extra={"should_reply": result["should_reply"]}) + return result + except Exception as e: + log_event("ERROR", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报异常", reason="request_error", extra={"error": str(e)}) + return {"success": False, "should_reply": False, "reply_text": ""} + + def __init__(self): + self.wechat_hwnd = 0 + self.ocr = OCRService() + self.screenshot = ScreenshotService() + self.session_service = WechatSessionService( + screenshot_service=self.screenshot, + ocr_service=self.ocr, + save_debug_image=self.save_debug_image, + ) + self.running = False + self.blocked_row_cache = self.load_blocked_row_cache() + self.init_debug_dirs() + self.find_wechat_window() + + def load_blocked_row_cache(self): + try: + if not os.path.exists(BLOCKED_ROW_CACHE_FILE): + return {} + with open(BLOCKED_ROW_CACHE_FILE, "r", encoding="utf-8") as f: + data = json.load(f) + if isinstance(data, dict): + filtered = {k: v for k, v in data.items() if isinstance(k, str) and k.startswith("title:")} + dropped = len(data) - len(filtered) + return filtered + except Exception as e: + pass + return {} + + def save_blocked_row_cache(self): + try: + os.makedirs(os.path.dirname(BLOCKED_ROW_CACHE_FILE), exist_ok=True) + with open(BLOCKED_ROW_CACHE_FILE, "w", encoding="utf-8") as f: + json.dump(self.blocked_row_cache, f, ensure_ascii=False, indent=2) + except Exception as e: + pass + + def init_debug_dirs(self): + if not OCR_SAVE_IMAGES: + return + try: + if os.path.exists(OCR_SAVE_DIR): + shutil.rmtree(OCR_SAVE_DIR) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "all"), exist_ok=True) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "unread"), exist_ok=True) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "clicked"), exist_ok=True) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "name_ocr"), exist_ok=True) + except Exception as e: + pass + + def find_wechat_window(self): + user32 = ctypes.windll.user32 + found_hwnd = [] + EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_void_p) + + def _callback(hwnd, lparam): + if not user32.IsWindowVisible(hwnd): + return True + length = user32.GetWindowTextLengthW(hwnd) + if length <= 0: + return True + buf = ctypes.create_unicode_buffer(length + 1) + user32.GetWindowTextW(hwnd, buf, length + 1) + title = (buf.value or "").strip() + if "微信" in title: + found_hwnd.append(int(hwnd)) + return False + return True + + user32.EnumWindows(EnumWindowsProc(_callback), 0) + if found_hwnd: + self.wechat_hwnd = found_hwnd[0] + self.normalize_wechat_window() + return + raise Exception("未找到微信窗口") + + def normalize_wechat_window(self): + try: + user32 = ctypes.windll.user32 + hwnd = int(self.wechat_hwnd or 0) + if not hwnd: + return + user32.ShowWindow(hwnd, 9) + user32.SetForegroundWindow(hwnd) + time.sleep(0.25) + user32.SetWindowPos( + hwnd, + 0, + int(WECHAT_WINDOW_TARGET_LEFT), + int(WECHAT_WINDOW_TARGET_TOP), + int(WECHAT_WINDOW_TARGET_WIDTH), + int(WECHAT_WINDOW_TARGET_HEIGHT), + 0x0004 | 0x0010, + ) + except Exception as e: + pass + + def get_window_rect(self): + try: + user32 = ctypes.windll.user32 + hwnd = int(self.wechat_hwnd or 0) + if not hwnd: + return None + client_rect = ctypes.wintypes.RECT() + ok = user32.GetClientRect(hwnd, ctypes.byref(client_rect)) + if not ok: + return None + top_left = ctypes.wintypes.POINT(0, 0) + bottom_right = ctypes.wintypes.POINT(int(client_rect.right), int(client_rect.bottom)) + if not user32.ClientToScreen(hwnd, ctypes.byref(top_left)): + return None + if not user32.ClientToScreen(hwnd, ctypes.byref(bottom_right)): + return None + return { + 'left': int(top_left.x), + 'top': int(top_left.y), + 'right': int(bottom_right.x), + 'bottom': int(bottom_right.y), + 'width': int(bottom_right.x - top_left.x), + 'height': int(bottom_right.y - top_left.y), + } + except Exception as e: + return None + + def save_debug_image(self, image_obj, filename): + if not OCR_SAVE_IMAGES: + return + try: + file_path = os.path.join(OCR_SAVE_DIR, filename) + os.makedirs(os.path.dirname(file_path), exist_ok=True) + image_obj.save(file_path) + except Exception as e: + pass + + def click_unread_session(self, session): + self.session_service.reset_session_title_cache() + click_x = session.get('click_x', session.get('center_x')) + click_y = session.get('click_y', session.get('center_y')) + if click_x is None or click_y is None: + return + pyautogui.click(int(click_x), int(click_y)) + self._sleep_interruptible(CLICK_AFTER_DELAY) + self._sleep_interruptible(TITLE_AFTER_DELAY) + + def send_reply_to_wechat(self, reply_text, expected_session_name=""): + text = (reply_text or "").strip() + if not text: + return False + window_rect = self.get_window_rect() + if not window_rect: + return False + try: + if expected_session_name: + current_title = self.session_service.get_current_session_title(window_rect) + if not self.session_service.is_same_session(expected_session_name, current_title): + return False + hwnd = int(self.wechat_hwnd or 0) + if hwnd: + ctypes.windll.user32.ShowWindow(hwnd, 9) + ctypes.windll.user32.SetForegroundWindow(hwnd) + self._sleep_interruptible(0.2) + input_x = int(window_rect["left"] + window_rect["width"] * 0.62) + input_y = int(window_rect["bottom"] - 88) + pyautogui.click(input_x, input_y) + self._sleep_interruptible(0.12) + pyautogui.hotkey("ctrl", "a") + self._sleep_interruptible(0.06) + pyautogui.press("delete") + self._sleep_interruptible(0.06) + pyperclip.copy(text) + self._sleep_interruptible(0.06) + pyautogui.hotkey("ctrl", "v") + self._sleep_interruptible(0.08) + pyautogui.press("enter") + return True + except Exception as e: + return False + + def save_current_chat_snapshot(self, window_rect, round_count, row_idx, expected_session_name="", expected_list_title=""): + try: + analyze_result = self.session_service.analyze_clicked_session(window_rect, round_count, row_idx) + if not analyze_result.file_name: + return False + current_session_name = "" + need_verify_current = bool(expected_session_name) + if need_verify_current: + current_session_name = self.session_service.get_current_session_title(window_rect) + if expected_session_name and current_session_name and not self.session_service.is_same_session(expected_session_name, current_session_name): + return False + session_name = (expected_session_name or expected_list_title or current_session_name or '').strip() + if analyze_result.ok: + submit_result = self.submit_message(session_name, analyze_result.latest_text, analyze_result.confidence, analyze_result.bubble_side) + if submit_result.get("should_reply"): + reply_text = (submit_result.get("reply_text") or "").strip() + if reply_text: + sent_ok = self.send_reply_to_wechat(reply_text, expected_session_name=session_name) + if not sent_ok: + log_event("WARNING", "bot", "bot.submit", new_trace_id("bot"), "reply", "failed", "自动回复发送失败", reason="send_reply_failed", extra={"session_name": session_name}) + return True + log_event("WARNING", "bot", "bot.chat_analyze", new_trace_id("bot"), "analyze", "failed", "聊天截图未提取到可入库文本", reason="latest_text_empty", extra={"session_name": session_name, "file_name": analyze_result.file_name, "confidence": analyze_result.confidence, "bubble_side": analyze_result.bubble_side}) + return False + except Exception as e: + log_event("ERROR", "bot", "bot.chat_analyze", new_trace_id("bot"), "snapshot", "failed", "保存聊天快照失败", reason="snapshot_error", extra={"error": str(e)}) + return False + + def run_forever(self): + trace_id = new_trace_id("bot") + self.running = True + log_event("INFO", "bot", "bot.loop", trace_id, "start", "ok", "微信机器人主循环启动") + round_count = 0 + while self.running: + try: + round_count += 1 + window_rect = self.get_window_rect() + if not window_rect: + self._sleep_interruptible(LOOP_INTERVAL) + continue + scan_result = self.session_service.get_all_sessions_with_unread(window_rect, round_count) + sessions, unread_sessions = scan_result.sessions, scan_result.unread_sessions + if unread_sessions: + pass + if not unread_sessions: + self._sleep_interruptible(LOOP_INTERVAL) + continue + session = unread_sessions[0] + if not self.running: + self._sleep_interruptible(LOOP_INTERVAL) + continue + if self.session_service.should_skip_session_by_ocr( + session=session, + blocked_row_cache=self.blocked_row_cache, + save_blocked_row_cache=self.save_blocked_row_cache, + ): + self._sleep_interruptible(LOOP_INTERVAL) + continue + expected_list_title = (session.get('list_ocr_title') or '').strip() + expected_row_idx = session.get('row_idx') + precheck_scan = self.session_service.get_all_sessions_with_unread(window_rect, round_count) + precheck_unread = precheck_scan.unread_sessions + if not precheck_unread: + self._sleep_interruptible(LOOP_INTERVAL) + continue + precheck_first = precheck_unread[0] + self.session_service.should_skip_session_by_ocr( + session=precheck_first, + blocked_row_cache=self.blocked_row_cache, + save_blocked_row_cache=self.save_blocked_row_cache, + ) + current_list_title = (precheck_first.get('list_ocr_title') or '').strip() + current_row_idx = precheck_first.get('row_idx') + same_list_session = False + if expected_list_title and current_list_title: + same_list_session = self.session_service.is_same_session(expected_list_title, current_list_title) + elif expected_row_idx is not None and current_row_idx is not None: + same_list_session = int(expected_row_idx) == int(current_row_idx) + if not same_list_session: + self._sleep_interruptible(LOOP_INTERVAL) + continue + session = precheck_first + self.click_unread_session(session) + if not self.running: + self._sleep_interruptible(LOOP_INTERVAL) + continue + if self.session_service.should_skip_current_session( + window_rect=window_rect, + session=session, + blocked_row_cache=self.blocked_row_cache, + save_blocked_row_cache=self.save_blocked_row_cache, + ): + self._sleep_interruptible(LOOP_INTERVAL) + continue + snapshot_ok = self.save_current_chat_snapshot( + window_rect, + round_count, + session['row_idx'], + expected_session_name=expected_list_title, + expected_list_title=expected_list_title, + ) + if not snapshot_ok: + pass + else: + self._sleep_interruptible(CONTACT_SWITCH_DELAY) + self._sleep_interruptible(LOOP_INTERVAL) + except Exception as e: + log_event("ERROR", "bot", "bot.loop", trace_id, "loop", "failed", "微信机器人主循环异常", reason="loop_error", extra={"error": str(e), "round": round_count}) + self._sleep_interruptible(LOOP_ERROR_DELAY) + + def stop(self): + self.running = False + log_event("INFO", "bot", "bot.loop", new_trace_id("bot"), "stop", "ok", "微信机器人主循环停止") + + +if __name__ == "__main__": + try: + bot = WechatMultiChatBot() + bot.run_forever() + except KeyboardInterrupt: + bot.stop() + except Exception as e: + print(f"错误: {e}") diff --git a/app/presentation/__init__.py b/app/presentation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/presentation/main_window.py b/app/presentation/main_window.py new file mode 100644 index 0000000..26ab147 --- /dev/null +++ b/app/presentation/main_window.py @@ -0,0 +1,238 @@ +import os +import sys +import threading +from urllib import parse, request + +import requests +from PySide6.QtCore import QTimer, Qt, QObject, Slot +from PySide6.QtWidgets import QMainWindow, QWidget, QVBoxLayout, QMessageBox + +from app.application.services import AppConfig, BackendRuntime, FrontendRuntime +from app.presentation.shell import LoadingWindowController, WebViewShellController + +print(f"[GUI] Python executable: {sys.executable}") + +try: + from PySide6.QtWebEngineWidgets import QWebEngineView + from PySide6.QtWebChannel import QWebChannel + WEB_ENGINE_AVAILABLE = True +except Exception: + WEB_ENGINE_AVAILABLE = False + QWebEngineView = None + QWebChannel = None + + +class WindowBridge(QObject): + def __init__(self, main_window): + super().__init__() + self.main_window = main_window + + @Slot() + def open_devtools(self): + self.main_window.open_devtools() + + @Slot() + def minimize(self): + self.main_window.showMinimized() + + @Slot() + def maximize_or_restore(self): + if self.main_window.isMaximized(): + self.main_window.showNormal() + else: + self.main_window.showMaximized() + + @Slot() + def close_window(self): + self.main_window.close() + + @Slot() + def start_move(self): + wh = self.main_window.windowHandle() + if wh is not None: + wh.startSystemMove() + + +class MainWindow(QMainWindow): + def post_settings(self, **kwargs): + if not self.base_url: + return + try: + payload = {"action": "settings_set"} + for k, v in kwargs.items(): + payload[k] = "1" if v is True else "0" if v is False else str(v) + data = parse.urlencode(payload).encode("utf-8") + req = request.Request(self.base_url + "/api/rules", data=data, method="POST") + with request.urlopen(req, timeout=2): + pass + except Exception: + pass + + def __init__(self): + super().__init__() + self.setWindowTitle("识流 AI 助手") + self.resize(1280, 920) + self.setWindowFlags(Qt.FramelessWindowHint | Qt.Window) + self.hide() + + self.config = AppConfig() + self.backend_runtime = BackendRuntime(self.config) + self.frontend_runtime = FrontendRuntime(self.config, self.backend_runtime) + self.base_url = os.getenv("APP_BASE_URL", self.backend_runtime.base_url) + self.backend_process = None + self.backend_started_by_gui = False + self.backend_boot_thread = None + self.web_channel = None + self.window_bridge = None + self.loading = LoadingWindowController() + self.web_shell = None + self.frontend_entry_url = "" + + central = QWidget() + central.setStyleSheet("background:#eef2f7;") + self.setCentralWidget(central) + root = QVBoxLayout(central) + root.setContentsMargins(0, 0, 0, 0) + root.setSpacing(0) + + self.web = None + self.devtools_view = None + if WEB_ENGINE_AVAILABLE: + self.web = QWebEngineView() + self.web.setStyleSheet("background:#eef2f7;") + root.addWidget(self.web, 1) + self.web_channel = QWebChannel(self.web.page()) + self.window_bridge = WindowBridge(self) + self.web_channel.registerObject("windowBridge", self.window_bridge) + self.web.page().setWebChannel(self.web_channel) + self.web.loadFinished.connect(self.on_main_page_loaded) + self.web_shell = WebViewShellController(self.web) + + self.listener_sync_timer = QTimer(self) + self.listener_sync_timer.setInterval(30000) + self.listener_sync_timer.timeout.connect(self.sync_listener_state) + self._syncing_listener_state = False + + self.backend_ready_timer = QTimer(self) + self.backend_ready_timer.setInterval(100) + self.backend_ready_timer.timeout.connect(self.consume_backend_boot_result) + self._backend_boot_result = None + + self.loading.show() + self.start_backend() + + def get_settings(self): + if not self.base_url: + return {} + try: + url = self.base_url + "/api/rules?action=settings_get" + with request.urlopen(url, timeout=2) as resp: + data = resp.read().decode("utf-8") + import json + payload = json.loads(data) + return payload if isinstance(payload, dict) else {} + except Exception: + return {} + + def sync_listener_state(self): + if self._syncing_listener_state: + return + self._syncing_listener_state = True + try: + if not self.base_url: + return + requests.get(self.base_url + "/api/bot/status", timeout=2) + except Exception: + pass + finally: + self._syncing_listener_state = False + + def start_backend(self): + self.base_url = self.backend_runtime.base_url + self._backend_boot_result = None + self.backend_boot_thread = threading.Thread(target=self._boot_backend_worker, daemon=True) + self.backend_boot_thread.start() + self.backend_ready_timer.start() + + def _boot_backend_worker(self): + try: + if self.backend_runtime.is_backend_alive(): + self.backend_started_by_gui = False + self._backend_boot_result = {"ok": True, "url": self.base_url} + return + process = self.backend_runtime.launch_backend_process() + self.backend_process = process + self.backend_started_by_gui = True + ok, message = self.frontend_runtime.wait_for_backend(process=process) + if ok: + self._backend_boot_result = {"ok": True, "url": self.base_url} + else: + self._backend_boot_result = {"ok": False, "message": message} + except Exception as exc: + self._backend_boot_result = {"ok": False, "message": str(exc)} + + def consume_backend_boot_result(self): + if self._backend_boot_result is None: + return + result = self._backend_boot_result + self._backend_boot_result = None + self.backend_ready_timer.stop() + if result.get("ok"): + self.on_backend_started(result["url"]) + return + self.on_backend_failed(result.get("message") or "后台启动失败") + + def on_backend_started(self, url): + self.base_url = url + self.frontend_entry_url = self.frontend_runtime.resolve_frontend_entry_url(url) + self.reload_admin_page() + self.listener_sync_timer.start() + + def on_backend_failed(self, msg): + self.loading.close() + QMessageBox.critical(self, "后台错误", msg) + + def reload_admin_page(self): + self.web_shell.load(self.frontend_entry_url) + + def on_main_page_loaded(self, ok): + if not self.web_shell.mark_loaded(ok): + return + self.loading.finish_with(self._finish_show_main) + + def _finish_show_main(self): + if not self.web_shell.can_finish(): + return + self.web_shell.finish() + self.show() + self.raise_() + self.activateWindow() + QTimer.singleShot(60, self.loading.close) + + def open_devtools(self): + if self.web is None: + return + if self.devtools_view is None: + self.devtools_view = QWebEngineView() + self.devtools_view.setWindowTitle("页面调试控制台") + self.devtools_view.resize(1100, 760) + self.web.page().setDevToolsPage(self.devtools_view.page()) + self.devtools_view.show() + self.devtools_view.raise_() + self.devtools_view.activateWindow() + + def closeEvent(self, event): + try: + self.listener_sync_timer.stop() + except Exception: + pass + try: + self.backend_ready_timer.stop() + except Exception: + pass + try: + if self.backend_started_by_gui: + self.backend_runtime.terminate_backend_process(self.backend_process) + except Exception: + pass + super().closeEvent(event) diff --git a/app/presentation/shell.py b/app/presentation/shell.py new file mode 100644 index 0000000..883c858 --- /dev/null +++ b/app/presentation/shell.py @@ -0,0 +1,95 @@ +import time + +from PySide6.QtCore import QTimer, Qt, QUrl +from PySide6.QtGui import QGuiApplication +from PySide6.QtWidgets import QWidget, QVBoxLayout, QLabel, QProgressBar + + +class LoadingWindowController: + def __init__(self): + self.loading_window = None + self.loading_min_ms = 700 + self.loading_started_ms = 0.0 + + def show(self): + self.loading_started_ms = time.time() * 1000 + if self.loading_window is not None: + self.loading_window.show() + self.loading_window.raise_() + self.loading_window.activateWindow() + return self.loading_window + win = QWidget() + win.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) + win.setAttribute(Qt.WA_DeleteOnClose, True) + win.resize(560, 220) + screen = QGuiApplication.primaryScreen() + if screen is not None: + geo = screen.availableGeometry() + win.move(geo.center().x() - win.width() // 2, geo.center().y() - win.height() // 2) + win.setStyleSheet("background:qlineargradient(x1:0,y1:0,x2:0,y2:1, stop:0 #f8fbff, stop:1 #eef4fb);border:1px solid #dbe7f5;border-radius:16px;") + lay = QVBoxLayout(win) + lay.setContentsMargins(30, 28, 30, 28) + lay.setSpacing(10) + + title = QLabel("识流 AI 助手") + title.setStyleSheet("font-size:18px;font-weight:700;color:#0f172a;") + label = QLabel("正在启动服务与管理台…") + label.setStyleSheet("font-size:14px;color:#334155;") + hint = QLabel("首次启动会稍慢一点,请稍候") + hint.setStyleSheet("font-size:12px;color:#64748b;") + + bar = QProgressBar() + bar.setRange(0, 0) + bar.setTextVisible(False) + bar.setFixedHeight(8) + bar.setStyleSheet("QProgressBar{background:#e5edf8;border:0;border-radius:4px;}QProgressBar::chunk{background:qlineargradient(x1:0,y1:0,x2:1,y2:0, stop:0 #22c1c3, stop:1 #3b82f6);border-radius:4px;}") + + lay.addWidget(title) + lay.addWidget(label) + lay.addSpacing(4) + lay.addWidget(bar) + lay.addWidget(hint) + lay.addStretch(1) + + self.loading_window = win + self.loading_window.show() + self.loading_window.raise_() + self.loading_window.activateWindow() + return self.loading_window + + def close(self): + if self.loading_window is not None: + self.loading_window.close() + self.loading_window = None + + def finish_with(self, callback): + elapsed = int(time.time() * 1000 - self.loading_started_ms) if self.loading_started_ms else self.loading_min_ms + remain = max(0, self.loading_min_ms - elapsed) + QTimer.singleShot(remain + 120, callback) + + +class WebViewShellController: + def __init__(self, web_view): + self.web_view = web_view + self.main_page_ready = False + self.expecting_admin_load = False + + def load(self, entry_url): + if self.web_view is None: + return + self.main_page_ready = False + self.expecting_admin_load = True + self.web_view.setStyleSheet("background:#eef2f7;") + self.web_view.load(QUrl(entry_url)) + + def mark_loaded(self, ok): + if not self.expecting_admin_load or not ok: + return False + self.main_page_ready = True + return True + + def can_finish(self): + return self.main_page_ready + + def finish(self): + self.expecting_admin_load = False diff --git a/backend_main.py b/backend_main.py new file mode 100644 index 0000000..5a2efa5 --- /dev/null +++ b/backend_main.py @@ -0,0 +1,46 @@ +import os +import sys +from pathlib import Path + +from app.application.services import AppConfig +from app.infrastructure.backend import start_backend + +PROJECT_ROOT = Path(__file__).resolve().parent +VENV_ROOT = PROJECT_ROOT / ".venv" +VENV_DIR = VENV_ROOT / "Scripts" +VENV_PYTHON = VENV_DIR / "python.exe" + + +def _resolve(path): + try: + return Path(path).resolve() + except Exception: + return None + + +def _running_in_project_venv(): + current_prefix = _resolve(sys.prefix) + if current_prefix == _resolve(VENV_ROOT): + return True + current_executable = _resolve(sys.executable) + return current_executable == _resolve(VENV_PYTHON) + + +def ensure_project_venv(): + if _running_in_project_venv(): + return + if os.environ.get("OPENCLAW_PROJECT_VENV_REEXEC") == "1": + raise RuntimeError("重启后仍未进入项目 .venv,请检查 .venv 是否损坏") + if not VENV_PYTHON.exists(): + raise RuntimeError(f"未找到项目 .venv 解释器: {VENV_PYTHON}") + os.environ["OPENCLAW_PROJECT_VENV_REEXEC"] = "1" + os.chdir(str(PROJECT_ROOT)) + os.execv(str(VENV_PYTHON), [str(VENV_PYTHON), str(PROJECT_ROOT / "backend_main.py")]) + + +ensure_project_venv() + + +if __name__ == "__main__": + config = AppConfig() + start_backend(host=config.host, port=config.port) diff --git a/frontend/dist/assets/core-DhEqZVGG.js b/frontend/dist/assets/core-DhEqZVGG.js new file mode 100644 index 0000000..54430e0 --- /dev/null +++ b/frontend/dist/assets/core-DhEqZVGG.js @@ -0,0 +1 @@ +function t(n,e,i,s){if(typeof e=="function"?n!==e||!s:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?s:i==="a"?s.call(n):s?s.value:e.get(n)}function c(n,e,i,s,_){if(typeof e=="function"?n!==e||!0:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(n,i),i}var a,r,o,l,u;const d="__TAURI_TO_IPC_KEY__";function w(n,e=!1){return window.__TAURI_INTERNALS__.transformCallback(n,e)}class g{constructor(e){a.set(this,void 0),r.set(this,0),o.set(this,[]),l.set(this,void 0),c(this,a,e||(()=>{})),this.id=w(i=>{const s=i.index;if("end"in i){s==t(this,r,"f")?this.cleanupCallback():c(this,l,s);return}const _=i.message;if(s==t(this,r,"f")){for(t(this,a,"f").call(this,_),c(this,r,t(this,r,"f")+1);t(this,r,"f")in t(this,o,"f");){const p=t(this,o,"f")[t(this,r,"f")];t(this,a,"f").call(this,p),delete t(this,o,"f")[t(this,r,"f")],c(this,r,t(this,r,"f")+1)}t(this,r,"f")===t(this,l,"f")&&this.cleanupCallback()}else t(this,o,"f")[s]=_})}cleanupCallback(){window.__TAURI_INTERNALS__.unregisterCallback(this.id)}set onmessage(e){c(this,a,e)}get onmessage(){return t(this,a,"f")}[(a=new WeakMap,r=new WeakMap,o=new WeakMap,l=new WeakMap,d)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[d]()}}class f{constructor(e,i,s){this.plugin=e,this.event=i,this.channelId=s}async unregister(){return h(`plugin:${this.plugin}|remove_listener`,{event:this.event,channelId:this.channelId})}}async function m(n,e,i){const s=new g(i);try{return await h(`plugin:${n}|register_listener`,{event:e,handler:s}),new f(n,e,s.id)}catch{return await h(`plugin:${n}|registerListener`,{event:e,handler:s}),new f(n,e,s.id)}}async function I(n){return h(`plugin:${n}|check_permissions`)}async function C(n){return h(`plugin:${n}|request_permissions`)}async function h(n,e={},i){return window.__TAURI_INTERNALS__.invoke(n,e,i)}function T(n,e="asset"){return window.__TAURI_INTERNALS__.convertFileSrc(n,e)}class k{get rid(){return t(this,u,"f")}constructor(e){u.set(this,void 0),c(this,u,e)}async close(){return h("plugin:resources|close",{rid:this.rid})}}u=new WeakMap;function E(){return!!(globalThis||window).isTauri}export{g as Channel,f as PluginListener,k as Resource,d as SERIALIZE_TO_IPC_FN,m as addPluginListener,I as checkPermissions,T as convertFileSrc,h as invoke,E as isTauri,C as requestPermissions,w as transformCallback}; diff --git a/frontend/dist/assets/index-Avv0D5es.css b/frontend/dist/assets/index-Avv0D5es.css new file mode 100644 index 0000000..04f7c2a --- /dev/null +++ b/frontend/dist/assets/index-Avv0D5es.css @@ -0,0 +1 @@ +:root{--bg: #f2f4f7;--panel: #ffffff;--line: #e5e7eb;--text: #111827;--muted: #6b7280;--brand: #22c1c3}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:linear-gradient(180deg,#f5f7fb,#eef2f7);color:var(--text);font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}button,input,select,textarea{font:inherit}.page-shell{height:100vh;overflow:hidden}.content-root{height:calc(100vh - 48px);overflow:hidden;display:flex;flex-direction:column}.content-scroll{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.topbar{height:48px;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;-webkit-user-select:none;user-select:none}.drag-region{height:100%;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:default}.inner{width:min(1320px,calc(100vw - 24px));margin:0 auto}.window-actions{display:flex;align-items:center;gap:4px}.win-btn{width:32px;height:28px;border-radius:8px;border:1px solid #e7ecf2;background:#fff;color:#4b5563;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;cursor:pointer}.win-btn:hover{background:#f5f7fb}.win-btn.close:hover{background:#fee2e2;color:#991b1b;border-color:#fecaca}.panel{background:var(--panel);border:1px solid #edf0f4;border-radius:14px;box-shadow:0 6px 18px #0f172a0a}.hero{background:linear-gradient(120deg,#22c1c326,#7c3aed14);border:1px solid #dff4f5}.tab-wrap{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid #e8ecf2;border-radius:12px;padding:8px 12px 0;box-shadow:0 6px 14px #0f172a08;overflow:hidden}.app-tabs,.app-tabs .n-tabs-nav-scroll-content,.app-tabs .n-tabs-pane-wrapper,.app-tabs .n-tab-pane,.app-tab-pane{min-height:0}.app-tabs{flex:1;min-height:0;display:flex;flex-direction:column}.app-tabs .n-tabs-nav{flex:0 0 auto}.app-tabs .n-tabs-pane-wrapper{flex:1;min-height:0}.app-tabs .n-tab-pane,.app-tab-pane{height:100%;display:flex;flex-direction:column}.app-tab-pane>*{flex:1;min-height:0}.label-title{font-weight:600;font-size:14px;color:#1f2937}.label-desc{font-size:12px;color:#6b7280;margin-top:2px}.row-line{border-bottom:1px dashed #edf1f5;padding:14px 0}.row-line:last-child{border-bottom:0}.compact-card .n-card-header{padding-bottom:8px!important}.compact-card .n-card__content{padding-top:0!important}.panel-view-shell{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px}.logs-view-shell{flex:1;min-height:0;padding:12px 0}.log-panel,.log-panel .n-card__content{flex:1;min-height:0;height:100%;display:flex;flex-direction:column}.log-panel .n-card-header{flex:0 0 auto}.log-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.log-toolbar-right{display:flex;align-items:center;gap:12px;min-width:0}.log-path{color:#6b7280;font-size:12px;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-stream-wrap{height:clamp(320px,calc(100vh - 320px),680px);min-height:320px;max-height:680px;border:1px solid #e6ebf2;border-radius:12px;background:#0f172a;overflow-y:auto;overflow-x:hidden}.log-stream{margin:0;padding:14px 16px;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;font-family:Consolas,SFMono-Regular,Monaco,monospace}.log-line{white-space:pre-wrap}.log-line--error{color:#fca5a5}.log-line--warning{color:#fde68a}.log-line--info{color:#bfdbfe}.log-line--debug{color:#cbd5e1} diff --git a/frontend/dist/assets/index-C4rM3269.js b/frontend/dist/assets/index-C4rM3269.js new file mode 100644 index 0000000..aa832d0 --- /dev/null +++ b/frontend/dist/assets/index-C4rM3269.js @@ -0,0 +1,2985 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-B1zSvOyk.js","assets/core-DhEqZVGG.js"])))=>i.map(i=>d[i]); +var Qg=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var pT=Qg((cn,un)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function sd(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ht={},Pr=[],Vn=()=>{},Vf=()=>!1,Gl=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ql=e=>e.startsWith("onUpdate:"),_t=Object.assign,dd=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},eb=Object.prototype.hasOwnProperty,st=(e,t)=>eb.call(e,t),We=Array.isArray,$r=e=>Ni(e)==="[object Map]",Kf=e=>Ni(e)==="[object Set]",bc=e=>Ni(e)==="[object Date]",Ke=e=>typeof e=="function",St=e=>typeof e=="string",fn=e=>typeof e=="symbol",ut=e=>e!==null&&typeof e=="object",Uf=e=>(ut(e)||Ke(e))&&Ke(e.then)&&Ke(e.catch),Gf=Object.prototype.toString,Ni=e=>Gf.call(e),tb=e=>Ni(e).slice(8,-1),qf=e=>Ni(e)==="[object Object]",Xl=e=>St(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pi=sd(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yl=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},nb=/-\w/g,kn=Yl(e=>e.replace(nb,t=>t.slice(1).toUpperCase())),ob=/\B([A-Z])/g,Ao=Yl(e=>e.replace(ob,"-$1").toLowerCase()),Xf=Yl(e=>e.charAt(0).toUpperCase()+e.slice(1)),Da=Yl(e=>e?`on${Xf(e)}`:""),jn=(e,t)=>!Object.is(e,t),Ha=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},rb=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ib=e=>{const t=St(e)?Number(e):NaN;return isNaN(t)?e:t};let mc;const Zl=()=>mc||(mc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function cd(e){if(We(e)){const t={};for(let n=0;n{if(n){const o=n.split(ab);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Ar(e){let t="";if(St(e))t=e;else if(We(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Xo=e=>St(e)?e:e==null?"":We(e)||ut(e)&&(e.toString===Gf||!Ke(e.toString))?Jf(e)?Xo(e.value):JSON.stringify(e,Qf,2):String(e),Qf=(e,t)=>Jf(t)?Qf(e,t.value):$r(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],i)=>(n[Na(o,i)+" =>"]=r,n),{})}:Kf(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Na(n))}:fn(t)?Na(t):ut(t)&&!We(t)&&!qf(t)?String(t):t,Na=(e,t="")=>{var n;return fn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let At;class hb{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&At&&(At.active?(this.parent=At,this.index=(At.scopes||(At.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(At===this)At=this.prevScope;else{let t=At;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(gi){let t=gi;for(gi=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;vi;){let t=vi;for(vi=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function oh(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function rh(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),pd(o),vb(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function ks(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ih(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ih(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Pi)||(e.globalVersion=Pi,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ks(e))))return;e.flags|=2;const t=e.dep,n=bt,o=Pn;bt=e,Pn=!0;try{oh(e);const r=e.fn(e._value);(t.version===0||jn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{bt=n,Pn=o,rh(e),e.flags&=-3}}function pd(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)pd(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function vb(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Pn=!0;const lh=[];function uo(){lh.push(Pn),Pn=!1}function fo(){const e=lh.pop();Pn=e===void 0?!0:e}function yc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=bt;bt=void 0;try{t()}finally{bt=n}}}let Pi=0;class gb{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class vd{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!bt||!Pn||bt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==bt)n=this.activeLink=new gb(bt,this),bt.deps?(n.prevDep=bt.depsTail,bt.depsTail.nextDep=n,bt.depsTail=n):bt.deps=bt.depsTail=n,ah(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=bt.depsTail,n.nextDep=void 0,bt.depsTail.nextDep=n,bt.depsTail=n,bt.deps===n&&(bt.deps=o)}return n}trigger(t){this.version++,Pi++,this.notify(t)}notify(t){fd();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{hd()}}}function ah(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)ah(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Sl=new WeakMap,er=Symbol(""),Ps=Symbol(""),$i=Symbol("");function Wt(e,t,n){if(Pn&&bt){let o=Sl.get(e);o||Sl.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new vd),r.map=o,r.key=n),r.track()}}function ao(e,t,n,o,r,i){const l=Sl.get(e);if(!l){Pi++;return}const a=s=>{s&&s.trigger()};if(fd(),t==="clear")l.forEach(a);else{const s=We(e),d=s&&Xl(n);if(s&&n==="length"){const c=Number(o);l.forEach((f,v)=>{(v==="length"||v===$i||!fn(v)&&v>=c)&&a(f)})}else switch((n!==void 0||l.has(void 0))&&a(l.get(n)),d&&a(l.get($i)),t){case"add":s?d&&a(l.get("length")):(a(l.get(er)),$r(e)&&a(l.get(Ps)));break;case"delete":s||(a(l.get(er)),$r(e)&&a(l.get(Ps)));break;case"set":$r(e)&&a(l.get(er));break}}hd()}function bb(e,t){const n=Sl.get(e);return n&&n.get(t)}function mr(e){const t=it(e);return t===e?t:(Wt(t,"iterate",$i),mn(e)?t:t.map(ho))}function gd(e){return Wt(e=it(e),"iterate",$i),e}function Hn(e,t){return To(e)?_i(_r(e)?ho(t):t):ho(t)}const mb={__proto__:null,[Symbol.iterator](){return Wa(this,Symbol.iterator,e=>Hn(this,e))},concat(...e){return mr(this).concat(...e.map(t=>We(t)?mr(t):t))},entries(){return Wa(this,"entries",e=>(e[1]=Hn(this,e[1]),e))},every(e,t){return no(this,"every",e,t,void 0,arguments)},filter(e,t){return no(this,"filter",e,t,n=>n.map(o=>Hn(this,o)),arguments)},find(e,t){return no(this,"find",e,t,n=>Hn(this,n),arguments)},findIndex(e,t){return no(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return no(this,"findLast",e,t,n=>Hn(this,n),arguments)},findLastIndex(e,t){return no(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return no(this,"forEach",e,t,void 0,arguments)},includes(...e){return Va(this,"includes",e)},indexOf(...e){return Va(this,"indexOf",e)},join(e){return mr(this).join(e)},lastIndexOf(...e){return Va(this,"lastIndexOf",e)},map(e,t){return no(this,"map",e,t,void 0,arguments)},pop(){return Jr(this,"pop")},push(...e){return Jr(this,"push",e)},reduce(e,...t){return xc(this,"reduce",e,t)},reduceRight(e,...t){return xc(this,"reduceRight",e,t)},shift(){return Jr(this,"shift")},some(e,t){return no(this,"some",e,t,void 0,arguments)},splice(...e){return Jr(this,"splice",e)},toReversed(){return mr(this).toReversed()},toSorted(e){return mr(this).toSorted(e)},toSpliced(...e){return mr(this).toSpliced(...e)},unshift(...e){return Jr(this,"unshift",e)},values(){return Wa(this,"values",e=>Hn(this,e))}};function Wa(e,t,n){const o=gd(e),r=o[t]();return o!==e&&!mn(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const yb=Array.prototype;function no(e,t,n,o,r,i){const l=gd(e),a=l!==e&&!mn(e),s=l[t];if(s!==yb[t]){const f=s.apply(e,i);return a?ho(f):f}let d=n;l!==e&&(a?d=function(f,v){return n.call(this,Hn(e,f),v,e)}:n.length>2&&(d=function(f,v){return n.call(this,f,v,e)}));const c=s.call(l,d,o);return a&&r?r(c):c}function xc(e,t,n,o){const r=gd(e),i=r!==e&&!mn(e);let l=n,a=!1;r!==e&&(i?(a=o.length===0,l=function(d,c,f){return a&&(a=!1,d=Hn(e,d)),n.call(this,d,Hn(e,c),f,e)}):n.length>3&&(l=function(d,c,f){return n.call(this,d,c,f,e)}));const s=r[t](l,...o);return a?Hn(e,s):s}function Va(e,t,n){const o=it(e);Wt(o,"iterate",$i);const r=o[t](...n);return(r===-1||r===!1)&&Jl(n[0])?(n[0]=it(n[0]),o[t](...n)):r}function Jr(e,t,n=[]){uo(),fd();const o=it(e)[t].apply(e,n);return hd(),fo(),o}const xb=sd("__proto__,__v_isRef,__isVue"),sh=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(fn));function wb(e){fn(e)||(e=String(e));const t=it(this);return Wt(t,"has",e),t.hasOwnProperty(e)}class dh{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(r?i?Fb:hh:i?fh:uh).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const l=We(t);if(!r){let s;if(l&&(s=mb[n]))return s;if(n==="hasOwnProperty")return wb}const a=Reflect.get(t,n,Ot(t)?t:o);if((fn(n)?sh.has(n):xb(n))||(r||Wt(t,"get",n),i))return a;if(Ot(a)){const s=l&&Xl(n)?a:a.value;return r&&ut(s)?zn(s):s}return ut(a)?r?zn(a):_n(a):a}}class ch extends dh{constructor(t=!1){super(!1,t)}set(t,n,o,r){let i=t[n];const l=We(t)&&Xl(n);if(!this._isShallow){const d=To(i);if(!mn(o)&&!To(o)&&(i=it(i),o=it(o)),!l&&Ot(i)&&!Ot(o))return d||(i.value=o),!0}const a=l?Number(n)e,Ji=e=>Reflect.getPrototypeOf(e);function Pb(e,t,n){return function(...o){const r=this.__v_raw,i=it(r),l=$r(i),a=e==="entries"||e===Symbol.iterator&&l,s=e==="keys"&&l,d=r[e](...o),c=n?$s:t?_i:ho;return!t&&Wt(i,"iterate",s?Ps:er),_t(Object.create(d),{next(){const{value:f,done:v}=d.next();return v?{value:f,done:v}:{value:a?[c(f[0]),c(f[1])]:c(f),done:v}}})}}function Qi(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function $b(e,t){const n={get(r){const i=this.__v_raw,l=it(i),a=it(r);e||(jn(r,a)&&Wt(l,"get",r),Wt(l,"get",a));const{has:s}=Ji(l),d=t?$s:e?_i:ho;if(s.call(l,r))return d(i.get(r));if(s.call(l,a))return d(i.get(a));i!==l&&i.get(r)},get size(){const r=this.__v_raw;return!e&&Wt(it(r),"iterate",er),r.size},has(r){const i=this.__v_raw,l=it(i),a=it(r);return e||(jn(r,a)&&Wt(l,"has",r),Wt(l,"has",a)),r===a?i.has(r):i.has(r)||i.has(a)},forEach(r,i){const l=this,a=l.__v_raw,s=it(a),d=t?$s:e?_i:ho;return!e&&Wt(s,"iterate",er),a.forEach((c,f)=>r.call(i,d(c),d(f),l))}};return _t(n,e?{add:Qi("add"),set:Qi("set"),delete:Qi("delete"),clear:Qi("clear")}:{add(r){const i=it(this),l=Ji(i),a=it(r),s=!t&&!mn(r)&&!To(r)?a:r;return l.has.call(i,s)||jn(r,s)&&l.has.call(i,r)||jn(a,s)&&l.has.call(i,a)||(i.add(s),ao(i,"add",s,s)),this},set(r,i){!t&&!mn(i)&&!To(i)&&(i=it(i));const l=it(this),{has:a,get:s}=Ji(l);let d=a.call(l,r);d||(r=it(r),d=a.call(l,r));const c=s.call(l,r);return l.set(r,i),d?jn(i,c)&&ao(l,"set",r,i):ao(l,"add",r,i),this},delete(r){const i=it(this),{has:l,get:a}=Ji(i);let s=l.call(i,r);s||(r=it(r),s=l.call(i,r)),a&&a.call(i,r);const d=i.delete(r);return s&&ao(i,"delete",r,void 0),d},clear(){const r=it(this),i=r.size!==0,l=r.clear();return i&&ao(r,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Pb(r,e,t)}),n}function bd(e,t){const n=$b(e,t);return(o,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(st(n,r)&&r in o?n:o,r,i)}const _b={get:bd(!1,!1)},zb={get:bd(!1,!0)},Tb={get:bd(!0,!1)},uh=new WeakMap,fh=new WeakMap,hh=new WeakMap,Fb=new WeakMap;function Ob(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Eb(e){return e.__v_skip||!Object.isExtensible(e)?0:Ob(tb(e))}function _n(e){return To(e)?e:md(e,!1,Sb,_b,uh)}function Mb(e){return md(e,!1,kb,zb,fh)}function zn(e){return md(e,!0,Rb,Tb,hh)}function md(e,t,n,o,r){if(!ut(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Eb(e);if(i===0)return e;const l=r.get(e);if(l)return l;const a=new Proxy(e,i===2?o:n);return r.set(e,a),a}function _r(e){return To(e)?_r(e.__v_raw):!!(e&&e.__v_isReactive)}function To(e){return!!(e&&e.__v_isReadonly)}function mn(e){return!!(e&&e.__v_isShallow)}function Jl(e){return e?!!e.__v_raw:!1}function it(e){const t=e&&e.__v_raw;return t?it(t):e}function _s(e){return!st(e,"__v_skip")&&Object.isExtensible(e)&&Yf(e,"__v_skip",!0),e}const ho=e=>ut(e)?_n(e):e,_i=e=>ut(e)?zn(e):e;function Ot(e){return e?e.__v_isRef===!0:!1}function E(e){return vh(e,!1)}function ph(e){return vh(e,!0)}function vh(e,t){return Ot(e)?e:new Bb(e,t)}class Bb{constructor(t,n){this.dep=new vd,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:it(t),this._value=n?t:ho(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||mn(t)||To(t);t=o?t:it(t),jn(t,n)&&(this._rawValue=t,this._value=o?t:ho(t),this.dep.trigger())}}function ge(e){return Ot(e)?e.value:e}const Ab={get:(e,t,n)=>t==="__v_raw"?e:ge(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ot(r)&&!Ot(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function gh(e){return _r(e)?e:new Proxy(e,Ab)}class Ib{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=fn(n)?n:String(n),this._raw=it(t);let r=!0,i=t;if(!We(t)||fn(this._key)||!Xl(this._key))do r=!Jl(i)||mn(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=ge(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ot(this._raw[this._key])){const n=this._object[this._key];if(Ot(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bb(this._raw,this._key)}}class Lb{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function we(e,t,n){return Ot(e)?e:Ke(e)?new Lb(e):ut(e)&&arguments.length>1?Db(e,t,n):E(e)}function Db(e,t,n){return new Ib(e,t,n)}class Hb{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new vd(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Pi-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&bt!==this)return nh(this,!0),!0}get value(){const t=this.dep.track();return ih(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Nb(e,t,n=!1){let o,r;return Ke(e)?o=e:(o=e.get,r=e.set),new Hb(o,r,n)}const el={},Rl=new WeakMap;let qo;function jb(e,t=!1,n=qo){if(n){let o=Rl.get(n);o||Rl.set(n,o=[]),o.push(e)}}function Wb(e,t,n=ht){const{immediate:o,deep:r,once:i,scheduler:l,augmentJob:a,call:s}=n,d=S=>r?S:mn(S)||r===!1||r===0?so(S,1):so(S);let c,f,v,g,u=!1,p=!1;if(Ot(e)?(f=()=>e.value,u=mn(e)):_r(e)?(f=()=>d(e),u=!0):We(e)?(p=!0,u=e.some(S=>_r(S)||mn(S)),f=()=>e.map(S=>{if(Ot(S))return S.value;if(_r(S))return d(S);if(Ke(S))return s?s(S,2):S()})):Ke(e)?t?f=s?()=>s(e,2):e:f=()=>{if(v){uo();try{v()}finally{fo()}}const S=qo;qo=c;try{return s?s(e,3,[g]):e(g)}finally{qo=S}}:f=Vn,t&&r){const S=f,x=r===!0?1/0:r;f=()=>so(S(),x)}const b=pb(),m=()=>{c.stop(),b&&b.active&&dd(b.effects,c)};if(i&&t){const S=t;t=(...x)=>{S(...x),m()}}let y=p?new Array(e.length).fill(el):el;const $=S=>{if(!(!(c.flags&1)||!c.dirty&&!S))if(t){const x=c.run();if(r||u||(p?x.some((R,C)=>jn(R,y[C])):jn(x,y))){v&&v();const R=qo;qo=c;try{const C=[x,y===el?void 0:p&&y[0]===el?[]:y,g];y=x,s?s(t,3,C):t(...C)}finally{qo=R}}}else c.run()};return a&&a($),c=new eh(f),c.scheduler=l?()=>l($,!1):$,g=S=>jb(S,!1,c),v=c.onStop=()=>{const S=Rl.get(c);if(S){if(s)s(S,4);else for(const x of S)x();Rl.delete(c)}},t?o?$(!0):y=c.run():l?l($.bind(null,!0),!0):c.run(),m.pause=c.pause.bind(c),m.resume=c.resume.bind(c),m.stop=m,m}function so(e,t=1/0,n){if(t<=0||!ut(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ot(e))so(e.value,t,n);else if(We(e))for(let o=0;o{so(o,t,n)});else if(qf(e)){for(const o in e)so(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&so(e[o],t,n)}return e}function ji(e,t,n,o){try{return o?e(...o):e()}catch(r){Ql(r,t,n)}}function Tn(e,t,n,o){if(Ke(e)){const r=ji(e,t,n,o);return r&&Uf(r)&&r.catch(i=>{Ql(i,t,n)}),r}if(We(e)){const r=[];for(let i=0;i>>1,r=Jt[o],i=zi(r);i=zi(n)?Jt.push(e):Jt.splice(Kb(t),0,e),e.flags|=1,mh()}}function mh(){kl||(kl=bh.then(xh))}function Ub(e){We(e)?zr.push(...e):ko&&e.id===-1?ko.splice(kr+1,0,e):e.flags&1||(zr.push(e),e.flags|=1),mh()}function wc(e,t,n=Ln+1){for(;nzi(n)-zi(o));if(zr.length=0,ko){ko.push(...t);return}for(ko=t,kr=0;kre.id==null?e.flags&2?-1:1/0:e.id;function xh(e){try{for(Ln=0;Ln{o._d&&zl(-1);const i=Pl(t);let l;try{l=e(...r)}finally{Pl(i),o._d&&zl(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function qn(e,t){if(Ut===null)return e;const n=la(Ut),o=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&Ke(t)?t.call(o&&o.proxy):t}}const Gb=Symbol.for("v-scx"),qb=()=>Ee(Gb);function en(e,t){return xd(e,null,t)}function tt(e,t,n){return xd(e,t,n)}function xd(e,t,n=ht){const{immediate:o,deep:r,flush:i,once:l}=n,a=_t({},n),s=t&&o||!t&&i!=="post";let d;if(Ei){if(i==="sync"){const g=qb();d=g.__watcherHandles||(g.__watcherHandles=[])}else if(!s){const g=()=>{};return g.stop=Vn,g.resume=Vn,g.pause=Vn,g}}const c=Qt;a.call=(g,u,p)=>Tn(g,c,u,p);let f=!1;i==="post"?a.scheduler=g=>{Zt(g,c&&c.suspense)}:i!=="sync"&&(f=!0,a.scheduler=(g,u)=>{u?g():yd(g)}),a.augmentJob=g=>{t&&(g.flags|=4),f&&(g.flags|=2,c&&(g.id=c.uid,g.i=c))};const v=Wb(e,t,a);return Ei&&(d?d.push(v):s&&v()),v}function Xb(e,t,n){const o=this.proxy,r=St(e)?e.includes(".")?Ch(o,e):()=>o[e]:e.bind(o,o);let i;Ke(t)?i=t:(i=t.handler,n=t);const l=Ki(this),a=xd(r,i.bind(o),n);return l(),a}function Ch(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;re.__isTeleport,Yo=e=>e&&(e.disabled||e.disabled===""),Yb=e=>e&&(e.defer||e.defer===""),Cc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Sc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,zs=(e,t)=>{const n=e&&e.to;return St(n)?t?t(n):null:n},Zb={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,i,l,a,s,d){const{mc:c,pc:f,pbc:v,o:{insert:g,querySelector:u,createText:p,createComment:b,parentNode:m}}=d,y=Yo(t.props);let{dynamicChildren:$}=t;const S=(C,w,k)=>{C.shapeFlag&16&&c(C.children,w,k,r,i,l,a,s)},x=(C=t)=>{const w=Yo(C.props),k=C.target=zs(C.props,u),F=Ts(k,C,p,g);k&&(l!=="svg"&&Cc(k)?l="svg":l!=="mathml"&&Sc(k)&&(l="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(k),w||(S(C,k,F),di(C,!1)))},R=C=>{const w=()=>{if(So.get(C)===w){if(So.delete(C),Yo(C.props)){const k=m(C.el)||n;S(C,k,C.anchor),di(C,!0)}x(C)}};So.set(C,w),Zt(w,i)};if(e==null){const C=t.el=p(""),w=t.anchor=p("");if(g(C,n,o),g(w,n,o),Yb(t.props)||i&&i.pendingBranch){R(t);return}y&&(S(t,n,w),di(t,!0)),x()}else{t.el=e.el;const C=t.anchor=e.anchor,w=So.get(e);if(w){w.flags|=8,So.delete(e),R(t);return}t.targetStart=e.targetStart;const k=t.target=e.target,F=t.targetAnchor=e.targetAnchor,M=Yo(e.props),_=M?n:k,T=M?C:F;if(l==="svg"||Cc(k)?l="svg":(l==="mathml"||Sc(k))&&(l="mathml"),$?(v(e.dynamicChildren,$,_,r,i,l,a),kd(e,t,!0)):s||f(e,t,_,T,r,i,l,a,!1),y)M?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):tl(t,n,C,d,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const B=t.target=zs(t.props,u);B&&tl(t,B,null,d,0)}else M&&tl(t,k,F,d,1);di(t,y)}},remove(e,t,n,{um:o,o:{remove:r}},i){const{shapeFlag:l,children:a,anchor:s,targetStart:d,targetAnchor:c,target:f,props:v}=e;let g=i||!Yo(v);const u=So.get(e);if(u&&(u.flags|=8,So.delete(e),g=!1),f&&(r(d),r(c)),i&&r(s),l&16)for(let p=0;p{e.isMounted=!0}),xt(()=>{e.isUnmounting=!0}),e}const vn=[Function,Array],Ph={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:vn,onEnter:vn,onAfterEnter:vn,onEnterCancelled:vn,onBeforeLeave:vn,onLeave:vn,onAfterLeave:vn,onLeaveCancelled:vn,onBeforeAppear:vn,onAppear:vn,onAfterAppear:vn,onAppearCancelled:vn},$h=e=>{const t=e.subTree;return t.component?$h(t.component):t},Qb={name:"BaseTransition",props:Ph,setup(e,{slots:t}){const n=Lo(),o=kh();return()=>{const r=t.default&&wd(t.default(),!0),i=r&&r.length?_h(r):n.subTree?Im():void 0;if(!i)return;const l=it(e),{mode:a}=l;if(o.isLeaving)return Ka(i);const s=Rc(i);if(!s)return Ka(i);let d=Ti(s,l,o,n,f=>d=f);s.type!==$t&&rr(s,d);let c=n.subTree&&Rc(n.subTree);if(c&&c.type!==$t&&!Zo(c,s)&&$h(n).type!==$t){let f=Ti(c,l,o,n);if(rr(c,f),a==="out-in"&&s.type!==$t)return o.isLeaving=!0,f.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},Ka(i);a==="in-out"&&s.type!==$t?f.delayLeave=(v,g,u)=>{const p=zh(o,c);p[String(c.key)]=c,v[Dn]=()=>{g(),v[Dn]=void 0,delete d.delayedLeave,c=void 0},d.delayedLeave=()=>{u(),delete d.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function _h(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==$t){t=n;break}}return t}const em=Qb;function zh(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Ti(e,t,n,o,r){const{appear:i,mode:l,persisted:a=!1,onBeforeEnter:s,onEnter:d,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:v,onLeave:g,onAfterLeave:u,onLeaveCancelled:p,onBeforeAppear:b,onAppear:m,onAfterAppear:y,onAppearCancelled:$}=t,S=String(e.key),x=zh(n,e),R=(k,F)=>{k&&Tn(k,o,9,F)},C=(k,F)=>{const M=F[1];R(k,F),We(k)?k.every(_=>_.length<=1)&&M():k.length<=1&&M()},w={mode:l,persisted:a,beforeEnter(k){let F=s;if(!n.isMounted)if(i)F=b||s;else return;k[Dn]&&k[Dn](!0);const M=x[S];M&&Zo(e,M)&&M.el[Dn]&&M.el[Dn](),R(F,[k])},enter(k){if(x[S]===e)return;let F=d,M=c,_=f;if(!n.isMounted)if(i)F=m||d,M=y||c,_=$||f;else return;let T=!1;k[Qr]=D=>{T||(T=!0,D?R(_,[k]):R(M,[k]),w.delayedLeave&&w.delayedLeave(),k[Qr]=void 0)};const B=k[Qr].bind(null,!1);F?C(F,[k,B]):B()},leave(k,F){const M=String(e.key);if(k[Qr]&&k[Qr](!0),n.isUnmounting)return F();R(v,[k]);let _=!1;k[Dn]=B=>{_||(_=!0,F(),B?R(p,[k]):R(u,[k]),k[Dn]=void 0,x[M]===e&&delete x[M])};const T=k[Dn].bind(null,!1);x[M]=e,g?C(g,[k,T]):T()},clone(k){const F=Ti(k,t,n,o,r);return r&&r(F),F}};return w}function Ka(e){if(ta(e))return e=hn(e),e.children=null,e}function Rc(e){if(!ta(e))return Rh(e.type)&&e.children?_h(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ke(n.default))return n.default()}}function rr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,rr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function wd(e,t=!1,n){let o=[],r=0;for(let i=0;i1)for(let i=0;ibi(p,t&&(We(t)?t[b]:t),n,o,r));return}if(Tr(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&bi(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?la(o.component):o.el,l=r?null:i,{i:a,r:s}=e,d=t&&t.r,c=a.refs===ht?a.refs={}:a.refs,f=a.setupState,v=it(f),g=f===ht?Vf:p=>kc(c,p)?!1:st(v,p),u=(p,b)=>!(b&&kc(c,b));if(d!=null&&d!==s){if(Pc(t),St(d))c[d]=null,g(d)&&(f[d]=null);else if(Ot(d)){const p=t;u(d,p.k)&&(d.value=null),p.k&&(c[p.k]=null)}}if(Ke(s))ji(s,a,12,[l,c]);else{const p=St(s),b=Ot(s);if(p||b){const m=()=>{if(e.f){const y=p?g(s)?f[s]:c[s]:u()||!e.k?s.value:c[e.k];if(r)We(y)&&dd(y,i);else if(We(y))y.includes(i)||y.push(i);else if(p)c[s]=[i],g(s)&&(f[s]=c[s]);else{const $=[i];u(s,e.k)&&(s.value=$),e.k&&(c[e.k]=$)}}else p?(c[s]=l,g(s)&&(f[s]=l)):b&&(u(s,e.k)&&(s.value=l),e.k&&(c[e.k]=l))};if(l){const y=()=>{m(),$l.delete(e)};y.id=-1,$l.set(e,y),Zt(y,n)}else Pc(e),m()}}}function Pc(e){const t=$l.get(e);t&&(t.flags|=8,$l.delete(e))}Zl().requestIdleCallback;Zl().cancelIdleCallback;const Tr=e=>!!e.type.__asyncLoader,ta=e=>e.type.__isKeepAlive;function Cd(e,t){Fh(e,"a",t)}function na(e,t){Fh(e,"da",t)}function Fh(e,t,n=Qt){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(oa(t,o,n),n){let r=n.parent;for(;r&&r.parent;)ta(r.parent.vnode)&&tm(o,t,n,r),r=r.parent}}function tm(e,t,n,o){const r=oa(t,e,o,!0);ra(()=>{dd(o[t],r)},n)}function oa(e,t,n=Qt,o=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{uo();const a=Ki(n),s=Tn(t,n,e,l);return a(),fo(),s});return o?r.unshift(i):r.push(i),i}}const po=e=>(t,n=Qt)=>{(!Ei||e==="sp")&&oa(e,(...o)=>t(...o),n)},Io=po("bm"),Ct=po("m"),nm=po("bu"),Oh=po("u"),xt=po("bum"),ra=po("um"),om=po("sp"),rm=po("rtg"),im=po("rtc");function lm(e,t=Qt){oa("ec",e,t)}const am=Symbol.for("v-ndc");function Eh(e,t,n={},o,r){if(Ut.ce||Ut.parent&&Tr(Ut.parent)&&Ut.parent.ce){const d=Object.keys(n).length>0;return Xn(),Oi(nt,null,[Pe("slot",n,o)],d?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),Xn();const l=i&&Mh(i(n)),a=n.key||l&&l.key,s=Oi(nt,{key:(a&&!fn(a)?a:`_${t}`)+(!l&&o?"_fb":"")},l||[],l&&e._===1?64:-2);return s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),i&&i._c&&(i._d=!0),s}function Mh(e){return e.some(t=>Ir(t)?!(t.type===$t||t.type===nt&&!Mh(t.children)):!0)?e:null}const Fs=e=>e?Qh(e)?la(e):Fs(e.parent):null,mi=_t(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Fs(e.parent),$root:e=>Fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ah(e),$forceUpdate:e=>e.f||(e.f=()=>{yd(e.update)}),$nextTick:e=>e.n||(e.n=Rt.bind(e.proxy)),$watch:e=>Xb.bind(e)}),Ua=(e,t)=>e!==ht&&!e.__isScriptSetup&&st(e,t),sm={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:i,accessCache:l,type:a,appContext:s}=e;if(t[0]!=="$"){const v=l[t];if(v!==void 0)switch(v){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Ua(o,t))return l[t]=1,o[t];if(r!==ht&&st(r,t))return l[t]=2,r[t];if(st(i,t))return l[t]=3,i[t];if(n!==ht&&st(n,t))return l[t]=4,n[t];Os&&(l[t]=0)}}const d=mi[t];let c,f;if(d)return t==="$attrs"&&Wt(e.attrs,"get",""),d(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==ht&&st(n,t))return l[t]=4,n[t];if(f=s.config.globalProperties,st(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:i}=e;return Ua(r,t)?(r[t]=n,!0):o!==ht&&st(o,t)?(o[t]=n,!0):st(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:i,type:l}},a){let s;return!!(n[a]||e!==ht&&a[0]!=="$"&&st(e,a)||Ua(t,a)||st(i,a)||st(o,a)||st(mi,a)||st(r.config.globalProperties,a)||(s=l.__cssModules)&&s[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:st(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function $c(e){return We(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Os=!0;function dm(e){const t=Ah(e),n=e.proxy,o=e.ctx;Os=!1,t.beforeCreate&&_c(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:l,watch:a,provide:s,inject:d,created:c,beforeMount:f,mounted:v,beforeUpdate:g,updated:u,activated:p,deactivated:b,beforeDestroy:m,beforeUnmount:y,destroyed:$,unmounted:S,render:x,renderTracked:R,renderTriggered:C,errorCaptured:w,serverPrefetch:k,expose:F,inheritAttrs:M,components:_,directives:T,filters:B}=t;if(d&&cm(d,o,null),l)for(const N in l){const V=l[N];Ke(V)&&(o[N]=V.bind(n))}if(r){const N=r.call(n,n);ut(N)&&(e.data=_n(N))}if(Os=!0,i)for(const N in i){const V=i[N],ie=Ke(V)?V.bind(n,n):Ke(V.get)?V.get.bind(n,n):Vn,he=!Ke(V)&&Ke(V.set)?V.set.bind(n):Vn,J=O({get:ie,set:he});Object.defineProperty(o,N,{enumerable:!0,configurable:!0,get:()=>J.value,set:re=>J.value=re})}if(a)for(const N in a)Bh(a[N],o,n,N);if(s){const N=Ke(s)?s.call(n):s;Reflect.ownKeys(N).forEach(V=>{qe(V,N[V])})}c&&_c(c,e,"c");function K(N,V){We(V)?V.forEach(ie=>N(ie.bind(n))):V&&N(V.bind(n))}if(K(Io,f),K(Ct,v),K(nm,g),K(Oh,u),K(Cd,p),K(na,b),K(lm,w),K(im,R),K(rm,C),K(xt,y),K(ra,S),K(om,k),We(F))if(F.length){const N=e.exposed||(e.exposed={});F.forEach(V=>{Object.defineProperty(N,V,{get:()=>n[V],set:ie=>n[V]=ie,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===Vn&&(e.render=x),M!=null&&(e.inheritAttrs=M),_&&(e.components=_),T&&(e.directives=T),k&&Th(e)}function cm(e,t,n=Vn){We(e)&&(e=Es(e));for(const o in e){const r=e[o];let i;ut(r)?"default"in r?i=Ee(r.from||o,r.default,!0):i=Ee(r.from||o):i=Ee(r),Ot(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function _c(e,t,n){Tn(We(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Bh(e,t,n,o){let r=o.includes(".")?Ch(n,o):()=>n[o];if(St(e)){const i=t[e];Ke(i)&&tt(r,i)}else if(Ke(e))tt(r,e.bind(n));else if(ut(e))if(We(e))e.forEach(i=>Bh(i,t,n,o));else{const i=Ke(e.handler)?e.handler.bind(n):t[e.handler];Ke(i)&&tt(r,i,e)}}function Ah(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,a=i.get(t);let s;return a?s=a:!r.length&&!n&&!o?s=t:(s={},r.length&&r.forEach(d=>_l(s,d,l,!0)),_l(s,t,l)),ut(t)&&i.set(t,s),s}function _l(e,t,n,o=!1){const{mixins:r,extends:i}=t;i&&_l(e,i,n,!0),r&&r.forEach(l=>_l(e,l,n,!0));for(const l in t)if(!(o&&l==="expose")){const a=um[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const um={data:zc,props:Tc,emits:Tc,methods:ci,computed:ci,beforeCreate:Yt,created:Yt,beforeMount:Yt,mounted:Yt,beforeUpdate:Yt,updated:Yt,beforeDestroy:Yt,beforeUnmount:Yt,destroyed:Yt,unmounted:Yt,activated:Yt,deactivated:Yt,errorCaptured:Yt,serverPrefetch:Yt,components:ci,directives:ci,watch:hm,provide:zc,inject:fm};function zc(e,t){return t?e?function(){return _t(Ke(e)?e.call(this,this):e,Ke(t)?t.call(this,this):t)}:t:e}function fm(e,t){return ci(Es(e),Es(t))}function Es(e){if(We(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${kn(t)}Modifiers`]||e[`${Ao(t)}Modifiers`];function bm(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||ht;let r=n;const i=t.startsWith("update:"),l=i&&gm(o,t.slice(7));l&&(l.trim&&(r=n.map(c=>St(c)?c.trim():c)),l.number&&(r=n.map(rb)));let a,s=o[a=Da(t)]||o[a=Da(kn(t))];!s&&i&&(s=o[a=Da(Ao(t))]),s&&Tn(s,e,6,r);const d=o[a+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Tn(d,e,6,r)}}const mm=new WeakMap;function Lh(e,t,n=!1){const o=n?mm:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const i=e.emits;let l={},a=!1;if(!Ke(e)){const s=d=>{const c=Lh(d,t,!0);c&&(a=!0,_t(l,c))};!n&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!i&&!a?(ut(e)&&o.set(e,null),null):(We(i)?i.forEach(s=>l[s]=null):_t(l,i),ut(e)&&o.set(e,l),l)}function ia(e,t){return!e||!Gl(t)?!1:(t=t.slice(2).replace(/Once$/,""),st(e,t[0].toLowerCase()+t.slice(1))||st(e,Ao(t))||st(e,t))}function Fc(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[i],slots:l,attrs:a,emit:s,render:d,renderCache:c,props:f,data:v,setupState:g,ctx:u,inheritAttrs:p}=e,b=Pl(e);let m,y;try{if(n.shapeFlag&4){const S=r||o,x=S;m=Nn(d.call(x,S,c,f,g,v,u)),y=a}else{const S=t;m=Nn(S.length>1?S(f,{attrs:a,slots:l,emit:s}):S(f,null)),y=t.props?a:ym(a)}}catch(S){yi.length=0,Ql(S,e,1),m=Pe($t)}let $=m;if(y&&p!==!1){const S=Object.keys(y),{shapeFlag:x}=$;S.length&&x&7&&(i&&S.some(ql)&&(y=xm(y,i)),$=hn($,y,!1,!0))}return n.dirs&&($=hn($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(n.dirs):n.dirs),n.transition&&rr($,n.transition),m=$,Pl(b),m}const ym=e=>{let t;for(const n in e)(n==="class"||n==="style"||Gl(n))&&((t||(t={}))[n]=e[n]);return t},xm=(e,t)=>{const n={};for(const o in e)(!ql(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function wm(e,t,n){const{props:o,children:r,component:i}=e,{props:l,children:a,patchFlag:s}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return o?Oc(o,l,d):!!l;if(s&8){const c=t.dynamicProps;for(let f=0;fObject.create(Hh),jh=e=>Object.getPrototypeOf(e)===Hh;function Sm(e,t,n,o=!1){const r={},i=Nh();e.propsDefaults=Object.create(null),Wh(e,t,r,i);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);n?e.props=o?r:Mb(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Rm(e,t,n,o){const{props:r,attrs:i,vnode:{patchFlag:l}}=e,a=it(r),[s]=e.propsOptions;let d=!1;if((o||l>0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let f=0;f{s=!0;const[v,g]=Vh(f,t,!0);_t(l,v),g&&a.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!i&&!s)return ut(e)&&o.set(e,Pr),Pr;if(We(i))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Rd=e=>We(e)?e.map(Nn):[Nn(e)],Pm=(e,t,n)=>{if(t._n)return t;const o=Ne((...r)=>Rd(t(...r)),n);return o._c=!1,o},Kh=(e,t,n)=>{const o=e._ctx;for(const r in e){if(Sd(r))continue;const i=e[r];if(Ke(i))t[r]=Pm(r,i,o);else if(i!=null){const l=Rd(i);t[r]=()=>l}}},Uh=(e,t)=>{const n=Rd(t);e.slots.default=()=>n},Gh=(e,t,n)=>{for(const o in t)(n||!Sd(o))&&(e[o]=t[o])},$m=(e,t,n)=>{const o=e.slots=Nh();if(e.vnode.shapeFlag&32){const r=t._;r?(Gh(o,t,n),n&&Yf(o,"_",r,!0)):Kh(t,o)}else t&&Uh(e,t)},_m=(e,t,n)=>{const{vnode:o,slots:r}=e;let i=!0,l=ht;if(o.shapeFlag&32){const a=t._;a?n&&a===1?i=!1:Gh(r,t,n):(i=!t.$stable,Kh(t,r)),l=t}else t&&(Uh(e,t),l={default:1});if(i)for(const a in r)!Sd(a)&&l[a]==null&&delete r[a]},Zt=Em;function zm(e){return Tm(e)}function Tm(e,t){const n=Zl();n.__VUE__=!0;const{insert:o,remove:r,patchProp:i,createElement:l,createText:a,createComment:s,setText:d,setElementText:c,parentNode:f,nextSibling:v,setScopeId:g=Vn,insertStaticContent:u}=e,p=(z,L,ee,se=null,ae=null,Q=null,ue=void 0,ve=null,fe=!!L.dynamicChildren)=>{if(z===L)return;z&&!Zo(z,L)&&(se=ze(z),re(z,ae,Q,!0),z=null),L.patchFlag===-2&&(fe=!1,L.dynamicChildren=null);const{type:oe,ref:q,shapeFlag:G}=L;switch(oe){case Wi:b(z,L,ee,se);break;case $t:m(z,L,ee,se);break;case qa:z==null&&y(L,ee,se,ue);break;case nt:_(z,L,ee,se,ae,Q,ue,ve,fe);break;default:G&1?x(z,L,ee,se,ae,Q,ue,ve,fe):G&6?T(z,L,ee,se,ae,Q,ue,ve,fe):(G&64||G&128)&&oe.process(z,L,ee,se,ae,Q,ue,ve,fe,ne)}q!=null&&ae?bi(q,z&&z.ref,Q,L||z,!L):q==null&&z&&z.ref!=null&&bi(z.ref,null,Q,z,!0)},b=(z,L,ee,se)=>{if(z==null)o(L.el=a(L.children),ee,se);else{const ae=L.el=z.el;L.children!==z.children&&d(ae,L.children)}},m=(z,L,ee,se)=>{z==null?o(L.el=s(L.children||""),ee,se):L.el=z.el},y=(z,L,ee,se)=>{[z.el,z.anchor]=u(z.children,L,ee,se,z.el,z.anchor)},$=({el:z,anchor:L},ee,se)=>{let ae;for(;z&&z!==L;)ae=v(z),o(z,ee,se),z=ae;o(L,ee,se)},S=({el:z,anchor:L})=>{let ee;for(;z&&z!==L;)ee=v(z),r(z),z=ee;r(L)},x=(z,L,ee,se,ae,Q,ue,ve,fe)=>{if(L.type==="svg"?ue="svg":L.type==="math"&&(ue="mathml"),z==null)R(L,ee,se,ae,Q,ue,ve,fe);else{const oe=z.el&&z.el._isVueCE?z.el:null;try{oe&&oe._beginPatch(),k(z,L,ae,Q,ue,ve,fe)}finally{oe&&oe._endPatch()}}},R=(z,L,ee,se,ae,Q,ue,ve)=>{let fe,oe;const{props:q,shapeFlag:G,transition:W,dirs:Y}=z;if(fe=z.el=l(z.type,Q,q&&q.is,q),G&8?c(fe,z.children):G&16&&w(z.children,fe,null,se,ae,Ga(z,Q),ue,ve),Y&&Vo(z,null,se,"created"),C(fe,z,z.scopeId,ue,se),q){for(const Le in q)Le!=="value"&&!pi(Le)&&i(fe,Le,null,q[Le],Q,se);"value"in q&&i(fe,"value",null,q.value,Q),(oe=q.onVnodeBeforeMount)&&Mn(oe,se,z)}Y&&Vo(z,null,se,"beforeMount");const Se=Fm(ae,W);Se&&W.beforeEnter(fe),o(fe,L,ee),((oe=q&&q.onVnodeMounted)||Se||Y)&&Zt(()=>{oe&&Mn(oe,se,z),Se&&W.enter(fe),Y&&Vo(z,null,se,"mounted")},ae)},C=(z,L,ee,se,ae)=>{if(ee&&g(z,ee),se)for(let Q=0;Q{for(let oe=fe;oe{const ve=L.el=z.el;let{patchFlag:fe,dynamicChildren:oe,dirs:q}=L;fe|=z.patchFlag&16;const G=z.props||ht,W=L.props||ht;let Y;if(ee&&Ko(ee,!1),(Y=W.onVnodeBeforeUpdate)&&Mn(Y,ee,L,z),q&&Vo(L,z,ee,"beforeUpdate"),ee&&Ko(ee,!0),(G.innerHTML&&W.innerHTML==null||G.textContent&&W.textContent==null)&&c(ve,""),oe?F(z.dynamicChildren,oe,ve,ee,se,Ga(L,ae),Q):ue||V(z,L,ve,null,ee,se,Ga(L,ae),Q,!1),fe>0){if(fe&16)M(ve,G,W,ee,ae);else if(fe&2&&G.class!==W.class&&i(ve,"class",null,W.class,ae),fe&4&&i(ve,"style",G.style,W.style,ae),fe&8){const Se=L.dynamicProps;for(let Le=0;Le{Y&&Mn(Y,ee,L,z),q&&Vo(L,z,ee,"updated")},se)},F=(z,L,ee,se,ae,Q,ue)=>{for(let ve=0;ve{if(L!==ee){if(L!==ht)for(const Q in L)!pi(Q)&&!(Q in ee)&&i(z,Q,L[Q],null,ae,se);for(const Q in ee){if(pi(Q))continue;const ue=ee[Q],ve=L[Q];ue!==ve&&Q!=="value"&&i(z,Q,ve,ue,ae,se)}"value"in ee&&i(z,"value",L.value,ee.value,ae)}},_=(z,L,ee,se,ae,Q,ue,ve,fe)=>{const oe=L.el=z?z.el:a(""),q=L.anchor=z?z.anchor:a("");let{patchFlag:G,dynamicChildren:W,slotScopeIds:Y}=L;Y&&(ve=ve?ve.concat(Y):Y),z==null?(o(oe,ee,se),o(q,ee,se),w(L.children||[],ee,q,ae,Q,ue,ve,fe)):G>0&&G&64&&W&&z.dynamicChildren&&z.dynamicChildren.length===W.length?(F(z.dynamicChildren,W,ee,ae,Q,ue,ve),(L.key!=null||ae&&L===ae.subTree)&&kd(z,L,!0)):V(z,L,ee,q,ae,Q,ue,ve,fe)},T=(z,L,ee,se,ae,Q,ue,ve,fe)=>{L.slotScopeIds=ve,z==null?L.shapeFlag&512?ae.ctx.activate(L,ee,se,ue,fe):B(L,ee,se,ae,Q,ue,fe):D(z,L,fe)},B=(z,L,ee,se,ae,Q,ue)=>{const ve=z.component=Hm(z,se,ae);if(ta(z)&&(ve.ctx.renderer=ne),Nm(ve,!1,ue),ve.asyncDep){if(ae&&ae.registerDep(ve,K,ue),!z.el){const fe=ve.subTree=Pe($t);m(null,fe,L,ee),z.placeholder=fe.el}}else K(ve,z,L,ee,ae,Q,ue)},D=(z,L,ee)=>{const se=L.component=z.component;if(wm(z,L,ee))if(se.asyncDep&&!se.asyncResolved){N(se,L,ee);return}else se.next=L,se.update();else L.el=z.el,se.vnode=L},K=(z,L,ee,se,ae,Q,ue)=>{const ve=()=>{if(z.isMounted){let{next:G,bu:W,u:Y,parent:Se,vnode:Le}=z;{const at=qh(z);if(at){G&&(G.el=Le.el,N(z,G,ue)),at.asyncDep.then(()=>{Zt(()=>{z.isUnmounted||oe()},ae)});return}}let Ie=G,De;Ko(z,!1),G?(G.el=Le.el,N(z,G,ue)):G=Le,W&&Ha(W),(De=G.props&&G.props.onVnodeBeforeUpdate)&&Mn(De,Se,G,Le),Ko(z,!0);const Ge=Fc(z),Xe=z.subTree;z.subTree=Ge,p(Xe,Ge,f(Xe.el),ze(Xe),z,ae,Q),G.el=Ge.el,Ie===null&&Cm(z,Ge.el),Y&&Zt(Y,ae),(De=G.props&&G.props.onVnodeUpdated)&&Zt(()=>Mn(De,Se,G,Le),ae)}else{let G;const{el:W,props:Y}=L,{bm:Se,m:Le,parent:Ie,root:De,type:Ge}=z,Xe=Tr(L);Ko(z,!1),Se&&Ha(Se),!Xe&&(G=Y&&Y.onVnodeBeforeMount)&&Mn(G,Ie,L),Ko(z,!0);{De.ce&&De.ce._hasShadowRoot()&&De.ce._injectChildStyle(Ge,z.parent?z.parent.type:void 0);const at=z.subTree=Fc(z);p(null,at,ee,se,z,ae,Q),L.el=at.el}if(Le&&Zt(Le,ae),!Xe&&(G=Y&&Y.onVnodeMounted)){const at=L;Zt(()=>Mn(G,Ie,at),ae)}(L.shapeFlag&256||Ie&&Tr(Ie.vnode)&&Ie.vnode.shapeFlag&256)&&z.a&&Zt(z.a,ae),z.isMounted=!0,L=ee=se=null}};z.scope.on();const fe=z.effect=new eh(ve);z.scope.off();const oe=z.update=fe.run.bind(fe),q=z.job=fe.runIfDirty.bind(fe);q.i=z,q.id=z.uid,fe.scheduler=()=>yd(q),Ko(z,!0),oe()},N=(z,L,ee)=>{L.component=z;const se=z.vnode.props;z.vnode=L,z.next=null,Rm(z,L.props,se,ee),_m(z,L.children,ee),uo(),wc(z),fo()},V=(z,L,ee,se,ae,Q,ue,ve,fe=!1)=>{const oe=z&&z.children,q=z?z.shapeFlag:0,G=L.children,{patchFlag:W,shapeFlag:Y}=L;if(W>0){if(W&128){he(oe,G,ee,se,ae,Q,ue,ve,fe);return}else if(W&256){ie(oe,G,ee,se,ae,Q,ue,ve,fe);return}}Y&8?(q&16&&$e(oe,ae,Q),G!==oe&&c(ee,G)):q&16?Y&16?he(oe,G,ee,se,ae,Q,ue,ve,fe):$e(oe,ae,Q,!0):(q&8&&c(ee,""),Y&16&&w(G,ee,se,ae,Q,ue,ve,fe))},ie=(z,L,ee,se,ae,Q,ue,ve,fe)=>{z=z||Pr,L=L||Pr;const oe=z.length,q=L.length,G=Math.min(oe,q);let W;for(W=0;Wq?$e(z,ae,Q,!0,!1,G):w(L,ee,se,ae,Q,ue,ve,fe,G)},he=(z,L,ee,se,ae,Q,ue,ve,fe)=>{let oe=0;const q=L.length;let G=z.length-1,W=q-1;for(;oe<=G&&oe<=W;){const Y=z[oe],Se=L[oe]=fe?lo(L[oe]):Nn(L[oe]);if(Zo(Y,Se))p(Y,Se,ee,null,ae,Q,ue,ve,fe);else break;oe++}for(;oe<=G&&oe<=W;){const Y=z[G],Se=L[W]=fe?lo(L[W]):Nn(L[W]);if(Zo(Y,Se))p(Y,Se,ee,null,ae,Q,ue,ve,fe);else break;G--,W--}if(oe>G){if(oe<=W){const Y=W+1,Se=YW)for(;oe<=G;)re(z[oe],ae,Q,!0),oe++;else{const Y=oe,Se=oe,Le=new Map;for(oe=Se;oe<=W;oe++){const Re=L[oe]=fe?lo(L[oe]):Nn(L[oe]);Re.key!=null&&Le.set(Re.key,oe)}let Ie,De=0;const Ge=W-Se+1;let Xe=!1,at=0;const mt=new Array(Ge);for(oe=0;oe=Ge){re(Re,ae,Q,!0);continue}let te;if(Re.key!=null)te=Le.get(Re.key);else for(Ie=Se;Ie<=W;Ie++)if(mt[Ie-Se]===0&&Zo(Re,L[Ie])){te=Ie;break}te===void 0?re(Re,ae,Q,!0):(mt[te-Se]=oe+1,te>=at?at=te:Xe=!0,p(Re,L[te],ee,null,ae,Q,ue,ve,fe),De++)}const ft=Xe?Om(mt):Pr;for(Ie=ft.length-1,oe=Ge-1;oe>=0;oe--){const Re=Se+oe,te=L[Re],A=L[Re+1],X=Re+1{const{el:Q,type:ue,transition:ve,children:fe,shapeFlag:oe}=z;if(oe&6){J(z.component.subTree,L,ee,se);return}if(oe&128){z.suspense.move(L,ee,se);return}if(oe&64){ue.move(z,L,ee,ne);return}if(ue===nt){o(Q,L,ee);for(let G=0;Gve.enter(Q),ae);else{const{leave:G,delayLeave:W,afterLeave:Y}=ve,Se=()=>{z.ctx.isUnmounted?r(Q):o(Q,L,ee)},Le=()=>{Q._isLeaving&&Q[Dn](!0),G(Q,()=>{Se(),Y&&Y()})};W?W(Q,Se,Le):Le()}else o(Q,L,ee)},re=(z,L,ee,se=!1,ae=!1)=>{const{type:Q,props:ue,ref:ve,children:fe,dynamicChildren:oe,shapeFlag:q,patchFlag:G,dirs:W,cacheIndex:Y,memo:Se}=z;if(G===-2&&(ae=!1),ve!=null&&(uo(),bi(ve,null,ee,z,!0),fo()),Y!=null&&(L.renderCache[Y]=void 0),q&256){L.ctx.deactivate(z);return}const Le=q&1&&W,Ie=!Tr(z);let De;if(Ie&&(De=ue&&ue.onVnodeBeforeUnmount)&&Mn(De,L,z),q&6)le(z.component,ee,se);else{if(q&128){z.suspense.unmount(ee,se);return}Le&&Vo(z,null,L,"beforeUnmount"),q&64?z.type.remove(z,L,ee,ne,se):oe&&!oe.hasOnce&&(Q!==nt||G>0&&G&64)?$e(oe,L,ee,!1,!0):(Q===nt&&G&384||!ae&&q&16)&&$e(fe,L,ee),se&&ye(z)}const Ge=Se!=null&&Y==null;(Ie&&(De=ue&&ue.onVnodeUnmounted)||Le||Ge)&&Zt(()=>{De&&Mn(De,L,z),Le&&Vo(z,null,L,"unmounted"),Ge&&(z.el=null)},ee)},ye=z=>{const{type:L,el:ee,anchor:se,transition:ae}=z;if(L===nt){Z(ee,se);return}if(L===qa){S(z);return}const Q=()=>{r(ee),ae&&!ae.persisted&&ae.afterLeave&&ae.afterLeave()};if(z.shapeFlag&1&&ae&&!ae.persisted){const{leave:ue,delayLeave:ve}=ae,fe=()=>ue(ee,Q);ve?ve(z.el,Q,fe):fe()}else Q()},Z=(z,L)=>{let ee;for(;z!==L;)ee=v(z),r(z),z=ee;r(L)},le=(z,L,ee)=>{const{bum:se,scope:ae,job:Q,subTree:ue,um:ve,m:fe,a:oe}=z;Mc(fe),Mc(oe),se&&Ha(se),ae.stop(),Q&&(Q.flags|=8,re(ue,z,L,ee)),ve&&Zt(ve,L),Zt(()=>{z.isUnmounted=!0},L)},$e=(z,L,ee,se=!1,ae=!1,Q=0)=>{for(let ue=Q;ue{if(z.shapeFlag&6)return ze(z.component.subTree);if(z.shapeFlag&128)return z.suspense.next();const L=v(z.anchor||z.el),ee=L&&L[Sh];return ee?v(ee):L};let Ae=!1;const Te=(z,L,ee)=>{let se;z==null?L._vnode&&(re(L._vnode,null,null,!0),se=L._vnode.component):p(L._vnode||null,z,L,null,null,null,ee),L._vnode=z,Ae||(Ae=!0,wc(se),yh(),Ae=!1)},ne={p,um:re,m:J,r:ye,mt:B,mc:w,pc:V,pbc:F,n:ze,o:e};return{render:Te,hydrate:void 0,createApp:vm(Te)}}function Ga({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ko({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Fm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function kd(e,t,n=!1){const o=e.children,r=t.children;if(We(o)&&We(r))for(let i=0;i>1,e[n[a]]0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function qh(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:qh(t)}function Mc(e){if(e)for(let t=0;te.__isSuspense;function Em(e,t){t&&t.pendingBranch?We(e)?t.effects.push(...e):t.effects.push(e):Ub(e)}const nt=Symbol.for("v-fgt"),Wi=Symbol.for("v-txt"),$t=Symbol.for("v-cmt"),qa=Symbol.for("v-stc"),yi=[];let sn=null;function Xn(e=!1){yi.push(sn=e?null:[])}function Mm(){yi.pop(),sn=yi[yi.length-1]||null}let Fi=1;function zl(e,t=!1){Fi+=e,e<0&&sn&&t&&(sn.hasOnce=!0)}function Zh(e){return e.dynamicChildren=Fi>0?sn||Pr:null,Mm(),Fi>0&&sn&&sn.push(e),e}function Vi(e,t,n,o,r,i){return Zh(Qe(e,t,n,o,r,i,!0))}function Oi(e,t,n,o,r){return Zh(Pe(e,t,n,o,r,!0))}function Ir(e){return e?e.__v_isVNode===!0:!1}function Zo(e,t){return e.type===t.type&&e.key===t.key}const Jh=({key:e})=>e??null,xl=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?St(e)||Ot(e)||Ke(e)?{i:Ut,r:e,k:t,f:!!n}:e:null);function Qe(e,t=null,n=null,o=0,r=null,i=e===nt?0:1,l=!1,a=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jh(t),ref:t&&xl(t),scopeId:wh,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ut};return a?(Pd(s,n),i&128&&e.normalize(s)):n&&(s.shapeFlag|=St(n)?8:16),Fi>0&&!l&&sn&&(s.patchFlag>0||i&6)&&s.patchFlag!==32&&sn.push(s),s}const Pe=Bm;function Bm(e,t=null,n=null,o=0,r=null,i=!1){if((!e||e===am)&&(e=$t),Ir(e)){const a=hn(e,t,!0);return n&&Pd(a,n),Fi>0&&!i&&sn&&(a.shapeFlag&6?sn[sn.indexOf(e)]=a:sn.push(a)),a.patchFlag=-2,a}if(Km(e)&&(e=e.__vccOpts),t){t=Am(t);let{class:a,style:s}=t;a&&!St(a)&&(t.class=Ar(a)),ut(s)&&(Jl(s)&&!We(s)&&(s=_t({},s)),t.style=cd(s))}const l=St(e)?1:Yh(e)?128:Rh(e)?64:ut(e)?4:Ke(e)?2:0;return Qe(e,t,n,o,r,l,i,!0)}function Am(e){return e?Jl(e)||jh(e)?_t({},e):e:null}function hn(e,t,n=!1,o=!1){const{props:r,ref:i,patchFlag:l,children:a,transition:s}=e,d=t?nn(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&Jh(d),ref:t&&t.ref?n&&i?We(i)?i.concat(xl(t)):[i,xl(t)]:xl(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==nt?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:s,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&hn(e.ssContent),ssFallback:e.ssFallback&&hn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return s&&o&&rr(c,s.clone(c)),c}function Kt(e=" ",t=0){return Pe(Wi,null,e,t)}function Im(e="",t=!1){return t?(Xn(),Oi($t,null,e)):Pe($t,null,e)}function Nn(e){return e==null||typeof e=="boolean"?Pe($t):We(e)?Pe(nt,null,e.slice()):Ir(e)?lo(e):Pe(Wi,null,String(e))}function lo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:hn(e)}function Pd(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(We(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Pd(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!jh(t)?t._ctx=Ut:r===3&&Ut&&(Ut.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ke(t)?(t={default:t,_ctx:Ut},n=32):(t=String(t),o&64?(n=16,t=[Kt(t)]):n=8);e.children=t,e.shapeFlag|=n}function nn(...e){const t={};for(let n=0;nQt||Ut;let Tl,Bs;{const e=Zl(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),i=>{r.length>1?r.forEach(l=>l(i)):r[0](i)}};Tl=t("__VUE_INSTANCE_SETTERS__",n=>Qt=n),Bs=t("__VUE_SSR_SETTERS__",n=>Ei=n)}const Ki=e=>{const t=Qt;return Tl(e),e.scope.on(),()=>{e.scope.off(),Tl(t)}},Bc=()=>{Qt&&Qt.scope.off(),Tl(null)};function Qh(e){return e.vnode.shapeFlag&4}let Ei=!1;function Nm(e,t=!1,n=!1){t&&Bs(t);const{props:o,children:r}=e.vnode,i=Qh(e);Sm(e,o,i,t),$m(e,r,n||t);const l=i?jm(e,t):void 0;return t&&Bs(!1),l}function jm(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sm);const{setup:o}=n;if(o){uo();const r=e.setupContext=o.length>1?Vm(e):null,i=Ki(e),l=ji(o,e,0,[e.props,r]),a=Uf(l);if(fo(),i(),(a||e.sp)&&!Tr(e)&&Th(e),a){if(l.then(Bc,Bc),t)return l.then(s=>{Ac(e,s)}).catch(s=>{Ql(s,e,0)});e.asyncDep=l}else Ac(e,l)}else ep(e)}function Ac(e,t,n){Ke(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ut(t)&&(e.setupState=gh(t)),ep(e)}function ep(e,t,n){const o=e.type;e.render||(e.render=o.render||Vn);{const r=Ki(e);uo();try{dm(e)}finally{fo(),r()}}}const Wm={get(e,t){return Wt(e,"get",""),e[t]}};function Vm(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Wm),slots:e.slots,emit:e.emit,expose:t}}function la(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(gh(_s(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in mi)return mi[n](e)},has(t,n){return n in t||n in mi}})):e.proxy}function Km(e){return Ke(e)&&"__vccOpts"in e}const O=(e,t)=>Nb(e,t,Ei);function h(e,t,n){try{zl(-1);const o=arguments.length;return o===2?ut(t)&&!We(t)?Ir(t)?Pe(e,null,[t]):Pe(e,t):Pe(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Ir(n)&&(n=[n]),Pe(e,t,n))}finally{zl(1)}}const Um="3.5.34";let As;const Ic=typeof window<"u"&&window.trustedTypes;if(Ic)try{As=Ic.createPolicy("vue",{createHTML:e=>e})}catch{}const tp=As?e=>As.createHTML(e):e=>e,Gm="http://www.w3.org/2000/svg",qm="http://www.w3.org/1998/Math/MathML",io=typeof document<"u"?document:null,Lc=io&&io.createElement("template"),Xm={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?io.createElementNS(Gm,e):t==="mathml"?io.createElementNS(qm,e):n?io.createElement(e,{is:n}):io.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>io.createTextNode(e),createComment:e=>io.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>io.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,i){const l=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Lc.innerHTML=tp(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const a=Lc.content;if(o==="svg"||o==="mathml"){const s=a.firstChild;for(;s.firstChild;)a.appendChild(s.firstChild);a.removeChild(s)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xo="transition",ei="animation",Lr=Symbol("_vtc"),np={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},op=_t({},Ph,np),Ym=e=>(e.displayName="Transition",e.props=op,e),pn=Ym((e,{slots:t})=>h(em,rp(e),t)),Uo=(e,t=[])=>{We(e)?e.forEach(n=>n(...t)):e&&e(...t)},Dc=e=>e?We(e)?e.some(t=>t.length>1):e.length>1:!1;function rp(e){const t={};for(const _ in e)_ in np||(t[_]=e[_]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:s=i,appearActiveClass:d=l,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,u=Zm(r),p=u&&u[0],b=u&&u[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:$,onLeave:S,onLeaveCancelled:x,onBeforeAppear:R=m,onAppear:C=y,onAppearCancelled:w=$}=t,k=(_,T,B,D)=>{_._enterCancelled=D,Ro(_,T?c:a),Ro(_,T?d:l),B&&B()},F=(_,T)=>{_._isLeaving=!1,Ro(_,f),Ro(_,g),Ro(_,v),T&&T()},M=_=>(T,B)=>{const D=_?C:y,K=()=>k(T,_,B);Uo(D,[T,K]),Hc(()=>{Ro(T,_?s:i),In(T,_?c:a),Dc(D)||Nc(T,o,p,K)})};return _t(t,{onBeforeEnter(_){Uo(m,[_]),In(_,i),In(_,l)},onBeforeAppear(_){Uo(R,[_]),In(_,s),In(_,d)},onEnter:M(!1),onAppear:M(!0),onLeave(_,T){_._isLeaving=!0;const B=()=>F(_,T);In(_,f),_._enterCancelled?(In(_,v),Is(_)):(Is(_),In(_,v)),Hc(()=>{_._isLeaving&&(Ro(_,f),In(_,g),Dc(S)||Nc(_,o,b,B))}),Uo(S,[_,B])},onEnterCancelled(_){k(_,!1,void 0,!0),Uo($,[_])},onAppearCancelled(_){k(_,!0,void 0,!0),Uo(w,[_])},onLeaveCancelled(_){F(_),Uo(x,[_])}})}function Zm(e){if(e==null)return null;if(ut(e))return[Xa(e.enter),Xa(e.leave)];{const t=Xa(e);return[t,t]}}function Xa(e){return ib(e)}function In(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Lr]||(e[Lr]=new Set)).add(t)}function Ro(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[Lr];n&&(n.delete(t),n.size||(e[Lr]=void 0))}function Hc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Jm=0;function Nc(e,t,n,o){const r=e._endId=++Jm,i=()=>{r===e._endId&&o()};if(n!=null)return setTimeout(i,n);const{type:l,timeout:a,propCount:s}=ip(e,t);if(!l)return o();const d=l+"end";let c=0;const f=()=>{e.removeEventListener(d,v),i()},v=g=>{g.target===e&&++c>=s&&f()};setTimeout(()=>{c(n[u]||"").split(", "),r=o(`${xo}Delay`),i=o(`${xo}Duration`),l=jc(r,i),a=o(`${ei}Delay`),s=o(`${ei}Duration`),d=jc(a,s);let c=null,f=0,v=0;t===xo?l>0&&(c=xo,f=l,v=i.length):t===ei?d>0&&(c=ei,f=d,v=s.length):(f=Math.max(l,d),c=f>0?l>d?xo:ei:null,v=c?c===xo?i.length:s.length:0);const g=c===xo&&/\b(?:transform|all)(?:,|$)/.test(o(`${xo}Property`).toString());return{type:c,timeout:f,propCount:v,hasTransform:g}}function jc(e,t){for(;e.lengthWc(n)+Wc(e[o])))}function Wc(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Is(e){return(e?e.ownerDocument:document).body.offsetHeight}function Qm(e,t,n){const o=e[Lr];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Fl=Symbol("_vod"),lp=Symbol("_vsh"),Fo={name:"show",beforeMount(e,{value:t},{transition:n}){e[Fl]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ti(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),ti(e,!0),o.enter(e)):o.leave(e,()=>{ti(e,!1)}):ti(e,t))},beforeUnmount(e,{value:t}){ti(e,t)}};function ti(e,t){e.style.display=t?e[Fl]:"none",e[lp]=!t}const e0=Symbol(""),t0=/(?:^|;)\s*display\s*:/;function n0(e,t,n){const o=e.style,r=St(n);let i=!1;if(n&&!r){if(t)if(St(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();n[a]==null&&ui(o,a,"")}else for(const l in t)n[l]==null&&ui(o,l,"");for(const l in n){l==="display"&&(i=!0);const a=n[l];a!=null?r0(e,l,!St(t)&&t?t[l]:void 0,a)||ui(o,l,a):ui(o,l,"")}}else if(r){if(t!==n){const l=o[e0];l&&(n+=";"+l),o.cssText=n,i=t0.test(n)}}else t&&e.removeAttribute("style");Fl in e&&(e[Fl]=i?o.display:"",e[lp]&&(o.display="none"))}const Vc=/\s*!important$/;function ui(e,t,n){if(We(n))n.forEach(o=>ui(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=o0(e,t);Vc.test(n)?e.setProperty(Ao(o),n.replace(Vc,""),"important"):e[o]=n}}const Kc=["Webkit","Moz","ms"],Ya={};function o0(e,t){const n=Ya[t];if(n)return n;let o=kn(t);if(o!=="filter"&&o in e)return Ya[t]=o;o=Xf(o);for(let r=0;rZa||(d0.then(()=>Za=0),Za=Date.now());function u0(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Tn(f0(o,n.value),t,5,[o])};return n.value=e,n.attached=c0(),n}function f0(e,t){if(We(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const Zc=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,h0=(e,t,n,o,r,i)=>{const l=r==="svg";t==="class"?Qm(e,o,l):t==="style"?n0(e,n,o):Gl(t)?ql(t)||a0(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):p0(e,t,o,l))?(qc(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Gc(e,t,o,l,i,t!=="value")):e._isVueCE&&(v0(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!St(o)))?qc(e,kn(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Gc(e,t,o,l))};function p0(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zc(t)&&Ke(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Zc(t)&&St(n)?!1:t in e}function v0(e,t){const n=e._def.props;if(!n)return!1;const o=kn(t);return Array.isArray(n)?n.some(r=>kn(r)===o):Object.keys(n).some(r=>kn(r)===o)}const ap=new WeakMap,sp=new WeakMap,Ol=Symbol("_moveCb"),Jc=Symbol("_enterCb"),g0=e=>(delete e.props.mode,e),b0=g0({name:"TransitionGroup",props:_t({},op,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Lo(),o=kh();let r,i;return Oh(()=>{if(!r.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!w0(r[0].el,n.vnode.el,l)){r=[];return}r.forEach(m0),r.forEach(y0);const a=r.filter(x0);Is(n.vnode.el),a.forEach(s=>{const d=s.el,c=d.style;In(d,l),c.transform=c.webkitTransform=c.transitionDuration="";const f=d[Ol]=v=>{v&&v.target!==d||(!v||v.propertyName.endsWith("transform"))&&(d.removeEventListener("transitionend",f),d[Ol]=null,Ro(d,l))};d.addEventListener("transitionend",f)}),r=[]}),()=>{const l=it(e),a=rp(l);let s=l.tag||nt;if(r=[],i)for(let d=0;d{a.split(/\s+/).forEach(s=>s&&o.classList.remove(s))}),n.split(/\s+/).forEach(a=>a&&o.classList.add(a)),o.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(o);const{hasTransform:l}=ip(o);return i.removeChild(o),l}const C0=["ctrl","shift","alt","meta"],S0={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>C0.some(n=>e[`${n}Key`]&&!t.includes(n))},yr=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((r,...i)=>{for(let l=0;l{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=(r=>{if(!("key"in r))return;const i=Ao(r.key);if(t.some(l=>l===i||R0[l]===i))return e(r)}))},P0=_t({patchProp:h0},Xm);let Qc;function $0(){return Qc||(Qc=zm(P0))}const up=((...e)=>{const t=$0().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=z0(o);if(!r)return;const i=t._component;!Ke(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=n(r,!1,_0(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t});function _0(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function z0(e){return St(e)?document.querySelector(e):e}function T0(e){let t=".",n="__",o="--",r;if(e){let u=e.blockPrefix;u&&(t=u),u=e.elementPrefix,u&&(n=u),u=e.modifierPrefix,u&&(o=u)}const i={install(u){r=u.c;const p=u.context;p.bem={},p.bem.b=null,p.bem.els=null}};function l(u){let p,b;return{before(m){p=m.bem.b,b=m.bem.els,m.bem.els=null},after(m){m.bem.b=p,m.bem.els=b},$({context:m,props:y}){return u=typeof u=="string"?u:u({context:m,props:y}),m.bem.b=u,`${y?.bPrefix||t}${m.bem.b}`}}}function a(u){let p;return{before(b){p=b.bem.els},after(b){b.bem.els=p},$({context:b,props:m}){return u=typeof u=="string"?u:u({context:b,props:m}),b.bem.els=u.split(",").map(y=>y.trim()),b.bem.els.map(y=>`${m?.bPrefix||t}${b.bem.b}${n}${y}`).join(", ")}}}function s(u){return{$({context:p,props:b}){u=typeof u=="string"?u:u({context:p,props:b});const m=u.split(",").map(S=>S.trim());function y(S){return m.map(x=>`&${b?.bPrefix||t}${p.bem.b}${S!==void 0?`${n}${S}`:""}${o}${x}`).join(", ")}const $=p.bem.els;return $!==null?y($[0]):y()}}}function d(u){return{$({context:p,props:b}){u=typeof u=="string"?u:u({context:p,props:b});const m=p.bem.els;return`&:not(${b?.bPrefix||t}${p.bem.b}${m!==null&&m.length>0?`${n}${m[0]}`:""}${o}${u})`}}}return Object.assign(i,{cB:((...u)=>r(l(u[0]),u[1],u[2])),cE:((...u)=>r(a(u[0]),u[1],u[2])),cM:((...u)=>r(s(u[0]),u[1],u[2])),cNotM:((...u)=>r(d(u[0]),u[1],u[2]))}),i}function F0(e){let t=0;for(let n=0;n{let r=F0(o);if(r){if(r===1){e.forEach(l=>{n.push(o.replace("&",l))});return}}else{e.forEach(l=>{n.push((l&&l+" ")+o)});return}let i=[o];for(;r--;){const l=[];i.forEach(a=>{e.forEach(s=>{l.push(a.replace("&",s))})}),i=l}i.forEach(l=>n.push(l))}),n}function M0(e,t){const n=[];return t.split(fp).forEach(o=>{e.forEach(r=>{n.push((r&&r+" ")+o)})}),n}function B0(e){let t=[""];return e.forEach(n=>{n=n&&n.trim(),n&&(n.includes("&")?t=E0(t,n):t=M0(t,n))}),t.join(", ").replace(O0," ")}function eu(e){if(!e)return;const t=e.parentElement;t&&t.removeChild(e)}function aa(e,t){return(t??document.head).querySelector(`style[cssr-id="${e}"]`)}function A0(e){const t=document.createElement("style");return t.setAttribute("cssr-id",e),t}function nl(e){return e?/^\s*@(s|m)/.test(e):!1}const I0=/[A-Z]/g;function hp(e){return e.replace(I0,t=>"-"+t.toLowerCase())}function L0(e,t=" "){return typeof e=="object"&&e!==null?` { +`+Object.entries(e).map(n=>t+` ${hp(n[0])}: ${n[1]};`).join(` +`)+` +`+t+"}":`: ${e};`}function D0(e,t,n){return typeof e=="function"?e({context:t.context,props:n}):e}function tu(e,t,n,o){if(!t)return"";const r=D0(t,n,o);if(!r)return"";if(typeof r=="string")return`${e} { +${r} +}`;const i=Object.keys(r);if(i.length===0)return n.config.keepEmptyBlock?e+` { +}`:"";const l=e?[e+" {"]:[];return i.forEach(a=>{const s=r[a];if(a==="raw"){l.push(` +`+s+` +`);return}a=hp(a),s!=null&&l.push(` ${a}${L0(s)}`)}),e&&l.push("}"),l.join(` +`)}function Ls(e,t,n){e&&e.forEach(o=>{if(Array.isArray(o))Ls(o,t,n);else if(typeof o=="function"){const r=o(t);Array.isArray(r)?Ls(r,t,n):r&&n(r)}else o&&n(o)})}function pp(e,t,n,o,r){const i=e.$;let l="";if(!i||typeof i=="string")nl(i)?l=i:t.push(i);else if(typeof i=="function"){const d=i({context:o.context,props:r});nl(d)?l=d:t.push(d)}else if(i.before&&i.before(o.context),!i.$||typeof i.$=="string")nl(i.$)?l=i.$:t.push(i.$);else if(i.$){const d=i.$({context:o.context,props:r});nl(d)?l=d:t.push(d)}const a=B0(t),s=tu(a,e.props,o,r);l?n.push(`${l} {`):s.length&&n.push(s),e.children&&Ls(e.children,{context:o.context,props:r},d=>{if(typeof d=="string"){const c=tu(a,{raw:d},o,r);n.push(c)}else pp(d,t,n,o,r)}),t.pop(),l&&n.push("}"),i&&i.after&&i.after(o.context)}function H0(e,t,n){const o=[];return pp(e,[],o,t,n),o.join(` + +`)}function Mi(e){for(var t=0,n,o=0,r=e.length;r>=4;++o,r-=4)n=e.charCodeAt(o)&255|(e.charCodeAt(++o)&255)<<8|(e.charCodeAt(++o)&255)<<16|(e.charCodeAt(++o)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(r){case 3:t^=(e.charCodeAt(o+2)&255)<<16;case 2:t^=(e.charCodeAt(o+1)&255)<<8;case 1:t^=e.charCodeAt(o)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}typeof window<"u"&&(window.__cssrContext={});function N0(e,t,n,o){const{els:r}=t;if(n===void 0)r.forEach(eu),t.els=[];else{const i=aa(n,o);i&&r.includes(i)&&(eu(i),t.els=r.filter(l=>l!==i))}}function nu(e,t){e.push(t)}function j0(e,t,n,o,r,i,l,a,s){let d;if(n===void 0&&(d=t.render(o),n=Mi(d)),s){s.adapter(n,d??t.render(o));return}a===void 0&&(a=document.head);const c=aa(n,a);if(c!==null&&!i)return c;const f=c??A0(n);if(d===void 0&&(d=t.render(o)),f.textContent=d,c!==null)return c;if(l){const v=a.querySelector(`meta[name="${l}"]`);if(v)return a.insertBefore(f,v),nu(t.els,f),f}return r?a.insertBefore(f,a.querySelector("style, link")):a.appendChild(f),nu(t.els,f),f}function W0(e){return H0(this,this.instance,e)}function V0(e={}){const{id:t,ssr:n,props:o,head:r=!1,force:i=!1,anchorMetaName:l,parent:a}=e;return j0(this.instance,this,t,o,r,i,l,a,n)}function K0(e={}){const{id:t,parent:n}=e;N0(this.instance,this,t,n)}const ol=function(e,t,n,o){return{instance:e,$:t,props:n,children:o,els:[],render:W0,mount:V0,unmount:K0}},U0=function(e,t,n,o){return Array.isArray(t)?ol(e,{$:null},null,t):Array.isArray(n)?ol(e,t,null,n):Array.isArray(o)?ol(e,t,n,o):ol(e,t,n,null)};function vp(e={}){const t={c:((...n)=>U0(t,...n)),use:(n,...o)=>n.install(t,...o),find:aa,context:{},config:e};return t}function G0(e,t){if(e===void 0)return!1;if(t){const{context:{ids:n}}=t;return n.has(e)}return aa(e)!==null}const q0="n",Bi=`.${q0}-`,X0="__",Y0="--",gp=vp(),bp=T0({blockPrefix:Bi,elementPrefix:X0,modifierPrefix:Y0});gp.use(bp);const{c:I,find:gT}=gp,{cB:P,cE:j,cM:H,cNotM:dt}=bp;function sa(e){return I(({props:{bPrefix:t}})=>`${t||Bi}modal, ${t||Bi}drawer`,[e])}function $d(e){return I(({props:{bPrefix:t}})=>`${t||Bi}popover`,[e])}function mp(e){return I(({props:{bPrefix:t}})=>`&${t||Bi}modal`,e)}const Z0=(...e)=>I(">",[P(...e)]);function de(e,t){return e+(t==="default"?"":t.replace(/^[a-z]/,n=>n.toUpperCase()))}let El=[];const yp=new WeakMap;function J0(){El.forEach(e=>e(...yp.get(e))),El=[]}function Ai(e,...t){yp.set(e,t),!El.includes(e)&&El.push(e)===1&&requestAnimationFrame(J0)}function yn(e,t){let{target:n}=e;for(;n;){if(n.dataset&&n.dataset[t]!==void 0)return!0;n=n.parentElement}return!1}function Dr(e){return e.composedPath()[0]||null}function Q0(e){if(typeof e=="number")return{"":e.toString()};const t={};return e.split(/ +/).forEach(n=>{if(n==="")return;const[o,r]=n.split(":");r===void 0?t[""]=o:t[o]=r}),t}function xr(e,t){var n;if(e==null)return;const o=Q0(e);if(t===void 0)return o[""];if(typeof t=="string")return(n=o[t])!==null&&n!==void 0?n:o[""];if(Array.isArray(t)){for(let r=t.length-1;r>=0;--r){const i=t[r];if(i in o)return o[i]}return o[""]}else{let r,i=-1;return Object.keys(o).forEach(l=>{const a=Number(l);!Number.isNaN(a)&&t>=a&&a>=i&&(i=a,r=o[l])}),r}}function Pt(e){return typeof e=="string"?e.endsWith("px")?Number(e.slice(0,e.length-2)):Number(e):e}function pt(e){if(e!=null)return typeof e=="number"?`${e}px`:e.endsWith("px")?e:`${e}px`}function Ft(e,t){const n=e.trim().split(/\s+/g),o={top:n[0]};switch(n.length){case 1:o.right=n[0],o.bottom=n[0],o.left=n[0];break;case 2:o.right=n[1],o.left=n[1],o.bottom=n[0];break;case 3:o.right=n[1],o.bottom=n[2],o.left=n[1];break;case 4:o.right=n[1],o.bottom=n[2],o.left=n[3];break;default:throw new Error("[seemly/getMargin]:"+e+" is not a valid value.")}return t===void 0?o:o[t]}function ey(e,t){const[n,o]=e.split(" ");return{row:n,col:o||n}}const ou={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#0FF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000",blanchedalmond:"#FFEBCD",blue:"#00F",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#0FF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#F0F",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#0F0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#F0F",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#F00",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFF",whitesmoke:"#F5F5F5",yellow:"#FF0",yellowgreen:"#9ACD32",transparent:"#0000"};function ty(e,t,n){t/=100,n/=100;let o=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[o(5)*255,o(3)*255,o(1)*255]}function ny(e,t,n){t/=100,n/=100;let o=t*Math.min(n,1-n),r=(i,l=(i+e/30)%12)=>n-o*Math.max(Math.min(l-3,9-l,1),-1);return[r(0)*255,r(8)*255,r(4)*255]}const Jn="^\\s*",Qn="\\s*$",Oo="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))%\\s*",dn="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))\\s*",Jo="([0-9A-Fa-f])",Qo="([0-9A-Fa-f]{2})",xp=new RegExp(`${Jn}hsl\\s*\\(${dn},${Oo},${Oo}\\)${Qn}`),wp=new RegExp(`${Jn}hsv\\s*\\(${dn},${Oo},${Oo}\\)${Qn}`),Cp=new RegExp(`${Jn}hsla\\s*\\(${dn},${Oo},${Oo},${dn}\\)${Qn}`),Sp=new RegExp(`${Jn}hsva\\s*\\(${dn},${Oo},${Oo},${dn}\\)${Qn}`),oy=new RegExp(`${Jn}rgb\\s*\\(${dn},${dn},${dn}\\)${Qn}`),ry=new RegExp(`${Jn}rgba\\s*\\(${dn},${dn},${dn},${dn}\\)${Qn}`),iy=new RegExp(`${Jn}#${Jo}${Jo}${Jo}${Qn}`),ly=new RegExp(`${Jn}#${Qo}${Qo}${Qo}${Qn}`),ay=new RegExp(`${Jn}#${Jo}${Jo}${Jo}${Jo}${Qn}`),sy=new RegExp(`${Jn}#${Qo}${Qo}${Qo}${Qo}${Qn}`);function tn(e){return parseInt(e,16)}function dy(e){try{let t;if(t=Cp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),tr(t[13])];if(t=xp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),1];throw new Error(`[seemly/hsla]: Invalid color value ${e}.`)}catch(t){throw t}}function cy(e){try{let t;if(t=Sp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),tr(t[13])];if(t=wp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),1];throw new Error(`[seemly/hsva]: Invalid color value ${e}.`)}catch(t){throw t}}function ir(e){try{let t;if(t=ly.exec(e))return[tn(t[1]),tn(t[2]),tn(t[3]),1];if(t=oy.exec(e))return[Vt(t[1]),Vt(t[5]),Vt(t[9]),1];if(t=ry.exec(e))return[Vt(t[1]),Vt(t[5]),Vt(t[9]),tr(t[13])];if(t=iy.exec(e))return[tn(t[1]+t[1]),tn(t[2]+t[2]),tn(t[3]+t[3]),1];if(t=sy.exec(e))return[tn(t[1]),tn(t[2]),tn(t[3]),tr(tn(t[4])/255)];if(t=ay.exec(e))return[tn(t[1]+t[1]),tn(t[2]+t[2]),tn(t[3]+t[3]),tr(tn(t[4]+t[4])/255)];if(e in ou)return ir(ou[e]);if(xp.test(e)||Cp.test(e)){const[n,o,r,i]=dy(e);return[...ny(n,o,r),i]}else if(wp.test(e)||Sp.test(e)){const[n,o,r,i]=cy(e);return[...ty(n,o,r),i]}throw new Error(`[seemly/rgba]: Invalid color value ${e}.`)}catch(t){throw t}}function uy(e){return e>1?1:e<0?0:e}function Ds(e,t,n,o){return`rgba(${Vt(e)}, ${Vt(t)}, ${Vt(n)}, ${uy(o)})`}function Ja(e,t,n,o,r){return Vt((e*t*(1-o)+n*o)/r)}function rt(e,t){Array.isArray(e)||(e=ir(e)),Array.isArray(t)||(t=ir(t));const n=e[3],o=t[3],r=tr(n+o-n*o);return Ds(Ja(e[0],n,t[0],o,r),Ja(e[1],n,t[1],o,r),Ja(e[2],n,t[2],o,r),r)}function Ue(e,t){const[n,o,r,i=1]=Array.isArray(e)?e:ir(e);return typeof t.alpha=="number"?Ds(n,o,r,t.alpha):Ds(n,o,r,i)}function rl(e,t){const[n,o,r,i=1]=Array.isArray(e)?e:ir(e),{lightness:l=1,alpha:a=1}=t;return fy([n*l,o*l,r*l,i*a])}function tr(e){const t=Math.round(Number(e)*100)/100;return t>1?1:t<0?0:t}function Ml(e){const t=Math.round(Number(e));return t>=360||t<0?0:t}function Vt(e){const t=Math.round(Number(e));return t>255?255:t<0?0:t}function _o(e){const t=Math.round(Number(e));return t>100?100:t<0?0:t}function fy(e){const[t,n,o]=e;return 3 in e?`rgba(${Vt(t)}, ${Vt(n)}, ${Vt(o)}, ${tr(e[3])})`:`rgba(${Vt(t)}, ${Vt(n)}, ${Vt(o)}, 1)`}function ar(e=8){return Math.random().toString(16).slice(2,2+e)}function hy(e,t){const n=[];for(let o=0;o{t.contains(wl(r))||n(r)};return{mousemove:o,touchstart:o}}else if(e==="clickoutside"){let o=!1;const r=l=>{o=!t.contains(wl(l))},i=l=>{o&&(t.contains(wl(l))||n(l))};return{mousedown:r,mouseup:i,touchstart:r,touchend:i}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function Rp(e,t,n){const o=py[e];let r=o.get(t);r===void 0&&o.set(t,r=new WeakMap);let i=r.get(n);return i===void 0&&r.set(n,i=vy(e,t,n)),i}function gy(e,t,n,o){if(e==="mousemoveoutside"||e==="clickoutside"){const r=Rp(e,t,n);return Object.keys(r).forEach(i=>{ct(i,document,r[i],o)}),!0}return!1}function by(e,t,n,o){if(e==="mousemoveoutside"||e==="clickoutside"){const r=Rp(e,t,n);return Object.keys(r).forEach(i=>{et(i,document,r[i],o)}),!0}return!1}function my(){if(typeof window>"u")return{on:()=>{},off:()=>{}};const e=new WeakMap,t=new WeakMap;function n(){e.set(this,!0)}function o(){e.set(this,!0),t.set(this,!0)}function r(C,w,k){const F=C[w];return C[w]=function(){return k.apply(C,arguments),F.apply(C,arguments)},C}function i(C,w){C[w]=Event.prototype[w]}const l=new WeakMap,a=Object.getOwnPropertyDescriptor(Event.prototype,"currentTarget");function s(){var C;return(C=l.get(this))!==null&&C!==void 0?C:null}function d(C,w){a!==void 0&&Object.defineProperty(C,"currentTarget",{configurable:!0,enumerable:!0,get:w??a.get})}const c={bubble:{},capture:{}},f={};function v(){const C=function(w){const{type:k,eventPhase:F,bubbles:M}=w,_=wl(w);if(F===2)return;const T=F===1?"capture":"bubble";let B=_;const D=[];for(;B===null&&(B=window),D.push(B),B!==window;)B=B.parentNode||null;const K=c.capture[k],N=c.bubble[k];if(r(w,"stopPropagation",n),r(w,"stopImmediatePropagation",o),d(w,s),T==="capture"){if(K===void 0)return;for(let V=D.length-1;V>=0&&!e.has(w);--V){const ie=D[V],he=K.get(ie);if(he!==void 0){l.set(w,ie);for(const J of he){if(t.has(w))break;J(w)}}if(V===0&&!M&&N!==void 0){const J=N.get(ie);if(J!==void 0)for(const re of J){if(t.has(w))break;re(w)}}}}else if(T==="bubble"){if(N===void 0)return;for(let V=0;V_(w))};return C.displayName="evtdUnifiedWindowEventHandler",C}const u=v(),p=g();function b(C,w){const k=c[C];return k[w]===void 0&&(k[w]=new Map,window.addEventListener(w,u,C==="capture")),k[w]}function m(C){return f[C]===void 0&&(f[C]=new Set,window.addEventListener(C,p)),f[C]}function y(C,w){let k=C.get(w);return k===void 0&&C.set(w,k=new Set),k}function $(C,w,k,F){const M=c[w][k];if(M!==void 0){const _=M.get(C);if(_!==void 0&&_.has(F))return!0}return!1}function S(C,w){const k=f[C];return!!(k!==void 0&&k.has(w))}function x(C,w,k,F){let M;if(typeof F=="object"&&F.once===!0?M=K=>{R(C,w,M,F),k(K)}:M=k,gy(C,w,M,F))return;const T=F===!0||typeof F=="object"&&F.capture===!0?"capture":"bubble",B=b(T,C),D=y(B,w);if(D.has(M)||D.add(M),w===window){const K=m(C);K.has(M)||K.add(M)}}function R(C,w,k,F){if(by(C,w,k,F))return;const _=F===!0||typeof F=="object"&&F.capture===!0,T=_?"capture":"bubble",B=b(T,C),D=y(B,w);if(w===window&&!$(w,_?"bubble":"capture",C,k)&&S(C,k)){const N=f[C];N.delete(k),N.size===0&&(window.removeEventListener(C,p),f[C]=void 0)}D.has(k)&&D.delete(k),D.size===0&&B.delete(w),B.size===0&&(window.removeEventListener(C,u,T==="capture"),c[T][C]=void 0)}return{on:x,off:R}}const{on:ct,off:et}=my();function yy(e){const t=E(!!e.value);if(t.value)return zn(t);const n=tt(e,o=>{o&&(t.value=!0,n())});return zn(t)}function ot(e){const t=O(e),n=E(t.value);return tt(t,o=>{n.value=o}),typeof e=="function"?n:{__v_isRef:!0,get value(){return n.value},set value(o){e.set(o)}}}function _d(){return Lo()!==null}const da=typeof window<"u";let Or,xi;const xy=()=>{var e,t;Or=da?(t=(e=document)===null||e===void 0?void 0:e.fonts)===null||t===void 0?void 0:t.ready:void 0,xi=!1,Or!==void 0?Or.then(()=>{xi=!0}):xi=!0};xy();function kp(e){if(xi)return;let t=!1;Ct(()=>{xi||Or?.then(()=>{t||e()})}),xt(()=>{t=!0})}const fi=E(null);function ru(e){if(e.clientX>0||e.clientY>0)fi.value={x:e.clientX,y:e.clientY};else{const{target:t}=e;if(t instanceof Element){const{left:n,top:o,width:r,height:i}=t.getBoundingClientRect();n>0||o>0?fi.value={x:n+r/2,y:o+i/2}:fi.value={x:0,y:0}}else fi.value=null}}let il=0,iu=!0;function zd(){if(!da)return zn(E(null));il===0&&ct("click",document,ru,!0);const e=()=>{il+=1};return iu&&(iu=_d())?(Io(e),xt(()=>{il-=1,il===0&&et("click",document,ru,!0)})):e(),zn(fi)}const wy=E(void 0);let ll=0;function lu(){wy.value=Date.now()}let au=!0;function Td(e){if(!da)return zn(E(!1));const t=E(!1);let n=null;function o(){n!==null&&window.clearTimeout(n)}function r(){o(),t.value=!0,n=window.setTimeout(()=>{t.value=!1},e)}ll===0&&ct("click",window,lu,!0);const i=()=>{ll+=1,ct("click",window,r,!0)};return au&&(au=_d())?(Io(i),xt(()=>{ll-=1,ll===0&&et("click",window,lu,!0),et("click",window,r,!0),o()})):i(),zn(t)}function qt(e,t){return tt(e,n=>{n!==void 0&&(t.value=n)}),O(()=>e.value===void 0?t.value:e.value)}function jr(){const e=E(!1);return Ct(()=>{e.value=!0}),zn(e)}function Bl(e,t){return O(()=>{for(const n of t)if(e[n]!==void 0)return e[n];return e[t[t.length-1]]})}const Cy=(typeof window>"u"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function Sy(){return Cy}const Ry={xs:0,s:640,m:1024,l:1280,xl:1536,"2xl":1920};function ky(e){return`(min-width: ${e}px)`}const ni={};function Py(e=Ry){if(!da)return O(()=>[]);if(typeof window.matchMedia!="function")return O(()=>[]);const t=E({}),n=Object.keys(e),o=(r,i)=>{r.matches?t.value[i]=!0:t.value[i]=!1};return n.forEach(r=>{const i=e[r];let l,a;ni[i]===void 0?(l=window.matchMedia(ky(i)),l.addEventListener?l.addEventListener("change",s=>{a.forEach(d=>{d(s,r)})}):l.addListener&&l.addListener(s=>{a.forEach(d=>{d(s,r)})}),a=new Set,ni[i]={mql:l,cbs:a}):(l=ni[i].mql,a=ni[i].cbs),a.add(o),l.matches&&a.forEach(s=>{s(l,r)})}),xt(()=>{n.forEach(r=>{const{cbs:i}=ni[e[r]];i.has(o)&&i.delete(o)})}),O(()=>{const{value:r}=t;return n.filter(i=>r[i])})}function $y(e={},t){const n=_n({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:o,keyup:r}=e,i=s=>{switch(s.key){case"Control":n.ctrl=!0;break;case"Meta":n.command=!0,n.win=!0;break;case"Shift":n.shift=!0;break;case"Tab":n.tab=!0;break}o!==void 0&&Object.keys(o).forEach(d=>{if(d!==s.key)return;const c=o[d];if(typeof c=="function")c(s);else{const{stop:f=!1,prevent:v=!1}=c;f&&s.stopPropagation(),v&&s.preventDefault(),c.handler(s)}})},l=s=>{switch(s.key){case"Control":n.ctrl=!1;break;case"Meta":n.command=!1,n.win=!1;break;case"Shift":n.shift=!1;break;case"Tab":n.tab=!1;break}r!==void 0&&Object.keys(r).forEach(d=>{if(d!==s.key)return;const c=r[d];if(typeof c=="function")c(s);else{const{stop:f=!1,prevent:v=!1}=c;f&&s.stopPropagation(),v&&s.preventDefault(),c.handler(s)}})},a=()=>{(t===void 0||t.value)&&(ct("keydown",document,i),ct("keyup",document,l)),t!==void 0&&tt(t,s=>{s?(ct("keydown",document,i),ct("keyup",document,l)):(et("keydown",document,i),et("keyup",document,l))})};return _d()?(Io(a),xt(()=>{(t===void 0||t.value)&&(et("keydown",document,i),et("keyup",document,l))})):a(),zn(n)}const Fd="n-internal-select-menu",Pp="n-internal-select-menu-body",ca="n-drawer-body",ua="n-modal-body",_y="n-modal-provider",$p="n-modal",Ui="n-popover-body",_p="__disabled__";function Yn(e){const t=Ee(ua,null),n=Ee(ca,null),o=Ee(Ui,null),r=Ee(Pp,null),i=E();if(typeof document<"u"){i.value=document.fullscreenElement;const l=()=>{i.value=document.fullscreenElement};Ct(()=>{ct("fullscreenchange",document,l)}),xt(()=>{et("fullscreenchange",document,l)})}return ot(()=>{var l;const{to:a}=e;return a!==void 0?a===!1?_p:a===!0?i.value||"body":a:t?.value?(l=t.value.$el)!==null&&l!==void 0?l:t.value:n?.value?n.value:o?.value?o.value:r?.value?r.value:a??(i.value||"body")})}Yn.tdkey=_p;Yn.propTo={type:[String,Object,Boolean],default:void 0};function zy(e,t,n){const o=E(e.value);let r=null;return tt(e,i=>{r!==null&&window.clearTimeout(r),i===!0?n&&!n.value?o.value=!0:r=window.setTimeout(()=>{o.value=!0},t):o.value=!1}),o}const Do=typeof document<"u"&&typeof window<"u",Od=E(!1);function su(){Od.value=!0}function du(){Od.value=!1}let oi=0;function Ty(){return Do&&(Io(()=>{oi||(window.addEventListener("compositionstart",su),window.addEventListener("compositionend",du)),oi++}),xt(()=>{oi<=1?(window.removeEventListener("compositionstart",su),window.removeEventListener("compositionend",du),oi=0):oi--})),Od}let wr=0,cu="",uu="",fu="",hu="";const pu=E("0px");function Fy(e){if(typeof document>"u")return;const t=document.documentElement;let n,o=!1;const r=()=>{t.style.marginRight=cu,t.style.overflow=uu,t.style.overflowX=fu,t.style.overflowY=hu,pu.value="0px"};Ct(()=>{n=tt(e,i=>{if(i){if(!wr){const l=window.innerWidth-t.offsetWidth;l>0&&(cu=t.style.marginRight,t.style.marginRight=`${l}px`,pu.value=`${l}px`),uu=t.style.overflow,fu=t.style.overflowX,hu=t.style.overflowY,t.style.overflow="hidden",t.style.overflowX="hidden",t.style.overflowY="hidden"}o=!0,wr++}else wr--,wr||r(),o=!1},{immediate:!0})}),xt(()=>{n?.(),o&&(wr--,wr||r(),o=!1)})}function zp(e){const t={isDeactivated:!1};let n=!1;return Cd(()=>{if(t.isDeactivated=!1,!n){n=!0;return}e()}),na(()=>{t.isDeactivated=!0,n||(n=!0)}),t}function Hs(e,t,n="default"){const o=t[n];if(o===void 0)throw new Error(`[vueuc/${e}]: slot[${n}] is empty.`);return o()}function Ns(e,t=!0,n=[]){return e.forEach(o=>{if(o!==null){if(typeof o!="object"){(typeof o=="string"||typeof o=="number")&&n.push(Kt(String(o)));return}if(Array.isArray(o)){Ns(o,t,n);return}if(o.type===nt){if(o.children===null)return;Array.isArray(o.children)&&Ns(o.children,t,n)}else o.type!==$t&&n.push(o)}}),n}function vu(e,t,n="default"){const o=t[n];if(o===void 0)throw new Error(`[vueuc/${e}]: slot[${n}] is empty.`);const r=Ns(o());if(r.length===1)return r[0];throw new Error(`[vueuc/${e}]: slot[${n}] should have exactly one child.`)}let wo=null;function Tp(){if(wo===null&&(wo=document.getElementById("v-binder-view-measurer"),wo===null)){wo=document.createElement("div"),wo.id="v-binder-view-measurer";const{style:e}=wo;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild(wo)}return wo.getBoundingClientRect()}function Oy(e,t){const n=Tp();return{top:t,left:e,height:0,width:0,right:n.width-e,bottom:n.height-t}}function Qa(e){const t=e.getBoundingClientRect(),n=Tp();return{left:t.left-n.left,top:t.top-n.top,bottom:n.height+n.top-t.bottom,right:n.width+n.left-t.right,width:t.width,height:t.height}}function Ey(e){return e.nodeType===9?null:e.parentNode}function Fp(e){if(e===null)return null;const t=Ey(e);if(t===null)return null;if(t.nodeType===9)return document;if(t.nodeType===1){const{overflow:n,overflowX:o,overflowY:r}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(n+r+o))return t}return Fp(t)}const Ed=pe({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var t;qe("VBinder",(t=Lo())===null||t===void 0?void 0:t.proxy);const n=Ee("VBinder",null),o=E(null),r=m=>{o.value=m,n&&e.syncTargetWithParent&&n.setTargetRef(m)};let i=[];const l=()=>{let m=o.value;for(;m=Fp(m),m!==null;)i.push(m);for(const y of i)ct("scroll",y,f,!0)},a=()=>{for(const m of i)et("scroll",m,f,!0);i=[]},s=new Set,d=m=>{s.size===0&&l(),s.has(m)||s.add(m)},c=m=>{s.has(m)&&s.delete(m),s.size===0&&a()},f=()=>{Ai(v)},v=()=>{s.forEach(m=>m())},g=new Set,u=m=>{g.size===0&&ct("resize",window,b),g.has(m)||g.add(m)},p=m=>{g.has(m)&&g.delete(m),g.size===0&&et("resize",window,b)},b=()=>{g.forEach(m=>m())};return xt(()=>{et("resize",window,b),a()}),{targetRef:o,setTargetRef:r,addScrollListener:d,removeScrollListener:c,addResizeListener:u,removeResizeListener:p}},render(){return Hs("binder",this.$slots)}}),Md=pe({name:"Target",setup(){const{setTargetRef:e,syncTarget:t}=Ee("VBinder");return{syncTarget:t,setTargetDirective:{mounted:e,updated:e}}},render(){const{syncTarget:e,setTargetDirective:t}=this;return e?qn(vu("follower",this.$slots),[[t]]):vu("follower",this.$slots)}}),Cr="@@mmoContext",My={mounted(e,{value:t}){e[Cr]={handler:void 0},typeof t=="function"&&(e[Cr].handler=t,ct("mousemoveoutside",e,t))},updated(e,{value:t}){const n=e[Cr];typeof t=="function"?n.handler?n.handler!==t&&(et("mousemoveoutside",e,n.handler),n.handler=t,ct("mousemoveoutside",e,t)):(e[Cr].handler=t,ct("mousemoveoutside",e,t)):n.handler&&(et("mousemoveoutside",e,n.handler),n.handler=void 0)},unmounted(e){const{handler:t}=e[Cr];t&&et("mousemoveoutside",e,t),e[Cr].handler=void 0}},Sr="@@coContext",Ii={mounted(e,{value:t,modifiers:n}){e[Sr]={handler:void 0},typeof t=="function"&&(e[Sr].handler=t,ct("clickoutside",e,t,{capture:n.capture}))},updated(e,{value:t,modifiers:n}){const o=e[Sr];typeof t=="function"?o.handler?o.handler!==t&&(et("clickoutside",e,o.handler,{capture:n.capture}),o.handler=t,ct("clickoutside",e,t,{capture:n.capture})):(e[Sr].handler=t,ct("clickoutside",e,t,{capture:n.capture})):o.handler&&(et("clickoutside",e,o.handler,{capture:n.capture}),o.handler=void 0)},unmounted(e,{modifiers:t}){const{handler:n}=e[Sr];n&&et("clickoutside",e,n,{capture:t.capture}),e[Sr].handler=void 0}};function By(e,t){console.error(`[vdirs/${e}]: ${t}`)}class Ay{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(t,n){const{elementZIndex:o}=this;if(n!==void 0){t.style.zIndex=`${n}`,o.delete(t);return}const{nextZIndex:r}=this;o.has(t)&&o.get(t)+1===this.nextZIndex||(t.style.zIndex=`${r}`,o.set(t,r),this.nextZIndex=r+1,this.squashState())}unregister(t,n){const{elementZIndex:o}=this;o.has(t)?o.delete(t):n===void 0&&By("z-index-manager/unregister-element","Element not found when unregistering."),this.squashState()}squashState(){const{elementCount:t}=this;t||(this.nextZIndex=2e3),this.nextZIndex-t>2500&&this.rearrange()}rearrange(){const t=Array.from(this.elementZIndex.entries());t.sort((n,o)=>n[1]-o[1]),this.nextZIndex=2e3,t.forEach(n=>{const o=n[0],r=this.nextZIndex++;`${r}`!==o.style.zIndex&&(o.style.zIndex=`${r}`)})}}const es=new Ay,Rr="@@ziContext",Bd={mounted(e,t){const{value:n={}}=t,{zIndex:o,enabled:r}=n;e[Rr]={enabled:!!r,initialized:!1},r&&(es.ensureZIndex(e,o),e[Rr].initialized=!0)},updated(e,t){const{value:n={}}=t,{zIndex:o,enabled:r}=n,i=e[Rr].enabled;r&&!i&&(es.ensureZIndex(e,o),e[Rr].initialized=!0),e[Rr].enabled=!!r},unmounted(e,t){if(!e[Rr].initialized)return;const{value:n={}}=t,{zIndex:o}=n;es.unregister(e,o)}},Iy="@css-render/vue3-ssr";function Ly(e,t){return``}function Dy(e,t,n){const{styles:o,ids:r}=n;r.has(e)||o!==null&&(r.add(e),o.push(Ly(e,t)))}const Hy=typeof document<"u";function Ho(){if(Hy)return;const e=Ee(Iy,null);if(e!==null)return{adapter:(t,n)=>Dy(t,n,e),context:e}}function gu(e,t){console.error(`[vueuc/${e}]: ${t}`)}const{c:Wn}=vp(),fa="vueuc-style";function bu(e){return e&-e}class Op{constructor(t,n){this.l=t,this.min=n;const o=new Array(t+1);for(let r=0;rr)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let i=t*o;for(;t>0;)i+=n[t],t-=bu(t);return i}getBound(t){let n=0,o=this.l;for(;o>n;){const r=Math.floor((n+o)/2),i=this.sum(r);if(i>t){o=r;continue}else if(i{const{to:t}=e;return t??"body"})}},render(){return this.showTeleport?this.disabled?Hs("lazy-teleport",this.$slots):h(ea,{disabled:this.disabled,to:this.mergedTo},Hs("lazy-teleport",this.$slots)):null}}),al={top:"bottom",bottom:"top",left:"right",right:"left"},yu={start:"end",center:"center",end:"start"},ts={top:"height",bottom:"height",left:"width",right:"width"},Ny={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},jy={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},Wy={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},xu={top:!0,bottom:!1,left:!0,right:!1},wu={top:"end",bottom:"start",left:"end",right:"start"};function Vy(e,t,n,o,r,i){if(!r||i)return{placement:e,top:0,left:0};const[l,a]=e.split("-");let s=a??"center",d={top:0,left:0};const c=(g,u,p)=>{let b=0,m=0;const y=n[g]-t[u]-t[g];return y>0&&o&&(p?m=xu[u]?y:-y:b=xu[u]?y:-y),{left:b,top:m}},f=l==="left"||l==="right";if(s!=="center"){const g=Wy[e],u=al[g],p=ts[g];if(n[p]>t[p]){if(t[g]+t[p]t[u]&&(s=yu[a])}else{const g=l==="bottom"||l==="top"?"left":"top",u=al[g],p=ts[g],b=(n[p]-t[p])/2;(t[g]t[u]?(s=wu[g],d=c(p,g,f)):(s=wu[u],d=c(p,u,f)))}let v=l;return t[l] *",{pointerEvents:"all"})])]),Ad=pe({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){const t=Ee("VBinder"),n=ot(()=>e.enabled!==void 0?e.enabled:e.show),o=E(null),r=E(null),i=()=>{const{syncTrigger:v}=e;v.includes("scroll")&&t.addScrollListener(s),v.includes("resize")&&t.addResizeListener(s)},l=()=>{t.removeScrollListener(s),t.removeResizeListener(s)};Ct(()=>{n.value&&(s(),i())});const a=Ho();Gy.mount({id:"vueuc/binder",head:!0,anchorMetaName:fa,ssr:a}),xt(()=>{l()}),kp(()=>{n.value&&s()});const s=()=>{if(!n.value)return;const v=o.value;if(v===null)return;const g=t.targetRef,{x:u,y:p,overlap:b}=e,m=u!==void 0&&p!==void 0?Oy(u,p):Qa(g);v.style.setProperty("--v-target-width",`${Math.round(m.width)}px`),v.style.setProperty("--v-target-height",`${Math.round(m.height)}px`);const{width:y,minWidth:$,placement:S,internalShift:x,flip:R}=e;v.setAttribute("v-placement",S),b?v.setAttribute("v-overlap",""):v.removeAttribute("v-overlap");const{style:C}=v;y==="target"?C.width=`${m.width}px`:y!==void 0?C.width=y:C.width="",$==="target"?C.minWidth=`${m.width}px`:$!==void 0?C.minWidth=$:C.minWidth="";const w=Qa(v),k=Qa(r.value),{left:F,top:M,placement:_}=Vy(S,m,w,x,R,b),T=Ky(_,b),{left:B,top:D,transform:K}=Uy(_,k,m,M,F,b);v.setAttribute("v-placement",_),v.style.setProperty("--v-offset-left",`${Math.round(F)}px`),v.style.setProperty("--v-offset-top",`${Math.round(M)}px`),v.style.transform=`translateX(${B}) translateY(${D}) ${K}`,v.style.setProperty("--v-transform-origin",T),v.style.transformOrigin=T};tt(n,v=>{v?(i(),d()):l()});const d=()=>{Rt().then(s).catch(v=>console.error(v))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(v=>{tt(we(e,v),s)}),["teleportDisabled"].forEach(v=>{tt(we(e,v),d)}),tt(we(e,"syncTrigger"),v=>{v.includes("resize")?t.addResizeListener(s):t.removeResizeListener(s),v.includes("scroll")?t.addScrollListener(s):t.removeScrollListener(s)});const c=jr(),f=ot(()=>{const{to:v}=e;if(v!==void 0)return v;c.value});return{VBinder:t,mergedEnabled:n,offsetContainerRef:r,followerRef:o,mergedTo:f,syncPosition:s}},render(){return h(Ep,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,t;const n=h("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[h("div",{class:"v-binder-follower-content",ref:"followerRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))]);return this.zindexable?qn(n,[[Bd,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):n}})}});var nr=[],qy=function(){return nr.some(function(e){return e.activeTargets.length>0})},Xy=function(){return nr.some(function(e){return e.skippedTargets.length>0})},Cu="ResizeObserver loop completed with undelivered notifications.",Yy=function(){var e;typeof ErrorEvent=="function"?e=new ErrorEvent("error",{message:Cu}):(e=document.createEvent("Event"),e.initEvent("error",!1,!1),e.message=Cu),window.dispatchEvent(e)},Li;(function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(Li||(Li={}));var or=function(e){return Object.freeze(e)},Zy=(function(){function e(t,n){this.inlineSize=t,this.blockSize=n,or(this)}return e})(),Mp=(function(){function e(t,n,o,r){return this.x=t,this.y=n,this.width=o,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,or(this)}return e.prototype.toJSON=function(){var t=this,n=t.x,o=t.y,r=t.top,i=t.right,l=t.bottom,a=t.left,s=t.width,d=t.height;return{x:n,y:o,top:r,right:i,bottom:l,left:a,width:s,height:d}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e})(),Id=function(e){return e instanceof SVGElement&&"getBBox"in e},Bp=function(e){if(Id(e)){var t=e.getBBox(),n=t.width,o=t.height;return!n&&!o}var r=e,i=r.offsetWidth,l=r.offsetHeight;return!(i||l||e.getClientRects().length)},Su=function(e){var t;if(e instanceof Element)return!0;var n=(t=e?.ownerDocument)===null||t===void 0?void 0:t.defaultView;return!!(n&&e instanceof n.Element)},Jy=function(e){switch(e.tagName){case"INPUT":if(e.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},wi=typeof window<"u"?window:{},sl=new WeakMap,Ru=/auto|scroll/,Qy=/^tb|vertical/,ex=/msie|trident/i.test(wi.navigator&&wi.navigator.userAgent),Bn=function(e){return parseFloat(e||"0")},Er=function(e,t,n){return e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=!1),new Zy((n?t:e)||0,(n?e:t)||0)},ku=or({devicePixelContentBoxSize:Er(),borderBoxSize:Er(),contentBoxSize:Er(),contentRect:new Mp(0,0,0,0)}),Ap=function(e,t){if(t===void 0&&(t=!1),sl.has(e)&&!t)return sl.get(e);if(Bp(e))return sl.set(e,ku),ku;var n=getComputedStyle(e),o=Id(e)&&e.ownerSVGElement&&e.getBBox(),r=!ex&&n.boxSizing==="border-box",i=Qy.test(n.writingMode||""),l=!o&&Ru.test(n.overflowY||""),a=!o&&Ru.test(n.overflowX||""),s=o?0:Bn(n.paddingTop),d=o?0:Bn(n.paddingRight),c=o?0:Bn(n.paddingBottom),f=o?0:Bn(n.paddingLeft),v=o?0:Bn(n.borderTopWidth),g=o?0:Bn(n.borderRightWidth),u=o?0:Bn(n.borderBottomWidth),p=o?0:Bn(n.borderLeftWidth),b=f+d,m=s+c,y=p+g,$=v+u,S=a?e.offsetHeight-$-e.clientHeight:0,x=l?e.offsetWidth-y-e.clientWidth:0,R=r?b+y:0,C=r?m+$:0,w=o?o.width:Bn(n.width)-R-x,k=o?o.height:Bn(n.height)-C-S,F=w+b+x+y,M=k+m+S+$,_=or({devicePixelContentBoxSize:Er(Math.round(w*devicePixelRatio),Math.round(k*devicePixelRatio),i),borderBoxSize:Er(F,M,i),contentBoxSize:Er(w,k,i),contentRect:new Mp(f,s,w,k)});return sl.set(e,_),_},Ip=function(e,t,n){var o=Ap(e,n),r=o.borderBoxSize,i=o.contentBoxSize,l=o.devicePixelContentBoxSize;switch(t){case Li.DEVICE_PIXEL_CONTENT_BOX:return l;case Li.BORDER_BOX:return r;default:return i}},tx=(function(){function e(t){var n=Ap(t);this.target=t,this.contentRect=n.contentRect,this.borderBoxSize=or([n.borderBoxSize]),this.contentBoxSize=or([n.contentBoxSize]),this.devicePixelContentBoxSize=or([n.devicePixelContentBoxSize])}return e})(),Lp=function(e){if(Bp(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},nx=function(){var e=1/0,t=[];nr.forEach(function(l){if(l.activeTargets.length!==0){var a=[];l.activeTargets.forEach(function(d){var c=new tx(d.target),f=Lp(d.target);a.push(c),d.lastReportedSize=Ip(d.target,d.observedBox),fe?n.activeTargets.push(r):n.skippedTargets.push(r))})})},ox=function(){var e=0;for(Pu(e);qy();)e=nx(),Pu(e);return Xy()&&Yy(),e>0},ns,Dp=[],rx=function(){return Dp.splice(0).forEach(function(e){return e()})},ix=function(e){if(!ns){var t=0,n=document.createTextNode(""),o={characterData:!0};new MutationObserver(function(){return rx()}).observe(n,o),ns=function(){n.textContent="".concat(t?t--:t++)}}Dp.push(e),ns()},lx=function(e){ix(function(){requestAnimationFrame(e)})},Cl=0,ax=function(){return!!Cl},sx=250,dx={attributes:!0,characterData:!0,childList:!0,subtree:!0},$u=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],_u=function(e){return e===void 0&&(e=0),Date.now()+e},os=!1,cx=(function(){function e(){var t=this;this.stopped=!0,this.listener=function(){return t.schedule()}}return e.prototype.run=function(t){var n=this;if(t===void 0&&(t=sx),!os){os=!0;var o=_u(t);lx(function(){var r=!1;try{r=ox()}finally{if(os=!1,t=o-_u(),!ax())return;r?n.run(1e3):t>0?n.run(t):n.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var t=this,n=function(){return t.observer&&t.observer.observe(document.body,dx)};document.body?n():wi.addEventListener("DOMContentLoaded",n)},e.prototype.start=function(){var t=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),$u.forEach(function(n){return wi.addEventListener(n,t.listener,!0)}))},e.prototype.stop=function(){var t=this;this.stopped||(this.observer&&this.observer.disconnect(),$u.forEach(function(n){return wi.removeEventListener(n,t.listener,!0)}),this.stopped=!0)},e})(),js=new cx,zu=function(e){!Cl&&e>0&&js.start(),Cl+=e,!Cl&&js.stop()},ux=function(e){return!Id(e)&&!Jy(e)&&getComputedStyle(e).display==="inline"},fx=(function(){function e(t,n){this.target=t,this.observedBox=n||Li.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var t=Ip(this.target,this.observedBox,!0);return ux(this.target)&&(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},e})(),hx=(function(){function e(t,n){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=t,this.callback=n}return e})(),dl=new WeakMap,Tu=function(e,t){for(var n=0;n=0&&(i&&nr.splice(nr.indexOf(o),1),o.observationTargets.splice(r,1),zu(-1))},e.disconnect=function(t){var n=this,o=dl.get(t);o.observationTargets.slice().forEach(function(r){return n.unobserve(t,r.target)}),o.activeTargets.splice(0,o.activeTargets.length)},e})(),px=(function(){function e(t){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof t!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");cl.connect(this,t)}return e.prototype.observe=function(t,n){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Su(t))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");cl.observe(this,t,n)},e.prototype.unobserve=function(t){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Su(t))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");cl.unobserve(this,t)},e.prototype.disconnect=function(){cl.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e})();class vx{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<"u"&&window.ResizeObserver||px)(this.handleResize),this.elHandlersMap=new Map}handleResize(t){for(const n of t){const o=this.elHandlersMap.get(n.target);o!==void 0&&o(n)}}registerHandler(t,n){this.elHandlersMap.set(t,n),this.observer.observe(t)}unregisterHandler(t){this.elHandlersMap.has(t)&&(this.elHandlersMap.delete(t),this.observer.unobserve(t))}}const Ci=new vx,Kn=pe({name:"ResizeObserver",props:{onResize:Function},setup(e){let t=!1;const n=Lo().proxy;function o(r){const{onResize:i}=e;i!==void 0&&i(r)}Ct(()=>{const r=n.$el;if(r===void 0){gu("resize-observer","$el does not exist.");return}if(r.nextElementSibling!==r.nextSibling&&r.nodeType===3&&r.nodeValue!==""){gu("resize-observer","$el can not be observed (it may be a text node).");return}r.nextElementSibling!==null&&(Ci.registerHandler(r.nextElementSibling,o),t=!0)}),xt(()=>{t&&Ci.unregisterHandler(n.$el.nextElementSibling)})},render(){return Eh(this.$slots,"default")}});let ul;function gx(){return typeof document>"u"?!1:(ul===void 0&&("matchMedia"in window?ul=window.matchMedia("(pointer:coarse)").matches:ul=!1),ul)}let rs;function Fu(){return typeof document>"u"?1:(rs===void 0&&(rs="chrome"in window?window.devicePixelRatio:1),rs)}const Hp="VVirtualListXScroll";function bx({columnsRef:e,renderColRef:t,renderItemWithColsRef:n}){const o=E(0),r=E(0),i=O(()=>{const d=e.value;if(d.length===0)return null;const c=new Op(d.length,0);return d.forEach((f,v)=>{c.add(v,f.width)}),c}),l=ot(()=>{const d=i.value;return d!==null?Math.max(d.getBound(r.value)-1,0):0}),a=d=>{const c=i.value;return c!==null?c.sum(d):0},s=ot(()=>{const d=i.value;return d!==null?Math.min(d.getBound(r.value+o.value)+1,e.value.length-1):0});return qe(Hp,{startIndexRef:l,endIndexRef:s,columnsRef:e,renderColRef:t,renderItemWithColsRef:n,getLeft:a}),{listWidthRef:o,scrollLeftRef:r}}const Ou=pe({name:"VirtualListRow",props:{index:{type:Number,required:!0},item:{type:Object,required:!0}},setup(){const{startIndexRef:e,endIndexRef:t,columnsRef:n,getLeft:o,renderColRef:r,renderItemWithColsRef:i}=Ee(Hp);return{startIndex:e,endIndex:t,columns:n,renderCol:r,renderItemWithCols:i,getLeft:o}},render(){const{startIndex:e,endIndex:t,columns:n,renderCol:o,renderItemWithCols:r,getLeft:i,item:l}=this;if(r!=null)return r({itemIndex:this.index,startColIndex:e,endColIndex:t,allColumns:n,item:l,getLeft:i});if(o!=null){const a=[];for(let s=e;s<=t;++s){const d=n[s];a.push(o({column:d,left:i(s),item:l}))}return a}return null}}),mx=Wn(".v-vl",{maxHeight:"inherit",height:"100%",overflow:"auto",minWidth:"1px"},[Wn("&:not(.v-vl--show-scrollbar)",{scrollbarWidth:"none"},[Wn("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",{width:0,height:0,display:"none"})])]),Ld=pe({name:"VirtualList",inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},columns:{type:Array,default:()=>[]},renderCol:Function,renderItemWithCols:Function,items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){const t=Ho();mx.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:fa,ssr:t}),Ct(()=>{const{defaultScrollIndex:T,defaultScrollKey:B}=e;T!=null?b({index:T}):B!=null&&b({key:B})});let n=!1,o=!1;Cd(()=>{if(n=!1,!o){o=!0;return}b({top:g.value,left:l.value})}),na(()=>{n=!0,o||(o=!0)});const r=ot(()=>{if(e.renderCol==null&&e.renderItemWithCols==null||e.columns.length===0)return;let T=0;return e.columns.forEach(B=>{T+=B.width}),T}),i=O(()=>{const T=new Map,{keyField:B}=e;return e.items.forEach((D,K)=>{T.set(D[B],K)}),T}),{scrollLeftRef:l,listWidthRef:a}=bx({columnsRef:we(e,"columns"),renderColRef:we(e,"renderCol"),renderItemWithColsRef:we(e,"renderItemWithCols")}),s=E(null),d=E(void 0),c=new Map,f=O(()=>{const{items:T,itemSize:B,keyField:D}=e,K=new Op(T.length,B);return T.forEach((N,V)=>{const ie=N[D],he=c.get(ie);he!==void 0&&K.add(V,he)}),K}),v=E(0),g=E(0),u=ot(()=>Math.max(f.value.getBound(g.value-Pt(e.paddingTop))-1,0)),p=O(()=>{const{value:T}=d;if(T===void 0)return[];const{items:B,itemSize:D}=e,K=u.value,N=Math.min(K+Math.ceil(T/D+1),B.length-1),V=[];for(let ie=K;ie<=N;++ie)V.push(B[ie]);return V}),b=(T,B)=>{if(typeof T=="number"){S(T,B,"auto");return}const{left:D,top:K,index:N,key:V,position:ie,behavior:he,debounce:J=!0}=T;if(D!==void 0||K!==void 0)S(D,K,he);else if(N!==void 0)$(N,he,J);else if(V!==void 0){const re=i.value.get(V);re!==void 0&&$(re,he,J)}else ie==="bottom"?S(0,Number.MAX_SAFE_INTEGER,he):ie==="top"&&S(0,0,he)};let m,y=null;function $(T,B,D){const{value:K}=f,N=K.sum(T)+Pt(e.paddingTop);if(!D)s.value.scrollTo({left:0,top:N,behavior:B});else{m=T,y!==null&&window.clearTimeout(y),y=window.setTimeout(()=>{m=void 0,y=null},16);const{scrollTop:V,offsetHeight:ie}=s.value;if(N>V){const he=K.get(T);N+he<=V+ie||s.value.scrollTo({left:0,top:N+he-ie,behavior:B})}else s.value.scrollTo({left:0,top:N,behavior:B})}}function S(T,B,D){s.value.scrollTo({left:T,top:B,behavior:D})}function x(T,B){var D,K,N;if(n||e.ignoreItemResize||_(B.target))return;const{value:V}=f,ie=i.value.get(T),he=V.get(ie),J=(N=(K=(D=B.borderBoxSize)===null||D===void 0?void 0:D[0])===null||K===void 0?void 0:K.blockSize)!==null&&N!==void 0?N:B.contentRect.height;if(J===he)return;J-e.itemSize===0?c.delete(T):c.set(T,J-e.itemSize);const ye=J-he;if(ye===0)return;V.add(ie,ye);const Z=s.value;if(Z!=null){if(m===void 0){const le=V.sum(ie);Z.scrollTop>le&&Z.scrollBy(0,ye)}else if(ieZ.scrollTop+Z.offsetHeight&&Z.scrollBy(0,ye)}M()}v.value++}const R=!gx();let C=!1;function w(T){var B;(B=e.onScroll)===null||B===void 0||B.call(e,T),(!R||!C)&&M()}function k(T){var B;if((B=e.onWheel)===null||B===void 0||B.call(e,T),R){const D=s.value;if(D!=null){if(T.deltaX===0&&(D.scrollTop===0&&T.deltaY<=0||D.scrollTop+D.offsetHeight>=D.scrollHeight&&T.deltaY>=0))return;T.preventDefault(),D.scrollTop+=T.deltaY/Fu(),D.scrollLeft+=T.deltaX/Fu(),M(),C=!0,Ai(()=>{C=!1})}}}function F(T){if(n||_(T.target))return;if(e.renderCol==null&&e.renderItemWithCols==null){if(T.contentRect.height===d.value)return}else if(T.contentRect.height===d.value&&T.contentRect.width===a.value)return;d.value=T.contentRect.height,a.value=T.contentRect.width;const{onResize:B}=e;B!==void 0&&B(T)}function M(){const{value:T}=s;T!=null&&(g.value=T.scrollTop,l.value=T.scrollLeft)}function _(T){let B=T;for(;B!==null;){if(B.style.display==="none")return!0;B=B.parentElement}return!1}return{listHeight:d,listStyle:{overflow:"auto"},keyToIndex:i,itemsStyle:O(()=>{const{itemResizable:T}=e,B=pt(f.value.sum());return v.value,[e.itemsStyle,{boxSizing:"content-box",width:pt(r.value),height:T?"":B,minHeight:T?B:"",paddingTop:pt(e.paddingTop),paddingBottom:pt(e.paddingBottom)}]}),visibleItemsStyle:O(()=>(v.value,{transform:`translateY(${pt(f.value.sum(u.value))})`})),viewportItems:p,listElRef:s,itemsElRef:E(null),scrollTo:b,handleListResize:F,handleListScroll:w,handleListWheel:k,handleItemResize:x}},render(){const{itemResizable:e,keyField:t,keyToIndex:n,visibleItemsTag:o}=this;return h(Kn,{onResize:this.handleListResize},{default:()=>{var r,i;return h("div",nn(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:"listElRef"}),[this.items.length!==0?h("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[h(o,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>{const{renderCol:l,renderItemWithCols:a}=this;return this.viewportItems.map(s=>{const d=s[t],c=n.get(d),f=l!=null?h(Ou,{index:c,item:s}):void 0,v=a!=null?h(Ou,{index:c,item:s}):void 0,g=this.$slots.default({item:s,renderedCols:f,renderedItemWithCols:v,index:c})[0];return e?h(Kn,{key:d,onResize:u=>this.handleItemResize(d,u)},{default:()=>g}):(g.key=d,g)})}})]):(i=(r=this.$slots).empty)===null||i===void 0?void 0:i.call(r)])}})}}),yx=Wn(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[Wn("&::-webkit-scrollbar",{width:0,height:0})]),xx=pe({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const e=E(null);function t(r){!(r.currentTarget.offsetWidthv){const{updateCounter:R}=e;for(let C=$;C>=0;--C){const w=m-1-C;R!==void 0?R(w):c.textContent=`${w}`;const k=c.offsetWidth;if(p-=g[C],p+k<=v||C===0){b=!0,$=C-1,u&&($===-1?(u.style.maxWidth=`${v-k}px`,u.style.boxSizing="border-box"):u.style.maxWidth="");const{onUpdateCount:F}=e;F&&F(w);break}}}}const{onUpdateOverflow:y}=e;b?y!==void 0&&y(!0):(y!==void 0&&y(!1),c.setAttribute(oo,""))}const i=Ho();return wx.mount({id:"vueuc/overflow",head:!0,anchorMetaName:fa,ssr:i}),Ct(()=>r({showAllItemsBeforeCalculate:!1})),{selfRef:n,counterRef:o,sync:r}},render(){const{$slots:e}=this;return Rt(()=>this.sync({showAllItemsBeforeCalculate:!1})),h("div",{class:"v-overflow",ref:"selfRef"},[Eh(e,"default"),e.counter?e.counter():h("span",{style:{display:"inline-block"},ref:"counterRef"}),e.tail?e.tail():null])}});function Np(e){return e instanceof HTMLElement}function jp(e){for(let t=0;t=0;t--){const n=e.childNodes[t];if(Np(n)&&(Vp(n)||Wp(n)))return!0}return!1}function Vp(e){if(!Cx(e))return!1;try{e.focus({preventScroll:!0})}catch{}return document.activeElement===e}function Cx(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.getAttribute("disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return e.type!=="hidden"&&e.type!=="file";case"SELECT":case"TEXTAREA":return!0;default:return!1}}let ri=[];const Kp=pe({name:"FocusTrap",props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:[String,Function],finalFocusTo:[String,Function],returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(e){const t=ar(),n=E(null),o=E(null);let r=!1,i=!1;const l=typeof document>"u"?null:document.activeElement;function a(){return ri[ri.length-1]===t}function s(b){var m;b.code==="Escape"&&a()&&((m=e.onEsc)===null||m===void 0||m.call(e,b))}Ct(()=>{tt(()=>e.active,b=>{b?(f(),ct("keydown",document,s)):(et("keydown",document,s),r&&v())},{immediate:!0})}),xt(()=>{et("keydown",document,s),r&&v()});function d(b){if(!i&&a()){const m=c();if(m===null||m.contains(Dr(b)))return;g("first")}}function c(){const b=n.value;if(b===null)return null;let m=b;for(;m=m.nextSibling,!(m===null||m instanceof Element&&m.tagName==="DIV"););return m}function f(){var b;if(!e.disabled){if(ri.push(t),e.autoFocus){const{initialFocusTo:m}=e;m===void 0?g("first"):(b=mu(m))===null||b===void 0||b.focus({preventScroll:!0})}r=!0,document.addEventListener("focus",d,!0)}}function v(){var b;if(e.disabled||(document.removeEventListener("focus",d,!0),ri=ri.filter(y=>y!==t),a()))return;const{finalFocusTo:m}=e;m!==void 0?(b=mu(m))===null||b===void 0||b.focus({preventScroll:!0}):e.returnFocusOnDeactivated&&l instanceof HTMLElement&&(i=!0,l.focus({preventScroll:!0}),i=!1)}function g(b){if(a()&&e.active){const m=n.value,y=o.value;if(m!==null&&y!==null){const $=c();if($==null||$===y){i=!0,m.focus({preventScroll:!0}),i=!1;return}i=!0;const S=b==="first"?jp($):Wp($);i=!1,S||(i=!0,m.focus({preventScroll:!0}),i=!1)}}}function u(b){if(i)return;const m=c();m!==null&&(b.relatedTarget!==null&&m.contains(b.relatedTarget)?g("last"):g("first"))}function p(b){i||(b.relatedTarget!==null&&b.relatedTarget===n.value?g("last"):g("first"))}return{focusableStartRef:n,focusableEndRef:o,focusableStyle:"position: absolute; height: 0; width: 0;",handleStartFocus:u,handleEndFocus:p}},render(){const{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();const{active:t,focusableStyle:n}=this;return h(nt,null,[h("div",{"aria-hidden":"true",tabindex:t?"0":"-1",ref:"focusableStartRef",style:n,onFocus:this.handleStartFocus}),e(),h("div",{"aria-hidden":"true",style:n,ref:"focusableEndRef",tabindex:t?"0":"-1",onFocus:this.handleEndFocus})])}});function Up(e,t){t&&(Ct(()=>{const{value:n}=e;n&&Ci.registerHandler(n,t)}),tt(e,(n,o)=>{o&&Ci.unregisterHandler(o)},{deep:!1}),xt(()=>{const{value:n}=e;n&&Ci.unregisterHandler(n)}))}function Al(e){return e.replace(/#|\(|\)|,|\s|\./g,"_")}const Sx=/^(\d|\.)+$/,Mu=/(\d|\.)+/;function Gt(e,{c:t=1,offset:n=0,attachPx:o=!0}={}){if(typeof e=="number"){const r=(e+n)*t;return r===0?"0":`${r}px`}else if(typeof e=="string")if(Sx.test(e)){const r=(Number(e)+n)*t;return o?r===0?"0":`${r}px`:`${r}`}else{const r=Mu.exec(e);return r?e.replace(Mu,String((Number(r[0])+n)*t)):e}return e}function Bu(e){const{left:t,right:n,top:o,bottom:r}=Ft(e);return`${o} ${t} ${r} ${n}`}function Rx(e,t){if(!e)return;const n=document.createElement("a");n.href=e,t!==void 0&&(n.download=t),document.body.appendChild(n),n.click(),document.body.removeChild(n)}let is;function kx(){return is===void 0&&(is=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),is}const Gp=new WeakSet;function Px(e){Gp.add(e)}function $x(e){return!Gp.has(e)}function Au(e){switch(typeof e){case"string":return e||void 0;case"number":return String(e);default:return}}const _x={tiny:"mini",small:"tiny",medium:"small",large:"medium",huge:"large"};function Iu(e){const t=_x[e];if(t===void 0)throw new Error(`${e} has no smaller size.`);return t}function Zn(e,t){console.error(`[naive/${e}]: ${t}`)}function sr(e,t){throw new Error(`[naive/${e}]: ${t}`)}function me(e,...t){if(Array.isArray(e))e.forEach(n=>me(n,...t));else return e(...t)}function qp(e){return t=>{t?e.value=t.$el:e.value=null}}function Un(e,t=!0,n=[]){return e.forEach(o=>{if(o!==null){if(typeof o!="object"){(typeof o=="string"||typeof o=="number")&&n.push(Kt(String(o)));return}if(Array.isArray(o)){Un(o,t,n);return}if(o.type===nt){if(o.children===null)return;Array.isArray(o.children)&&Un(o.children,t,n)}else{if(o.type===$t&&t)return;n.push(o)}}}),n}function zx(e,t="default",n=void 0){const o=e[t];if(!o)return Zn("getFirstSlotVNode",`slot[${t}] is empty`),null;const r=Un(o(n));return r.length===1?r[0]:(Zn("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}function Tx(e,t,n){if(!t)return null;const o=Un(t(n));return o.length===1?o[0]:(Zn("getFirstSlotVNode",`slot[${e}] should have exactly one child`),null)}function Dd(e,t="default",n=[]){const r=e.$slots[t];return r===void 0?n:r()}function Fx(e){var t;const n=(t=e.dirs)===null||t===void 0?void 0:t.find(({dir:o})=>o===Fo);return!!(n&&n.value===!1)}function Eo(e,t=[],n){const o={};return t.forEach(r=>{o[r]=e[r]}),Object.assign(o,n)}function Gi(e){return Object.keys(e)}function Si(e){const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:n=>{e.forEach(o=>{o&&o(n)})}}function dr(e,t=[],n){const o={};return Object.getOwnPropertyNames(e).forEach(i=>{t.includes(i)||(o[i]=e[i])}),Object.assign(o,n)}function wt(e,...t){return typeof e=="function"?e(...t):typeof e=="string"?Kt(e):typeof e=="number"?Kt(String(e)):null}function Rn(e){return e.some(t=>Ir(t)?!(t.type===$t||t.type===nt&&!Rn(t.children)):!0)?e:null}function $n(e,t){return e&&Rn(e())||t()}function Ox(e,t,n){return e&&Rn(e(t))||n(t)}function lt(e,t){const n=e&&Rn(e());return t(n||null)}function Mr(e){return!(e&&Rn(e()))}const Ws=pe({render(){var e,t;return(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)}}),Fn="n-config-provider",Il="n";function Ye(e={},t={defaultBordered:!0}){const n=Ee(Fn,null);return{inlineThemeDisabled:n?.inlineThemeDisabled,mergedRtlRef:n?.mergedRtlRef,mergedComponentPropsRef:n?.mergedComponentPropsRef,mergedBreakpointsRef:n?.mergedBreakpointsRef,mergedBorderedRef:O(()=>{var o,r;const{bordered:i}=e;return i!==void 0?i:(r=(o=n?.mergedBorderedRef.value)!==null&&o!==void 0?o:t.defaultBordered)!==null&&r!==void 0?r:!0}),mergedClsPrefixRef:n?n.mergedClsPrefixRef:ph(Il),namespaceRef:O(()=>n?.mergedNamespaceRef.value)}}function Xp(){const e=Ee(Fn,null);return e?e.mergedClsPrefixRef:ph(Il)}function vt(e,t,n,o){n||sr("useThemeClass","cssVarsRef is not passed");const r=Ee(Fn,null),i=r?.mergedThemeHashRef,l=r?.styleMountTarget,a=E(""),s=Ho();let d;const c=`__${e}`,f=()=>{let v=c;const g=t?t.value:void 0,u=i?.value;u&&(v+=`-${u}`),g&&(v+=`-${g}`);const{themeOverrides:p,builtinThemeOverrides:b}=o;p&&(v+=`-${Mi(JSON.stringify(p))}`),b&&(v+=`-${Mi(JSON.stringify(b))}`),a.value=v,d=()=>{const m=n.value;let y="";for(const $ in m)y+=`${$}: ${m[$]};`;I(`.${v}`,y).mount({id:v,ssr:s,parent:l}),d=void 0}};return en(()=>{f()}),{themeClass:a,onRender:()=>{d?.()}}}const Lu="n-form-item";function No(e,{defaultSize:t="medium",mergedSize:n,mergedDisabled:o}={}){const r=Ee(Lu,null);qe(Lu,null);const i=O(n?()=>n(r):()=>{const{size:s}=e;if(s)return s;if(r){const{mergedSize:d}=r;if(d.value!==void 0)return d.value}return t}),l=O(o?()=>o(r):()=>{const{disabled:s}=e;return s!==void 0?s:r?r.disabled.value:!1}),a=O(()=>{const{status:s}=e;return s||r?.mergedValidationStatus.value});return xt(()=>{r&&r.restoreValidation()}),{mergedSizeRef:i,mergedDisabledRef:l,mergedStatusRef:a,nTriggerFormBlur(){r&&r.handleContentBlur()},nTriggerFormChange(){r&&r.handleContentChange()},nTriggerFormFocus(){r&&r.handleContentFocus()},nTriggerFormInput(){r&&r.handleContentInput()}}}const Ex={name:"en-US",global:{undo:"Undo",redo:"Redo",confirm:"Confirm",clear:"Clear"},Popconfirm:{positiveText:"Confirm",negativeText:"Cancel"},Cascader:{placeholder:"Please Select",loading:"Loading",loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss"},DatePicker:{yearFormat:"yyyy",monthFormat:"MMM",dayFormat:"eeeeee",yearTypeFormat:"yyyy",monthTypeFormat:"yyyy-MM",dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss",quarterFormat:"yyyy-qqq",weekFormat:"YYYY-w",clear:"Clear",now:"Now",confirm:"Confirm",selectTime:"Select Time",selectDate:"Select Date",datePlaceholder:"Select Date",datetimePlaceholder:"Select Date and Time",monthPlaceholder:"Select Month",yearPlaceholder:"Select Year",quarterPlaceholder:"Select Quarter",weekPlaceholder:"Select Week",startDatePlaceholder:"Start Date",endDatePlaceholder:"End Date",startDatetimePlaceholder:"Start Date and Time",endDatetimePlaceholder:"End Date and Time",startMonthPlaceholder:"Start Month",endMonthPlaceholder:"End Month",monthBeforeYear:!0,firstDayOfWeek:6,today:"Today"},DataTable:{checkTableAll:"Select all in the table",uncheckTableAll:"Unselect all in the table",confirm:"Confirm",clear:"Clear"},LegacyTransfer:{sourceTitle:"Source",targetTitle:"Target"},Transfer:{selectAll:"Select all",unselectAll:"Unselect all",clearAll:"Clear",total:e=>`Total ${e} items`,selected:e=>`${e} items selected`},Empty:{description:"No Data"},Select:{placeholder:"Please Select"},TimePicker:{placeholder:"Select Time",positiveText:"OK",negativeText:"Cancel",now:"Now",clear:"Clear"},Pagination:{goto:"Goto",selectionSuffix:"page"},DynamicTags:{add:"Add"},Log:{loading:"Loading"},Input:{placeholder:"Please Input"},InputNumber:{placeholder:"Please Input"},DynamicInput:{create:"Create"},ThemeEditor:{title:"Theme Editor",clearAllVars:"Clear All Variables",clearSearch:"Clear Search",filterCompName:"Filter Component Name",filterVarName:"Filter Variable Name",import:"Import",export:"Export",restore:"Reset to Default"},Image:{tipPrevious:"Previous picture (←)",tipNext:"Next picture (→)",tipCounterclockwise:"Counterclockwise",tipClockwise:"Clockwise",tipZoomOut:"Zoom out",tipZoomIn:"Zoom in",tipDownload:"Download",tipClose:"Close (Esc)",tipOriginalSize:"Zoom to original size"},Heatmap:{less:"less",more:"more",monthFormat:"MMM",weekdayFormat:"eee"}};function ls(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function ii(e){return(t,n)=>{const o=n?.context?String(n.context):"standalone";let r;if(o==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,a=n?.width?String(n.width):l;r=e.formattingValues[a]||e.formattingValues[l]}else{const l=e.defaultWidth,a=n?.width?String(n.width):e.defaultWidth;r=e.values[a]||e.values[l]}const i=e.argumentCallback?e.argumentCallback(t):t;return r[i]}}function li(e){return(t,n={})=>{const o=n.width,r=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],i=t.match(r);if(!i)return null;const l=i[0],a=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],s=Array.isArray(a)?Bx(a,f=>f.test(l)):Mx(a,f=>f.test(l));let d;d=e.valueCallback?e.valueCallback(s):s,d=n.valueCallback?n.valueCallback(d):d;const c=t.slice(l.length);return{value:d,rest:c}}}function Mx(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Bx(e,t){for(let n=0;n{const o=t.match(e.matchPattern);if(!o)return null;const r=o[0],i=t.match(e.parsePattern);if(!i)return null;let l=e.valueCallback?e.valueCallback(i[0]):i[0];l=n.valueCallback?n.valueCallback(l):l;const a=t.slice(r.length);return{value:l,rest:a}}}const Ix={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Lx=(e,t,n)=>{let o;const r=Ix[e];return typeof r=="string"?o=r:t===1?o=r.one:o=r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+o:o+" ago":o},Dx={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Hx=(e,t,n,o)=>Dx[e],Nx={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},jx={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Wx={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Vx={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Kx={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Ux={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Gx=(e,t)=>{const n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},qx={ordinalNumber:Gx,era:ii({values:Nx,defaultWidth:"wide"}),quarter:ii({values:jx,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ii({values:Wx,defaultWidth:"wide"}),day:ii({values:Vx,defaultWidth:"wide"}),dayPeriod:ii({values:Kx,defaultWidth:"wide",formattingValues:Ux,defaultFormattingWidth:"wide"})},Xx=/^(\d+)(th|st|nd|rd)?/i,Yx=/\d+/i,Zx={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Jx={any:[/^b/i,/^(a|c)/i]},Qx={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ew={any:[/1/i,/2/i,/3/i,/4/i]},tw={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},nw={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ow={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},rw={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},iw={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},lw={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},aw={ordinalNumber:Ax({matchPattern:Xx,parsePattern:Yx,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:Zx,defaultMatchWidth:"wide",parsePatterns:Jx,defaultParseWidth:"any"}),quarter:li({matchPatterns:Qx,defaultMatchWidth:"wide",parsePatterns:ew,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:tw,defaultMatchWidth:"wide",parsePatterns:nw,defaultParseWidth:"any"}),day:li({matchPatterns:ow,defaultMatchWidth:"wide",parsePatterns:rw,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:iw,defaultMatchWidth:"any",parsePatterns:lw,defaultParseWidth:"any"})},sw={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},dw={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},cw={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},uw={date:ls({formats:sw,defaultWidth:"full"}),time:ls({formats:dw,defaultWidth:"full"}),dateTime:ls({formats:cw,defaultWidth:"full"})},fw={code:"en-US",formatDistance:Lx,formatLong:uw,formatRelative:Hx,localize:qx,match:aw,options:{weekStartsOn:0,firstWeekContainsDate:1}},hw={name:"en-US",locale:fw};var Yp=typeof global=="object"&&global&&global.Object===Object&&global,pw=typeof self=="object"&&self&&self.Object===Object&&self,On=Yp||pw||Function("return this")(),Mo=On.Symbol,Zp=Object.prototype,vw=Zp.hasOwnProperty,gw=Zp.toString,ai=Mo?Mo.toStringTag:void 0;function bw(e){var t=vw.call(e,ai),n=e[ai];try{e[ai]=void 0;var o=!0}catch{}var r=gw.call(e);return o&&(t?e[ai]=n:delete e[ai]),r}var mw=Object.prototype,yw=mw.toString;function xw(e){return yw.call(e)}var ww="[object Null]",Cw="[object Undefined]",Du=Mo?Mo.toStringTag:void 0;function cr(e){return e==null?e===void 0?Cw:ww:Du&&Du in Object(e)?bw(e):xw(e)}function Bo(e){return e!=null&&typeof e=="object"}var Sw="[object Symbol]";function ha(e){return typeof e=="symbol"||Bo(e)&&cr(e)==Sw}function Jp(e,t){for(var n=-1,o=e==null?0:e.length,r=Array(o);++n0){if(++t>=Zw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function tC(e){return function(){return e}}var Ll=(function(){try{var e=fr(Object,"defineProperty");return e({},"",{}),e}catch{}})(),nC=Ll?function(e,t){return Ll(e,"toString",{configurable:!0,enumerable:!1,value:tC(t),writable:!0})}:Hd,oC=eC(nC),rC=9007199254740991,iC=/^(?:0|[1-9]\d*)$/;function jd(e,t){var n=typeof e;return t=t??rC,!!t&&(n=="number"||n!="symbol"&&iC.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=fC}function Wr(e){return e!=null&&Vd(e.length)&&!Nd(e)}function hC(e,t,n){if(!wn(n))return!1;var o=typeof t;return(o=="number"?Wr(n)&&jd(t,n.length):o=="string"&&t in n)?qi(n[t],e):!1}function pC(e){return uC(function(t,n){var o=-1,r=n.length,i=r>1?n[r-1]:void 0,l=r>2?n[2]:void 0;for(i=e.length>3&&typeof i=="function"?(r--,i):void 0,l&&hC(n[0],n[1],l)&&(i=r<3?void 0:i,r=1),t=Object(t);++o-1}function k1(e,t){var n=this.__data__,o=pa(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function vo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tr?0:r+t),n=n>r?r:n,n<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(r);++o=o?e:K1(e,t,n)}var G1="\\ud800-\\udfff",q1="\\u0300-\\u036f",X1="\\ufe20-\\ufe2f",Y1="\\u20d0-\\u20ff",Z1=q1+X1+Y1,J1="\\ufe0e\\ufe0f",Q1="\\u200d",eS=RegExp("["+Q1+G1+Z1+J1+"]");function uv(e){return eS.test(e)}function tS(e){return e.split("")}var fv="\\ud800-\\udfff",nS="\\u0300-\\u036f",oS="\\ufe20-\\ufe2f",rS="\\u20d0-\\u20ff",iS=nS+oS+rS,lS="\\ufe0e\\ufe0f",aS="["+fv+"]",Us="["+iS+"]",Gs="\\ud83c[\\udffb-\\udfff]",sS="(?:"+Us+"|"+Gs+")",hv="[^"+fv+"]",pv="(?:\\ud83c[\\udde6-\\uddff]){2}",vv="[\\ud800-\\udbff][\\udc00-\\udfff]",dS="\\u200d",gv=sS+"?",bv="["+lS+"]?",cS="(?:"+dS+"(?:"+[hv,pv,vv].join("|")+")"+bv+gv+")*",uS=bv+gv+cS,fS="(?:"+[hv+Us+"?",Us,pv,vv,aS].join("|")+")",hS=RegExp(Gs+"(?="+Gs+")|"+fS+uS,"g");function pS(e){return e.match(hS)||[]}function vS(e){return uv(e)?pS(e):tS(e)}function gS(e){return function(t){t=lv(t);var n=uv(t)?vS(t):void 0,o=n?n[0]:t.charAt(0),r=n?U1(n,1).join(""):t.slice(1);return o[e]()+r}}var bS=gS("toUpperCase");function mS(){this.__data__=new vo,this.size=0}function yS(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function xS(e){return this.__data__.get(e)}function wS(e){return this.__data__.has(e)}var CS=200;function SS(e,t){var n=this.__data__;if(n instanceof vo){var o=n.__data__;if(!Hi||o.lengtha))return!1;var d=i.get(e),c=i.get(t);if(d&&c)return d==t&&c==e;var f=-1,v=!0,g=n&GS?new jl:void 0;for(i.set(e,t),i.set(t,e);++f=t||C<0||f&&w>=i}function m(){var R=cs();if(b(R))return y(R);a=setTimeout(m,p(R))}function y(R){return a=void 0,v&&o?g(R):(o=r=void 0,l)}function $(){a!==void 0&&clearTimeout(a),d=0,o=s=r=a=void 0}function S(){return a===void 0?l:y(cs())}function x(){var R=cs(),C=b(R);if(o=arguments,r=this,s=R,C){if(a===void 0)return u(s);if(f)return clearTimeout(a),a=setTimeout(m,t),g(s)}return a===void 0&&(a=setTimeout(m,t)),l}return x.cancel=$,x.flush=S,x}function Zs(e,t,n){(n!==void 0&&!qi(e[t],n)||n===void 0&&!(t in e))&&Wd(e,t,n)}function HR(e){return Bo(e)&&Wr(e)}function Js(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function NR(e){return dC(e,iv(e))}function jR(e,t,n,o,r,i,l){var a=Js(e,n),s=Js(t,n),d=l.get(s);if(d){Zs(e,n,d);return}var c=i?i(a,s,n+"",e,t,l):void 0,f=c===void 0;if(f){var v=xn(s),g=!v&&Hl(s),u=!v&&!g&&Ud(s);c=s,v||g||u?xn(a)?c=a:HR(a)?c=Yw(a):g?(f=!1,c=kS(s)):u?(f=!1,c=DS(s)):c=[]:V1(s)||Dl(s)?(c=a,Dl(a)?c=NR(a):(!wn(a)||Nd(a))&&(c=HS(s))):f=!1}f&&(l.set(s,c),r(c,s,o,i,l),l.delete(s)),Zs(e,n,c)}function Sv(e,t,n,o,r){e!==t&&Cv(t,function(i,l){if(r||(r=new Gn),wn(i))jR(e,t,l,n,Sv,o,r);else{var a=o?o(Js(e,l),i,l+"",e,t,r):void 0;a===void 0&&(a=i),Zs(e,l,a)}},iv)}function WR(e,t){var n=-1,o=Wr(e)?Array(e.length):[];return BR(e,function(r,i,l){o[++n]=t(r,i,l)}),o}function VR(e,t){var n=xn(e)?Jp:WR;return n(e,FR(t))}var hi=pC(function(e,t,n){Sv(e,t,n)}),KR="Expected a function";function UR(e,t,n){var o=!0,r=!0;if(typeof e!="function")throw new TypeError(KR);return wn(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),DR(e,t,{leading:o,maxWait:t,trailing:r})}function Xi(e){const{mergedLocaleRef:t,mergedDateLocaleRef:n}=Ee(Fn,null)||{},o=O(()=>{var i,l;return(l=(i=t?.value)===null||i===void 0?void 0:i[e])!==null&&l!==void 0?l:Ex[e]});return{dateLocaleRef:O(()=>{var i;return(i=n?.value)!==null&&i!==void 0?i:hw}),localeRef:o}}const Hr="naive-ui-style";function Bt(e,t,n){if(!t)return;const o=Ho(),r=O(()=>{const{value:a}=t;if(!a)return;const s=a[e];if(s)return s}),i=Ee(Fn,null),l=()=>{en(()=>{const{value:a}=n,s=`${a}${e}Rtl`;if(G0(s,o))return;const{value:d}=r;d&&d.style.mount({id:s,head:!0,anchorMetaName:Hr,props:{bPrefix:a?`.${a}-`:void 0},ssr:o,parent:i?.styleMountTarget})})};return o?l():Io(l),r}const hr={fontFamily:'v-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontFamilyMono:"v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace",fontWeight:"400",fontWeightStrong:"500",cubicBezierEaseInOut:"cubic-bezier(.4, 0, .2, 1)",cubicBezierEaseOut:"cubic-bezier(0, 0, .2, 1)",cubicBezierEaseIn:"cubic-bezier(.4, 0, 1, 1)",borderRadius:"3px",borderRadiusSmall:"2px",fontSize:"14px",fontSizeMini:"12px",fontSizeTiny:"12px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",lineHeight:"1.6",heightMini:"16px",heightTiny:"22px",heightSmall:"28px",heightMedium:"34px",heightLarge:"40px",heightHuge:"46px"},{fontSize:GR,fontFamily:qR,lineHeight:XR}=hr,Rv=I("body",` + margin: 0; + font-size: ${GR}; + font-family: ${qR}; + line-height: ${XR}; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +`,[I("input",` + font-family: inherit; + font-size: inherit; + `)]);function pr(e,t,n){if(!t)return;const o=Ho(),r=Ee(Fn,null),i=()=>{const l=n.value;t.mount({id:l===void 0?e:l+e,head:!0,anchorMetaName:Hr,props:{bPrefix:l?`.${l}-`:void 0},ssr:o,parent:r?.styleMountTarget}),r?.preflightStyleDisabled||Rv.mount({id:"n-global",head:!0,anchorMetaName:Hr,ssr:o,parent:r?.styleMountTarget})};o?i():Io(i)}function Be(e,t,n,o,r,i){const l=Ho(),a=Ee(Fn,null);if(n){const d=()=>{const c=i?.value;n.mount({id:c===void 0?t:c+t,head:!0,props:{bPrefix:c?`.${c}-`:void 0},anchorMetaName:Hr,ssr:l,parent:a?.styleMountTarget}),a?.preflightStyleDisabled||Rv.mount({id:"n-global",head:!0,anchorMetaName:Hr,ssr:l,parent:a?.styleMountTarget})};l?d():Io(d)}return O(()=>{var d;const{theme:{common:c,self:f,peers:v={}}={},themeOverrides:g={},builtinThemeOverrides:u={}}=r,{common:p,peers:b}=g,{common:m=void 0,[e]:{common:y=void 0,self:$=void 0,peers:S={}}={}}=a?.mergedThemeRef.value||{},{common:x=void 0,[e]:R={}}=a?.mergedThemeOverridesRef.value||{},{common:C,peers:w={}}=R,k=hi({},c||y||m||o.common,x,C,p),F=hi((d=f||$||o.self)===null||d===void 0?void 0:d(k),u,R,g);return{common:k,self:F,peers:hi({},o.peers,S,v),peerOverrides:hi({},u.peers,w,b)}})}Be.props={theme:Object,themeOverrides:Object,builtinThemeOverrides:Object};const YR=P("base-icon",` + height: 1em; + width: 1em; + line-height: 1em; + text-align: center; + display: inline-block; + position: relative; + fill: currentColor; +`,[I("svg",` + height: 1em; + width: 1em; + `)]),kt=pe({name:"BaseIcon",props:{role:String,ariaLabel:String,ariaDisabled:{type:Boolean,default:void 0},ariaHidden:{type:Boolean,default:void 0},clsPrefix:{type:String,required:!0},onClick:Function,onMousedown:Function,onMouseup:Function},setup(e){pr("-base-icon",YR,we(e,"clsPrefix"))},render(){return h("i",{class:`${this.clsPrefix}-base-icon`,onClick:this.onClick,onMousedown:this.onMousedown,onMouseup:this.onMouseup,role:this.role,"aria-label":this.ariaLabel,"aria-hidden":this.ariaHidden,"aria-disabled":this.ariaDisabled},this.$slots)}}),vr=pe({name:"BaseIconSwitchTransition",setup(e,{slots:t}){const n=jr();return()=>h(pn,{name:"icon-switch-transition",appear:n.value},t)}}),ZR=pe({name:"Add",render(){return h("svg",{width:"512",height:"512",viewBox:"0 0 512 512",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M256 112V400M400 256H112",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round"}))}}),JR=pe({name:"ArrowDown",render(){return h("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z"}))))}});function Vr(e,t){const n=pe({render(){return t()}});return pe({name:bS(e),setup(){var o;const r=(o=Ee(Fn,null))===null||o===void 0?void 0:o.mergedIconsRef;return()=>{var i;const l=(i=r?.value)===null||i===void 0?void 0:i[e];return l?l():h(n,null)}}})}const ff=pe({name:"Backward",render(){return h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M12.2674 15.793C11.9675 16.0787 11.4927 16.0672 11.2071 15.7673L6.20572 10.5168C5.9298 10.2271 5.9298 9.7719 6.20572 9.48223L11.2071 4.23177C11.4927 3.93184 11.9675 3.92031 12.2674 4.206C12.5673 4.49169 12.5789 4.96642 12.2932 5.26634L7.78458 9.99952L12.2932 14.7327C12.5789 15.0326 12.5673 15.5074 12.2674 15.793Z",fill:"currentColor"}))}}),QR=pe({name:"Checkmark",render(){return h("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},h("g",{fill:"none"},h("path",{d:"M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z",fill:"currentColor"})))}}),kv=pe({name:"ChevronDown",render(){return h("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z",fill:"currentColor"}))}}),Pv=pe({name:"ChevronRight",render(){return h("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z",fill:"currentColor"}))}}),ek=Vr("clear",()=>h("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z"}))))),tk=Vr("close",()=>h("svg",{viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z"}))))),nk=pe({name:"Empty",render(){return h("svg",{viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z",fill:"currentColor"}),h("path",{d:"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z",fill:"currentColor"}))}}),Zd=Vr("error",()=>h("svg",{viewBox:"0 0 48 48",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M17.8838835,16.1161165 L17.7823881,16.0249942 C17.3266086,15.6583353 16.6733914,15.6583353 16.2176119,16.0249942 L16.1161165,16.1161165 L16.0249942,16.2176119 C15.6583353,16.6733914 15.6583353,17.3266086 16.0249942,17.7823881 L16.1161165,17.8838835 L22.233,24 L16.1161165,30.1161165 L16.0249942,30.2176119 C15.6583353,30.6733914 15.6583353,31.3266086 16.0249942,31.7823881 L16.1161165,31.8838835 L16.2176119,31.9750058 C16.6733914,32.3416647 17.3266086,32.3416647 17.7823881,31.9750058 L17.8838835,31.8838835 L24,25.767 L30.1161165,31.8838835 L30.2176119,31.9750058 C30.6733914,32.3416647 31.3266086,32.3416647 31.7823881,31.9750058 L31.8838835,31.8838835 L31.9750058,31.7823881 C32.3416647,31.3266086 32.3416647,30.6733914 31.9750058,30.2176119 L31.8838835,30.1161165 L25.767,24 L31.8838835,17.8838835 L31.9750058,17.7823881 C32.3416647,17.3266086 32.3416647,16.6733914 31.9750058,16.2176119 L31.8838835,16.1161165 L31.7823881,16.0249942 C31.3266086,15.6583353 30.6733914,15.6583353 30.2176119,16.0249942 L30.1161165,16.1161165 L24,22.233 L17.8838835,16.1161165 L17.7823881,16.0249942 L17.8838835,16.1161165 Z"}))))),ok=pe({name:"Eye",render(){return h("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},h("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),h("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}))}}),rk=pe({name:"EyeOff",render(){return h("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},h("path",{d:"M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z",fill:"currentColor"}),h("path",{d:"M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z",fill:"currentColor"}),h("path",{d:"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z",fill:"currentColor"}),h("path",{d:"M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z",fill:"currentColor"}),h("path",{d:"M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z",fill:"currentColor"}))}}),hf=pe({name:"FastBackward",render(){return h("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z"}))))}}),pf=pe({name:"FastForward",render(){return h("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z"}))))}}),ik=pe({name:"Filter",render(){return h("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M17,19 C17.5522847,19 18,19.4477153 18,20 C18,20.5522847 17.5522847,21 17,21 L11,21 C10.4477153,21 10,20.5522847 10,20 C10,19.4477153 10.4477153,19 11,19 L17,19 Z M21,13 C21.5522847,13 22,13.4477153 22,14 C22,14.5522847 21.5522847,15 21,15 L7,15 C6.44771525,15 6,14.5522847 6,14 C6,13.4477153 6.44771525,13 7,13 L21,13 Z M24,7 C24.5522847,7 25,7.44771525 25,8 C25,8.55228475 24.5522847,9 24,9 L4,9 C3.44771525,9 3,8.55228475 3,8 C3,7.44771525 3.44771525,7 4,7 L24,7 Z"}))))}}),vf=pe({name:"Forward",render(){return h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z",fill:"currentColor"}))}}),Wl=Vr("info",()=>h("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M14,2 C20.6274,2 26,7.37258 26,14 C26,20.6274 20.6274,26 14,26 C7.37258,26 2,20.6274 2,14 C2,7.37258 7.37258,2 14,2 Z M14,11 C13.4477,11 13,11.4477 13,12 L13,12 L13,20 C13,20.5523 13.4477,21 14,21 C14.5523,21 15,20.5523 15,20 L15,20 L15,12 C15,11.4477 14.5523,11 14,11 Z M14,6.75 C13.3096,6.75 12.75,7.30964 12.75,8 C12.75,8.69036 13.3096,9.25 14,9.25 C14.6904,9.25 15.25,8.69036 15.25,8 C15.25,7.30964 14.6904,6.75 14,6.75 Z"}))))),gf=pe({name:"More",render(){return h("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z"}))))}}),Jd=Vr("success",()=>h("svg",{viewBox:"0 0 48 48",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M32.6338835,17.6161165 C32.1782718,17.1605048 31.4584514,17.1301307 30.9676119,17.5249942 L30.8661165,17.6161165 L20.75,27.732233 L17.1338835,24.1161165 C16.6457281,23.6279612 15.8542719,23.6279612 15.3661165,24.1161165 C14.9105048,24.5717282 14.8801307,25.2915486 15.2749942,25.7823881 L15.3661165,25.8838835 L19.8661165,30.3838835 C20.3217282,30.8394952 21.0415486,30.8698693 21.5323881,30.4750058 L21.6338835,30.3838835 L32.6338835,19.3838835 C33.1220388,18.8957281 33.1220388,18.1042719 32.6338835,17.6161165 Z"}))))),Qd=Vr("warning",()=>h("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M12,2 C17.523,2 22,6.478 22,12 C22,17.522 17.523,22 12,22 C6.477,22 2,17.522 2,12 C2,6.478 6.477,2 12,2 Z M12.0018002,15.0037242 C11.450254,15.0037242 11.0031376,15.4508407 11.0031376,16.0023869 C11.0031376,16.553933 11.450254,17.0010495 12.0018002,17.0010495 C12.5533463,17.0010495 13.0004628,16.553933 13.0004628,16.0023869 C13.0004628,15.4508407 12.5533463,15.0037242 12.0018002,15.0037242 Z M11.99964,7 C11.4868042,7.00018474 11.0642719,7.38637706 11.0066858,7.8837365 L11,8.00036004 L11.0018003,13.0012393 L11.00857,13.117858 C11.0665141,13.6151758 11.4893244,14.0010638 12.0021602,14.0008793 C12.514996,14.0006946 12.9375283,13.6145023 12.9951144,13.1171428 L13.0018002,13.0005193 L13,7.99964009 L12.9932303,7.8830214 C12.9352861,7.38570354 12.5124758,6.99981552 11.99964,7 Z"}))))),{cubicBezierEaseInOut:lk}=hr;function an({originalTransform:e="",left:t=0,top:n=0,transition:o=`all .3s ${lk} !important`}={}){return[I("&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to",{transform:`${e} scale(0.75)`,left:t,top:n,opacity:0}),I("&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from",{transform:`scale(1) ${e}`,left:t,top:n,opacity:1}),I("&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active",{transformOrigin:"center",position:"absolute",left:t,top:n,transition:o})]}const ak=P("base-clear",` + flex-shrink: 0; + height: 1em; + width: 1em; + position: relative; +`,[I(">",[j("clear",` + font-size: var(--n-clear-size); + height: 1em; + width: 1em; + cursor: pointer; + color: var(--n-clear-color); + transition: color .3s var(--n-bezier); + display: flex; + `,[I("&:hover",` + color: var(--n-clear-color-hover)!important; + `),I("&:active",` + color: var(--n-clear-color-pressed)!important; + `)]),j("placeholder",` + display: flex; + `),j("clear, placeholder",` + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + `,[an({originalTransform:"translateX(-50%) translateY(-50%)",left:"50%",top:"50%"})])])]),Qs=pe({name:"BaseClear",props:{clsPrefix:{type:String,required:!0},show:Boolean,onClear:Function},setup(e){return pr("-base-clear",ak,we(e,"clsPrefix")),{handleMouseDown(t){t.preventDefault()}}},render(){const{clsPrefix:e}=this;return h("div",{class:`${e}-base-clear`},h(vr,null,{default:()=>{var t,n;return this.show?h("div",{key:"dismiss",class:`${e}-base-clear__clear`,onClick:this.onClear,onMousedown:this.handleMouseDown,"data-clear":!0},$n(this.$slots.icon,()=>[h(kt,{clsPrefix:e},{default:()=>h(ek,null)})])):h("div",{key:"icon",class:`${e}-base-clear__placeholder`},(n=(t=this.$slots).placeholder)===null||n===void 0?void 0:n.call(t))}}))}}),sk=P("base-close",` + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + background-color: transparent; + color: var(--n-close-icon-color); + border-radius: var(--n-close-border-radius); + height: var(--n-close-size); + width: var(--n-close-size); + font-size: var(--n-close-icon-size); + outline: none; + border: none; + position: relative; + padding: 0; +`,[H("absolute",` + height: var(--n-close-icon-size); + width: var(--n-close-icon-size); + `),I("&::before",` + content: ""; + position: absolute; + width: var(--n-close-size); + height: var(--n-close-size); + left: 50%; + top: 50%; + transform: translateY(-50%) translateX(-50%); + transition: inherit; + border-radius: inherit; + `),dt("disabled",[I("&:hover",` + color: var(--n-close-icon-color-hover); + `),I("&:hover::before",` + background-color: var(--n-close-color-hover); + `),I("&:focus::before",` + background-color: var(--n-close-color-hover); + `),I("&:active",` + color: var(--n-close-icon-color-pressed); + `),I("&:active::before",` + background-color: var(--n-close-color-pressed); + `)]),H("disabled",` + cursor: not-allowed; + color: var(--n-close-icon-color-disabled); + background-color: transparent; + `),H("round",[I("&::before",` + border-radius: 50%; + `)])]),Kr=pe({name:"BaseClose",props:{isButtonTag:{type:Boolean,default:!0},clsPrefix:{type:String,required:!0},disabled:{type:Boolean,default:void 0},focusable:{type:Boolean,default:!0},round:Boolean,onClick:Function,absolute:Boolean},setup(e){return pr("-base-close",sk,we(e,"clsPrefix")),()=>{const{clsPrefix:t,disabled:n,absolute:o,round:r,isButtonTag:i}=e;return h(i?"button":"div",{type:i?"button":void 0,tabindex:n||!e.focusable?-1:0,"aria-disabled":n,"aria-label":"close",role:i?void 0:"button",disabled:n,class:[`${t}-base-close`,o&&`${t}-base-close--absolute`,n&&`${t}-base-close--disabled`,r&&`${t}-base-close--round`],onMousedown:a=>{e.focusable||a.preventDefault()},onClick:e.onClick},h(kt,{clsPrefix:t},{default:()=>h(tk,null)}))}}}),$v=pe({name:"FadeInExpandTransition",props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:t}){function n(a){e.width?a.style.maxWidth=`${a.offsetWidth}px`:a.style.maxHeight=`${a.offsetHeight}px`,a.offsetWidth}function o(a){e.width?a.style.maxWidth="0":a.style.maxHeight="0",a.offsetWidth;const{onLeave:s}=e;s&&s()}function r(a){e.width?a.style.maxWidth="":a.style.maxHeight="";const{onAfterLeave:s}=e;s&&s()}function i(a){if(a.style.transition="none",e.width){const s=a.offsetWidth;a.style.maxWidth="0",a.offsetWidth,a.style.transition="",a.style.maxWidth=`${s}px`}else if(e.reverse)a.style.maxHeight=`${a.offsetHeight}px`,a.offsetHeight,a.style.transition="",a.style.maxHeight="0";else{const s=a.offsetHeight;a.style.maxHeight="0",a.offsetWidth,a.style.transition="",a.style.maxHeight=`${s}px`}a.offsetWidth}function l(a){var s;e.width?a.style.maxWidth="":e.reverse||(a.style.maxHeight=""),(s=e.onAfterEnter)===null||s===void 0||s.call(e)}return()=>{const{group:a,width:s,appear:d,mode:c}=e,f=a?dp:pn,v={name:s?"fade-in-width-expand-transition":"fade-in-height-expand-transition",appear:d,onEnter:i,onAfterEnter:l,onBeforeLeave:n,onLeave:o,onAfterLeave:r};return a||(v.mode=c),h(f,v,t)}}}),dk=pe({props:{onFocus:Function,onBlur:Function},setup(e){return()=>h("div",{style:"width: 0; height: 0",tabindex:0,onFocus:e.onFocus,onBlur:e.onBlur})}}),ck=I([I("@keyframes rotator",` + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + }`),P("base-loading",` + position: relative; + line-height: 0; + width: 1em; + height: 1em; + `,[j("transition-wrapper",` + position: absolute; + width: 100%; + height: 100%; + `,[an()]),j("placeholder",` + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + `,[an({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),j("container",` + animation: rotator 3s linear infinite both; + `,[j("icon",` + height: 1em; + width: 1em; + `)])])]),us="1.6s",uk={strokeWidth:{type:Number,default:28},stroke:{type:String,default:void 0},scale:{type:Number,default:1},radius:{type:Number,default:100}},gr=pe({name:"BaseLoading",props:Object.assign({clsPrefix:{type:String,required:!0},show:{type:Boolean,default:!0}},uk),setup(e){pr("-base-loading",ck,we(e,"clsPrefix"))},render(){const{clsPrefix:e,radius:t,strokeWidth:n,stroke:o,scale:r}=this,i=t/r;return h("div",{class:`${e}-base-loading`,role:"img","aria-label":"loading"},h(vr,null,{default:()=>this.show?h("div",{key:"icon",class:`${e}-base-loading__transition-wrapper`},h("div",{class:`${e}-base-loading__container`},h("svg",{class:`${e}-base-loading__icon`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:o}},h("g",null,h("animateTransform",{attributeName:"transform",type:"rotate",values:`0 ${i} ${i};270 ${i} ${i}`,begin:"0s",dur:us,fill:"freeze",repeatCount:"indefinite"}),h("circle",{class:`${e}-base-loading__icon`,fill:"none",stroke:"currentColor","stroke-width":n,"stroke-linecap":"round",cx:i,cy:i,r:t-n/2,"stroke-dasharray":5.67*t,"stroke-dashoffset":18.48*t},h("animateTransform",{attributeName:"transform",type:"rotate",values:`0 ${i} ${i};135 ${i} ${i};450 ${i} ${i}`,begin:"0s",dur:us,fill:"freeze",repeatCount:"indefinite"}),h("animate",{attributeName:"stroke-dashoffset",values:`${5.67*t};${1.42*t};${5.67*t}`,begin:"0s",dur:us,fill:"freeze",repeatCount:"indefinite"})))))):h("div",{key:"placeholder",class:`${e}-base-loading__placeholder`},this.$slots)}))}}),{cubicBezierEaseInOut:bf}=hr;function ec({name:e="fade-in",enterDuration:t="0.2s",leaveDuration:n="0.2s",enterCubicBezier:o=bf,leaveCubicBezier:r=bf}={}){return[I(`&.${e}-transition-enter-active`,{transition:`all ${t} ${o}!important`}),I(`&.${e}-transition-leave-active`,{transition:`all ${n} ${r}!important`}),I(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0}),I(`&.${e}-transition-leave-from, &.${e}-transition-enter-to`,{opacity:1})]}const He={neutralBase:"#FFF",neutralInvertBase:"#000",neutralTextBase:"#000",neutralPopover:"#fff",neutralCard:"#fff",neutralModal:"#fff",neutralBody:"#fff",alpha1:"0.82",alpha2:"0.72",alpha3:"0.38",alpha4:"0.24",alpha5:"0.18",alphaClose:"0.6",alphaDisabled:"0.5",alphaAvatar:"0.2",alphaProgressRail:".08",alphaInput:"0",alphaScrollbar:"0.25",alphaScrollbarHover:"0.4",primaryHover:"#36ad6a",primaryDefault:"#18a058",primaryActive:"#0c7a43",primarySuppl:"#36ad6a",infoHover:"#4098fc",infoDefault:"#2080f0",infoActive:"#1060c9",infoSuppl:"#4098fc",errorHover:"#de576d",errorDefault:"#d03050",errorActive:"#ab1f3f",errorSuppl:"#de576d",warningHover:"#fcb040",warningDefault:"#f0a020",warningActive:"#c97c10",warningSuppl:"#fcb040",successHover:"#36ad6a",successDefault:"#18a058",successActive:"#0c7a43",successSuppl:"#36ad6a"},fk=ir(He.neutralBase),_v=ir(He.neutralInvertBase),hk=`rgba(${_v.slice(0,3).join(", ")}, `;function mf(e){return`${hk+String(e)})`}function jt(e){const t=Array.from(_v);return t[3]=Number(e),rt(fk,t)}const gt=Object.assign(Object.assign({name:"common"},hr),{baseColor:He.neutralBase,primaryColor:He.primaryDefault,primaryColorHover:He.primaryHover,primaryColorPressed:He.primaryActive,primaryColorSuppl:He.primarySuppl,infoColor:He.infoDefault,infoColorHover:He.infoHover,infoColorPressed:He.infoActive,infoColorSuppl:He.infoSuppl,successColor:He.successDefault,successColorHover:He.successHover,successColorPressed:He.successActive,successColorSuppl:He.successSuppl,warningColor:He.warningDefault,warningColorHover:He.warningHover,warningColorPressed:He.warningActive,warningColorSuppl:He.warningSuppl,errorColor:He.errorDefault,errorColorHover:He.errorHover,errorColorPressed:He.errorActive,errorColorSuppl:He.errorSuppl,textColorBase:He.neutralTextBase,textColor1:"rgb(31, 34, 37)",textColor2:"rgb(51, 54, 57)",textColor3:"rgb(118, 124, 130)",textColorDisabled:jt(He.alpha4),placeholderColor:jt(He.alpha4),placeholderColorDisabled:jt(He.alpha5),iconColor:jt(He.alpha4),iconColorHover:rl(jt(He.alpha4),{lightness:.75}),iconColorPressed:rl(jt(He.alpha4),{lightness:.9}),iconColorDisabled:jt(He.alpha5),opacity1:He.alpha1,opacity2:He.alpha2,opacity3:He.alpha3,opacity4:He.alpha4,opacity5:He.alpha5,dividerColor:"rgb(239, 239, 245)",borderColor:"rgb(224, 224, 230)",closeIconColor:jt(Number(He.alphaClose)),closeIconColorHover:jt(Number(He.alphaClose)),closeIconColorPressed:jt(Number(He.alphaClose)),closeColorHover:"rgba(0, 0, 0, .09)",closeColorPressed:"rgba(0, 0, 0, .13)",clearColor:jt(He.alpha4),clearColorHover:rl(jt(He.alpha4),{lightness:.75}),clearColorPressed:rl(jt(He.alpha4),{lightness:.9}),scrollbarColor:mf(He.alphaScrollbar),scrollbarColorHover:mf(He.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:jt(He.alphaProgressRail),railColor:"rgb(219, 219, 223)",popoverColor:He.neutralPopover,tableColor:He.neutralCard,cardColor:He.neutralCard,modalColor:He.neutralModal,bodyColor:He.neutralBody,tagColor:"#eee",avatarColor:jt(He.alphaAvatar),invertedColor:"rgb(0, 20, 40)",inputColor:jt(He.alphaInput),codeColor:"rgb(244, 244, 248)",tabColor:"rgb(247, 247, 250)",actionColor:"rgb(250, 250, 252)",tableHeaderColor:"rgb(250, 250, 252)",hoverColor:"rgb(243, 243, 245)",tableColorHover:"rgba(0, 0, 100, 0.03)",tableColorStriped:"rgba(0, 0, 100, 0.02)",pressedColor:"rgb(237, 237, 239)",opacityDisabled:He.alphaDisabled,inputColorDisabled:"rgb(250, 250, 252)",buttonColor2:"rgba(46, 51, 56, .05)",buttonColor2Hover:"rgba(46, 51, 56, .09)",buttonColor2Pressed:"rgba(46, 51, 56, .13)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),pk={railInsetHorizontalBottom:"auto 2px 4px 2px",railInsetHorizontalTop:"4px 2px auto 2px",railInsetVerticalRight:"2px 4px 2px auto",railInsetVerticalLeft:"2px auto 2px 4px",railColor:"transparent"};function vk(e){const{scrollbarColor:t,scrollbarColorHover:n,scrollbarHeight:o,scrollbarWidth:r,scrollbarBorderRadius:i}=e;return Object.assign(Object.assign({},pk),{height:o,width:r,borderRadius:i,color:t,colorHover:n})}const jo={name:"Scrollbar",common:gt,self:vk},gk=P("scrollbar",` + overflow: hidden; + position: relative; + z-index: auto; + height: 100%; + width: 100%; +`,[I(">",[P("scrollbar-container",` + width: 100%; + overflow: scroll; + height: 100%; + min-height: inherit; + max-height: inherit; + scrollbar-width: none; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + width: 0; + height: 0; + display: none; + `),I(">",[P("scrollbar-content",` + box-sizing: border-box; + min-width: 100%; + `)])])]),I(">, +",[P("scrollbar-rail",` + position: absolute; + pointer-events: none; + user-select: none; + background: var(--n-scrollbar-rail-color); + -webkit-user-select: none; + `,[H("horizontal",` + height: var(--n-scrollbar-height); + `,[I(">",[j("scrollbar",` + height: var(--n-scrollbar-height); + border-radius: var(--n-scrollbar-border-radius); + right: 0; + `)])]),H("horizontal--top",` + top: var(--n-scrollbar-rail-top-horizontal-top); + right: var(--n-scrollbar-rail-right-horizontal-top); + bottom: var(--n-scrollbar-rail-bottom-horizontal-top); + left: var(--n-scrollbar-rail-left-horizontal-top); + `),H("horizontal--bottom",` + top: var(--n-scrollbar-rail-top-horizontal-bottom); + right: var(--n-scrollbar-rail-right-horizontal-bottom); + bottom: var(--n-scrollbar-rail-bottom-horizontal-bottom); + left: var(--n-scrollbar-rail-left-horizontal-bottom); + `),H("vertical",` + width: var(--n-scrollbar-width); + `,[I(">",[j("scrollbar",` + width: var(--n-scrollbar-width); + border-radius: var(--n-scrollbar-border-radius); + bottom: 0; + `)])]),H("vertical--left",` + top: var(--n-scrollbar-rail-top-vertical-left); + right: var(--n-scrollbar-rail-right-vertical-left); + bottom: var(--n-scrollbar-rail-bottom-vertical-left); + left: var(--n-scrollbar-rail-left-vertical-left); + `),H("vertical--right",` + top: var(--n-scrollbar-rail-top-vertical-right); + right: var(--n-scrollbar-rail-right-vertical-right); + bottom: var(--n-scrollbar-rail-bottom-vertical-right); + left: var(--n-scrollbar-rail-left-vertical-right); + `),H("disabled",[I(">",[j("scrollbar","pointer-events: none;")])]),I(">",[j("scrollbar",` + z-index: 1; + position: absolute; + cursor: pointer; + pointer-events: all; + background-color: var(--n-scrollbar-color); + transition: background-color .2s var(--n-scrollbar-bezier); + `,[ec(),I("&:hover","background-color: var(--n-scrollbar-color-hover);")])])])])]),bk=Object.assign(Object.assign({},Be.props),{duration:{type:Number,default:0},scrollable:{type:Boolean,default:!0},xScrollable:Boolean,trigger:{type:String,default:"hover"},useUnifiedContainer:Boolean,triggerDisplayManually:Boolean,container:Function,content:Function,containerClass:String,containerStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],horizontalRailStyle:[String,Object],verticalRailStyle:[String,Object],onScroll:Function,onWheel:Function,onResize:Function,internalOnUpdateScrollLeft:Function,internalHoistYRail:Boolean,internalExposeWidthCssVar:Boolean,yPlacement:{type:String,default:"right"},xPlacement:{type:String,default:"bottom"}}),bo=pe({name:"Scrollbar",props:bk,inheritAttrs:!1,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:o}=Ye(e),r=Bt("Scrollbar",o,t),i=E(null),l=E(null),a=E(null),s=E(null),d=E(null),c=E(null),f=E(null),v=E(null),g=E(null),u=E(null),p=E(null),b=E(0),m=E(0),y=E(!1),$=E(!1);let S=!1,x=!1,R,C,w=0,k=0,F=0,M=0;const _=Sy(),T=Be("Scrollbar","-scrollbar",gk,jo,e,t),B=O(()=>{const{value:te}=v,{value:A}=c,{value:X}=u;return te===null||A===null||X===null?0:Math.min(te,X*te/A+Pt(T.value.self.width)*1.5)}),D=O(()=>`${B.value}px`),K=O(()=>{const{value:te}=g,{value:A}=f,{value:X}=p;return te===null||A===null||X===null?0:X*te/A+Pt(T.value.self.height)*1.5}),N=O(()=>`${K.value}px`),V=O(()=>{const{value:te}=v,{value:A}=b,{value:X}=c,{value:be}=u;if(te===null||X===null||be===null)return 0;{const _e=X-te;return _e?A/_e*(be-B.value):0}}),ie=O(()=>`${V.value}px`),he=O(()=>{const{value:te}=g,{value:A}=m,{value:X}=f,{value:be}=p;if(te===null||X===null||be===null)return 0;{const _e=X-te;return _e?A/_e*(be-K.value):0}}),J=O(()=>`${he.value}px`),re=O(()=>{const{value:te}=v,{value:A}=c;return te!==null&&A!==null&&A>te}),ye=O(()=>{const{value:te}=g,{value:A}=f;return te!==null&&A!==null&&A>te}),Z=O(()=>{const{trigger:te}=e;return te==="none"||y.value}),le=O(()=>{const{trigger:te}=e;return te==="none"||$.value}),$e=O(()=>{const{container:te}=e;return te?te():l.value}),ze=O(()=>{const{content:te}=e;return te?te():a.value}),Ae=(te,A)=>{if(!e.scrollable)return;if(typeof te=="number"){L(te,A??0,0,!1,"auto");return}const{left:X,top:be,index:_e,elSize:xe,position:ke,behavior:Ce,el:Fe,debounce:Ze=!0}=te;(X!==void 0||be!==void 0)&&L(X??0,be??0,0,!1,Ce),Fe!==void 0?L(0,Fe.offsetTop,Fe.offsetHeight,Ze,Ce):_e!==void 0&&xe!==void 0?L(0,_e*xe,xe,Ze,Ce):ke==="bottom"?L(0,Number.MAX_SAFE_INTEGER,0,!1,Ce):ke==="top"&&L(0,0,0,!1,Ce)},Te=zp(()=>{e.container||Ae({top:b.value,left:m.value})}),ne=()=>{Te.isDeactivated||Y()},Oe=te=>{if(Te.isDeactivated)return;const{onResize:A}=e;A&&A(te),Y()},z=(te,A)=>{if(!e.scrollable)return;const{value:X}=$e;X&&(typeof te=="object"?X.scrollBy(te):X.scrollBy(te,A||0))};function L(te,A,X,be,_e){const{value:xe}=$e;if(xe){if(be){const{scrollTop:ke,offsetHeight:Ce}=xe;if(A>ke){A+X<=ke+Ce||xe.scrollTo({left:te,top:A+X-Ce,behavior:_e});return}}xe.scrollTo({left:te,top:A,behavior:_e})}}function ee(){ve(),fe(),Y()}function se(){ae()}function ae(){Q(),ue()}function Q(){C!==void 0&&window.clearTimeout(C),C=window.setTimeout(()=>{$.value=!1},e.duration)}function ue(){R!==void 0&&window.clearTimeout(R),R=window.setTimeout(()=>{y.value=!1},e.duration)}function ve(){R!==void 0&&window.clearTimeout(R),y.value=!0}function fe(){C!==void 0&&window.clearTimeout(C),$.value=!0}function oe(te){const{onScroll:A}=e;A&&A(te),q()}function q(){const{value:te}=$e;te&&(b.value=te.scrollTop,m.value=te.scrollLeft*(r?.value?-1:1))}function G(){const{value:te}=ze;te&&(c.value=te.offsetHeight,f.value=te.offsetWidth);const{value:A}=$e;A&&(v.value=A.offsetHeight,g.value=A.offsetWidth);const{value:X}=d,{value:be}=s;X&&(p.value=X.offsetWidth),be&&(u.value=be.offsetHeight)}function W(){const{value:te}=$e;te&&(b.value=te.scrollTop,m.value=te.scrollLeft*(r?.value?-1:1),v.value=te.offsetHeight,g.value=te.offsetWidth,c.value=te.scrollHeight,f.value=te.scrollWidth);const{value:A}=d,{value:X}=s;A&&(p.value=A.offsetWidth),X&&(u.value=X.offsetHeight)}function Y(){e.scrollable&&(e.useUnifiedContainer?W():(G(),q()))}function Se(te){var A;return!(!((A=i.value)===null||A===void 0)&&A.contains(Dr(te)))}function Le(te){te.preventDefault(),te.stopPropagation(),x=!0,ct("mousemove",window,Ie,!0),ct("mouseup",window,De,!0),k=m.value,F=r?.value?window.innerWidth-te.clientX:te.clientX}function Ie(te){if(!x)return;R!==void 0&&window.clearTimeout(R),C!==void 0&&window.clearTimeout(C);const{value:A}=g,{value:X}=f,{value:be}=K;if(A===null||X===null)return;const xe=(r?.value?window.innerWidth-te.clientX-F:te.clientX-F)*(X-A)/(A-be),ke=X-A;let Ce=k+xe;Ce=Math.min(ke,Ce),Ce=Math.max(Ce,0);const{value:Fe}=$e;if(Fe){Fe.scrollLeft=Ce*(r?.value?-1:1);const{internalOnUpdateScrollLeft:Ze}=e;Ze&&Ze(Ce)}}function De(te){te.preventDefault(),te.stopPropagation(),et("mousemove",window,Ie,!0),et("mouseup",window,De,!0),x=!1,Y(),Se(te)&&ae()}function Ge(te){te.preventDefault(),te.stopPropagation(),S=!0,ct("mousemove",window,Xe,!0),ct("mouseup",window,at,!0),w=b.value,M=te.clientY}function Xe(te){if(!S)return;R!==void 0&&window.clearTimeout(R),C!==void 0&&window.clearTimeout(C);const{value:A}=v,{value:X}=c,{value:be}=B;if(A===null||X===null)return;const xe=(te.clientY-M)*(X-A)/(A-be),ke=X-A;let Ce=w+xe;Ce=Math.min(ke,Ce),Ce=Math.max(Ce,0);const{value:Fe}=$e;Fe&&(Fe.scrollTop=Ce)}function at(te){te.preventDefault(),te.stopPropagation(),et("mousemove",window,Xe,!0),et("mouseup",window,at,!0),S=!1,Y(),Se(te)&&ae()}en(()=>{const{value:te}=ye,{value:A}=re,{value:X}=t,{value:be}=d,{value:_e}=s;be&&(te?be.classList.remove(`${X}-scrollbar-rail--disabled`):be.classList.add(`${X}-scrollbar-rail--disabled`)),_e&&(A?_e.classList.remove(`${X}-scrollbar-rail--disabled`):_e.classList.add(`${X}-scrollbar-rail--disabled`))}),Ct(()=>{e.container||Y()}),xt(()=>{R!==void 0&&window.clearTimeout(R),C!==void 0&&window.clearTimeout(C),et("mousemove",window,Xe,!0),et("mouseup",window,at,!0)});const mt=O(()=>{const{common:{cubicBezierEaseInOut:te},self:{color:A,colorHover:X,height:be,width:_e,borderRadius:xe,railInsetHorizontalTop:ke,railInsetHorizontalBottom:Ce,railInsetVerticalRight:Fe,railInsetVerticalLeft:Ze,railColor:Lt}}=T.value,{top:Et,right:Dt,bottom:zt,left:Ht}=Ft(ke),{top:on,right:Nt,bottom:Xt,left:Mt}=Ft(Ce),{top:U,right:ce,bottom:Me,left:je}=Ft(r?.value?Bu(Fe):Fe),{top:Ve,right:Je,bottom:rn,left:ln}=Ft(r?.value?Bu(Ze):Ze);return{"--n-scrollbar-bezier":te,"--n-scrollbar-color":A,"--n-scrollbar-color-hover":X,"--n-scrollbar-border-radius":xe,"--n-scrollbar-width":_e,"--n-scrollbar-height":be,"--n-scrollbar-rail-top-horizontal-top":Et,"--n-scrollbar-rail-right-horizontal-top":Dt,"--n-scrollbar-rail-bottom-horizontal-top":zt,"--n-scrollbar-rail-left-horizontal-top":Ht,"--n-scrollbar-rail-top-horizontal-bottom":on,"--n-scrollbar-rail-right-horizontal-bottom":Nt,"--n-scrollbar-rail-bottom-horizontal-bottom":Xt,"--n-scrollbar-rail-left-horizontal-bottom":Mt,"--n-scrollbar-rail-top-vertical-right":U,"--n-scrollbar-rail-right-vertical-right":ce,"--n-scrollbar-rail-bottom-vertical-right":Me,"--n-scrollbar-rail-left-vertical-right":je,"--n-scrollbar-rail-top-vertical-left":Ve,"--n-scrollbar-rail-right-vertical-left":Je,"--n-scrollbar-rail-bottom-vertical-left":rn,"--n-scrollbar-rail-left-vertical-left":ln,"--n-scrollbar-rail-color":Lt}}),ft=n?vt("scrollbar",void 0,mt,e):void 0;return Object.assign(Object.assign({},{scrollTo:Ae,scrollBy:z,sync:Y,syncUnifiedContainer:W,handleMouseEnterWrapper:ee,handleMouseLeaveWrapper:se}),{mergedClsPrefix:t,rtlEnabled:r,containerScrollTop:b,wrapperRef:i,containerRef:l,contentRef:a,yRailRef:s,xRailRef:d,needYBar:re,needXBar:ye,yBarSizePx:D,xBarSizePx:N,yBarTopPx:ie,xBarLeftPx:J,isShowXBar:Z,isShowYBar:le,isIos:_,handleScroll:oe,handleContentResize:ne,handleContainerResize:Oe,handleYScrollMouseDown:Ge,handleXScrollMouseDown:Le,containerWidth:g,cssVars:n?void 0:mt,themeClass:ft?.themeClass,onRender:ft?.onRender})},render(){var e;const{$slots:t,mergedClsPrefix:n,triggerDisplayManually:o,rtlEnabled:r,internalHoistYRail:i,yPlacement:l,xPlacement:a,xScrollable:s}=this;if(!this.scrollable)return(e=t.default)===null||e===void 0?void 0:e.call(t);const d=this.trigger==="none",c=(g,u)=>h("div",{ref:"yRailRef",class:[`${n}-scrollbar-rail`,`${n}-scrollbar-rail--vertical`,`${n}-scrollbar-rail--vertical--${l}`,g],"data-scrollbar-rail":!0,style:[u||"",this.verticalRailStyle],"aria-hidden":!0},h(d?Ws:pn,d?null:{name:"fade-in-transition"},{default:()=>this.needYBar&&this.isShowYBar&&!this.isIos?h("div",{class:`${n}-scrollbar-rail__scrollbar`,style:{height:this.yBarSizePx,top:this.yBarTopPx},onMousedown:this.handleYScrollMouseDown}):null})),f=()=>{var g,u;return(g=this.onRender)===null||g===void 0||g.call(this),h("div",nn(this.$attrs,{role:"none",ref:"wrapperRef",class:[`${n}-scrollbar`,this.themeClass,r&&`${n}-scrollbar--rtl`],style:this.cssVars,onMouseenter:o?void 0:this.handleMouseEnterWrapper,onMouseleave:o?void 0:this.handleMouseLeaveWrapper}),[this.container?(u=t.default)===null||u===void 0?void 0:u.call(t):h("div",{role:"none",ref:"containerRef",class:[`${n}-scrollbar-container`,this.containerClass],style:[this.containerStyle,this.internalExposeWidthCssVar?{"--n-scrollbar-current-width":pt(this.containerWidth)}:void 0],onScroll:this.handleScroll,onWheel:this.onWheel},h(Kn,{onResize:this.handleContentResize},{default:()=>h("div",{ref:"contentRef",role:"none",style:[{width:this.xScrollable?"fit-content":null},this.contentStyle],class:[`${n}-scrollbar-content`,this.contentClass]},t)})),i?null:c(void 0,void 0),s&&h("div",{ref:"xRailRef",class:[`${n}-scrollbar-rail`,`${n}-scrollbar-rail--horizontal`,`${n}-scrollbar-rail--horizontal--${a}`],style:this.horizontalRailStyle,"data-scrollbar-rail":!0,"aria-hidden":!0},h(d?Ws:pn,d?null:{name:"fade-in-transition"},{default:()=>this.needXBar&&this.isShowXBar&&!this.isIos?h("div",{class:`${n}-scrollbar-rail__scrollbar`,style:{width:this.xBarSizePx,right:r?this.xBarLeftPx:void 0,left:r?void 0:this.xBarLeftPx},onMousedown:this.handleXScrollMouseDown}):null}))])},v=this.container?f():h(Kn,{onResize:this.handleContainerResize},{default:f});return i?h(nt,null,v,c(this.themeClass,this.cssVars)):v}}),zv=bo;function yf(e){return Array.isArray(e)?e:[e]}const ed={STOP:"STOP"};function Tv(e,t){const n=t(e);e.children!==void 0&&n!==ed.STOP&&e.children.forEach(o=>Tv(o,t))}function mk(e,t={}){const{preserveGroup:n=!1}=t,o=[],r=n?l=>{l.isLeaf||(o.push(l.key),i(l.children))}:l=>{l.isLeaf||(l.isGroup||o.push(l.key),i(l.children))};function i(l){l.forEach(r)}return i(e),o}function yk(e,t){const{isLeaf:n}=e;return n!==void 0?n:!t(e)}function xk(e){return e.children}function wk(e){return e.key}function Ck(){return!1}function Sk(e,t){const{isLeaf:n}=e;return!(n===!1&&!Array.isArray(t(e)))}function Rk(e){return e.disabled===!0}function kk(e,t){return e.isLeaf===!1&&!Array.isArray(t(e))}function fs(e){var t;return e==null?[]:Array.isArray(e)?e:(t=e.checkedKeys)!==null&&t!==void 0?t:[]}function hs(e){var t;return e==null||Array.isArray(e)?[]:(t=e.indeterminateKeys)!==null&&t!==void 0?t:[]}function Pk(e,t){const n=new Set(e);return t.forEach(o=>{n.has(o)||n.add(o)}),Array.from(n)}function $k(e,t){const n=new Set(e);return t.forEach(o=>{n.has(o)&&n.delete(o)}),Array.from(n)}function _k(e){return e?.type==="group"}function zk(e){const t=new Map;return e.forEach((n,o)=>{t.set(n.key,o)}),n=>{var o;return(o=t.get(n))!==null&&o!==void 0?o:null}}class Tk extends Error{constructor(){super(),this.message="SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded."}}function Fk(e,t,n,o){return Vl(t.concat(e),n,o,!1)}function Ok(e,t){const n=new Set;return e.forEach(o=>{const r=t.treeNodeMap.get(o);if(r!==void 0){let i=r.parent;for(;i!==null&&!(i.disabled||n.has(i.key));)n.add(i.key),i=i.parent}}),n}function Ek(e,t,n,o){const r=Vl(t,n,o,!1),i=Vl(e,n,o,!0),l=Ok(e,n),a=[];return r.forEach(s=>{(i.has(s)||l.has(s))&&a.push(s)}),a.forEach(s=>r.delete(s)),r}function ps(e,t){const{checkedKeys:n,keysToCheck:o,keysToUncheck:r,indeterminateKeys:i,cascade:l,leafOnly:a,checkStrategy:s,allowNotLoaded:d}=e;if(!l)return o!==void 0?{checkedKeys:Pk(n,o),indeterminateKeys:Array.from(i)}:r!==void 0?{checkedKeys:$k(n,r),indeterminateKeys:Array.from(i)}:{checkedKeys:Array.from(n),indeterminateKeys:Array.from(i)};const{levelTreeNodeMap:c}=t;let f;r!==void 0?f=Ek(r,n,t,d):o!==void 0?f=Fk(o,n,t,d):f=Vl(n,t,d,!1);const v=s==="parent",g=s==="child"||a,u=f,p=new Set,b=Math.max.apply(null,Array.from(c.keys()));for(let m=b;m>=0;m-=1){const y=m===0,$=c.get(m);for(const S of $){if(S.isLeaf)continue;const{key:x,shallowLoaded:R}=S;if(g&&R&&S.children.forEach(F=>{!F.disabled&&!F.isLeaf&&F.shallowLoaded&&u.has(F.key)&&u.delete(F.key)}),S.disabled||!R)continue;let C=!0,w=!1,k=!0;for(const F of S.children){const M=F.key;if(!F.disabled){if(k&&(k=!1),u.has(M))w=!0;else if(p.has(M)){w=!0,C=!1;break}else if(C=!1,w)break}}C&&!k?(v&&S.children.forEach(F=>{!F.disabled&&u.has(F.key)&&u.delete(F.key)}),u.add(x)):w&&p.add(x),y&&g&&u.has(x)&&u.delete(x)}}return{checkedKeys:Array.from(u),indeterminateKeys:Array.from(p)}}function Vl(e,t,n,o){const{treeNodeMap:r,getChildren:i}=t,l=new Set,a=new Set(e);return e.forEach(s=>{const d=r.get(s);d!==void 0&&Tv(d,c=>{if(c.disabled)return ed.STOP;const{key:f}=c;if(!l.has(f)&&(l.add(f),a.add(f),kk(c.rawNode,i))){if(o)return ed.STOP;if(!n)throw new Tk}})}),a}function Mk(e,{includeGroup:t=!1,includeSelf:n=!0},o){var r;const i=o.treeNodeMap;let l=e==null?null:(r=i.get(e))!==null&&r!==void 0?r:null;const a={keyPath:[],treeNodePath:[],treeNode:l};if(l?.ignored)return a.treeNode=null,a;for(;l;)!l.ignored&&(t||!l.isGroup)&&a.treeNodePath.push(l),l=l.parent;return a.treeNodePath.reverse(),n||a.treeNodePath.pop(),a.keyPath=a.treeNodePath.map(s=>s.key),a}function Bk(e){if(e.length===0)return null;const t=e[0];return t.isGroup||t.ignored||t.disabled?t.getNext():t}function Ak(e,t){const n=e.siblings,o=n.length,{index:r}=e;return t?n[(r+1)%o]:r===n.length-1?null:n[r+1]}function xf(e,t,{loop:n=!1,includeDisabled:o=!1}={}){const r=t==="prev"?Ik:Ak,i={reverse:t==="prev"};let l=!1,a=null;function s(d){if(d!==null){if(d===e){if(!l)l=!0;else if(!e.disabled&&!e.isGroup){a=e;return}}else if((!d.disabled||o)&&!d.ignored&&!d.isGroup){a=d;return}if(d.isGroup){const c=tc(d,i);c!==null?a=c:s(r(d,n))}else{const c=r(d,!1);if(c!==null)s(c);else{const f=Lk(d);f?.isGroup?s(r(f,n)):n&&s(r(d,!0))}}}}return s(e),a}function Ik(e,t){const n=e.siblings,o=n.length,{index:r}=e;return t?n[(r-1+o)%o]:r===0?null:n[r-1]}function Lk(e){return e.parent}function tc(e,t={}){const{reverse:n=!1}=t,{children:o}=e;if(o){const{length:r}=o,i=n?r-1:0,l=n?-1:r,a=n?-1:1;for(let s=i;s!==l;s+=a){const d=o[s];if(!d.disabled&&!d.ignored)if(d.isGroup){const c=tc(d,t);if(c!==null)return c}else return d}}return null}const Dk={getChild(){return this.ignored?null:tc(this)},getParent(){const{parent:e}=this;return e?.isGroup?e.getParent():e},getNext(e={}){return xf(this,"next",e)},getPrev(e={}){return xf(this,"prev",e)}};function Hk(e,t){const n=t?new Set(t):void 0,o=[];function r(i){i.forEach(l=>{o.push(l),!(l.isLeaf||!l.children||l.ignored)&&(l.isGroup||n===void 0||n.has(l.key))&&r(l.children)})}return r(e),o}function Nk(e,t){const n=e.key;for(;t;){if(t.key===n)return!0;t=t.parent}return!1}function Fv(e,t,n,o,r,i=null,l=0){const a=[];return e.forEach((s,d)=>{var c;const f=Object.create(o);if(f.rawNode=s,f.siblings=a,f.level=l,f.index=d,f.isFirstChild=d===0,f.isLastChild=d+1===e.length,f.parent=i,!f.ignored){const v=r(s);Array.isArray(v)&&(f.children=Fv(v,t,n,o,r,f,l+1))}a.push(f),t.set(f.key,f),n.has(l)||n.set(l,[]),(c=n.get(l))===null||c===void 0||c.push(f)}),a}function ba(e,t={}){var n;const o=new Map,r=new Map,{getDisabled:i=Rk,getIgnored:l=Ck,getIsGroup:a=_k,getKey:s=wk}=t,d=(n=t.getChildren)!==null&&n!==void 0?n:xk,c=t.ignoreEmptyChildren?S=>{const x=d(S);return Array.isArray(x)?x.length?x:null:x}:d,f=Object.assign({get key(){return s(this.rawNode)},get disabled(){return i(this.rawNode)},get isGroup(){return a(this.rawNode)},get isLeaf(){return yk(this.rawNode,c)},get shallowLoaded(){return Sk(this.rawNode,c)},get ignored(){return l(this.rawNode)},contains(S){return Nk(this,S)}},Dk),v=Fv(e,o,r,f,c);function g(S){if(S==null)return null;const x=o.get(S);return x&&!x.isGroup&&!x.ignored?x:null}function u(S){if(S==null)return null;const x=o.get(S);return x&&!x.ignored?x:null}function p(S,x){const R=u(S);return R?R.getPrev(x):null}function b(S,x){const R=u(S);return R?R.getNext(x):null}function m(S){const x=u(S);return x?x.getParent():null}function y(S){const x=u(S);return x?x.getChild():null}const $={treeNodes:v,treeNodeMap:o,levelTreeNodeMap:r,maxLevel:Math.max(...r.keys()),getChildren:c,getFlattenedNodes(S){return Hk(v,S)},getNode:g,getPrev:p,getNext:b,getParent:m,getChild:y,getFirstAvailableNode(){return Bk(v)},getPath(S,x={}){return Mk(S,x,$)},getCheckedKeys(S,x={}){const{cascade:R=!0,leafOnly:C=!1,checkStrategy:w="all",allowNotLoaded:k=!1}=x;return ps({checkedKeys:fs(S),indeterminateKeys:hs(S),cascade:R,leafOnly:C,checkStrategy:w,allowNotLoaded:k},$)},check(S,x,R={}){const{cascade:C=!0,leafOnly:w=!1,checkStrategy:k="all",allowNotLoaded:F=!1}=R;return ps({checkedKeys:fs(x),indeterminateKeys:hs(x),keysToCheck:S==null?[]:yf(S),cascade:C,leafOnly:w,checkStrategy:k,allowNotLoaded:F},$)},uncheck(S,x,R={}){const{cascade:C=!0,leafOnly:w=!1,checkStrategy:k="all",allowNotLoaded:F=!1}=R;return ps({checkedKeys:fs(x),indeterminateKeys:hs(x),keysToUncheck:S==null?[]:yf(S),cascade:C,leafOnly:w,checkStrategy:k,allowNotLoaded:F},$)},getNonLeafKeys(S={}){return mk(v,S)}};return $}const jk={iconSizeTiny:"28px",iconSizeSmall:"34px",iconSizeMedium:"40px",iconSizeLarge:"46px",iconSizeHuge:"52px"};function Wk(e){const{textColorDisabled:t,iconColor:n,textColor2:o,fontSizeTiny:r,fontSizeSmall:i,fontSizeMedium:l,fontSizeLarge:a,fontSizeHuge:s}=e;return Object.assign(Object.assign({},jk),{fontSizeTiny:r,fontSizeSmall:i,fontSizeMedium:l,fontSizeLarge:a,fontSizeHuge:s,textColor:t,iconColor:n,extraTextColor:o})}const nc={name:"Empty",common:gt,self:Wk},Vk=P("empty",` + display: flex; + flex-direction: column; + align-items: center; + font-size: var(--n-font-size); +`,[j("icon",` + width: var(--n-icon-size); + height: var(--n-icon-size); + font-size: var(--n-icon-size); + line-height: var(--n-icon-size); + color: var(--n-icon-color); + transition: + color .3s var(--n-bezier); + `,[I("+",[j("description",` + margin-top: 8px; + `)])]),j("description",` + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + `),j("extra",` + text-align: center; + transition: color .3s var(--n-bezier); + margin-top: 12px; + color: var(--n-extra-text-color); + `)]),Kk=Object.assign(Object.assign({},Be.props),{description:String,showDescription:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},size:{type:String,default:"medium"},renderIcon:Function}),Ov=pe({name:"Empty",props:Kk,slots:Object,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedComponentPropsRef:o}=Ye(e),r=Be("Empty","-empty",Vk,nc,e,t),{localeRef:i}=Xi("Empty"),l=O(()=>{var c,f,v;return(c=e.description)!==null&&c!==void 0?c:(v=(f=o?.value)===null||f===void 0?void 0:f.Empty)===null||v===void 0?void 0:v.description}),a=O(()=>{var c,f;return((f=(c=o?.value)===null||c===void 0?void 0:c.Empty)===null||f===void 0?void 0:f.renderIcon)||(()=>h(nk,null))}),s=O(()=>{const{size:c}=e,{common:{cubicBezierEaseInOut:f},self:{[de("iconSize",c)]:v,[de("fontSize",c)]:g,textColor:u,iconColor:p,extraTextColor:b}}=r.value;return{"--n-icon-size":v,"--n-font-size":g,"--n-bezier":f,"--n-text-color":u,"--n-icon-color":p,"--n-extra-text-color":b}}),d=n?vt("empty",O(()=>{let c="";const{size:f}=e;return c+=f[0],c}),s,e):void 0;return{mergedClsPrefix:t,mergedRenderIcon:a,localizedDescription:O(()=>l.value||i.value.description),cssVars:n?void 0:s,themeClass:d?.themeClass,onRender:d?.onRender}},render(){const{$slots:e,mergedClsPrefix:t,onRender:n}=this;return n?.(),h("div",{class:[`${t}-empty`,this.themeClass],style:this.cssVars},this.showIcon?h("div",{class:`${t}-empty__icon`},e.icon?e.icon():h(kt,{clsPrefix:t},{default:this.mergedRenderIcon})):null,this.showDescription?h("div",{class:`${t}-empty__description`},e.default?e.default():this.localizedDescription):null,e.extra?h("div",{class:`${t}-empty__extra`},e.extra()):null)}}),Uk={height:"calc(var(--n-option-height) * 7.6)",paddingTiny:"4px 0",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingTiny:"0 12px",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};function Gk(e){const{borderRadius:t,popoverColor:n,textColor3:o,dividerColor:r,textColor2:i,primaryColorPressed:l,textColorDisabled:a,primaryColor:s,opacityDisabled:d,hoverColor:c,fontSizeTiny:f,fontSizeSmall:v,fontSizeMedium:g,fontSizeLarge:u,fontSizeHuge:p,heightTiny:b,heightSmall:m,heightMedium:y,heightLarge:$,heightHuge:S}=e;return Object.assign(Object.assign({},Uk),{optionFontSizeTiny:f,optionFontSizeSmall:v,optionFontSizeMedium:g,optionFontSizeLarge:u,optionFontSizeHuge:p,optionHeightTiny:b,optionHeightSmall:m,optionHeightMedium:y,optionHeightLarge:$,optionHeightHuge:S,borderRadius:t,color:n,groupHeaderTextColor:o,actionDividerColor:r,optionTextColor:i,optionTextColorPressed:l,optionTextColorDisabled:a,optionTextColorActive:s,optionOpacityDisabled:d,optionCheckColor:s,optionColorPending:c,optionColorActive:"rgba(0, 0, 0, 0)",optionColorActivePending:c,actionTextColor:i,loadingColor:s})}const oc={name:"InternalSelectMenu",common:gt,peers:{Scrollbar:jo,Empty:nc},self:Gk},wf=pe({name:"NBaseSelectGroupHeader",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){const{renderLabelRef:e,renderOptionRef:t,labelFieldRef:n,nodePropsRef:o}=Ee(Fd);return{labelField:n,nodeProps:o,renderLabel:e,renderOption:t}},render(){const{clsPrefix:e,renderLabel:t,renderOption:n,nodeProps:o,tmNode:{rawNode:r}}=this,i=o?.(r),l=t?t(r,!1):wt(r[this.labelField],r,!1),a=h("div",Object.assign({},i,{class:[`${e}-base-select-group-header`,i?.class]}),l);return r.render?r.render({node:a,option:r}):n?n({node:a,option:r,selected:!1}):a}});function qk(e,t){return h(pn,{name:"fade-in-scale-up-transition"},{default:()=>e?h(kt,{clsPrefix:t,class:`${t}-base-select-option__check`},{default:()=>h(QR)}):null})}const Cf=pe({name:"NBaseSelectOption",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(e){const{valueRef:t,pendingTmNodeRef:n,multipleRef:o,valueSetRef:r,renderLabelRef:i,renderOptionRef:l,labelFieldRef:a,valueFieldRef:s,showCheckmarkRef:d,nodePropsRef:c,handleOptionClick:f,handleOptionMouseEnter:v}=Ee(Fd),g=ot(()=>{const{value:m}=n;return m?e.tmNode.key===m.key:!1});function u(m){const{tmNode:y}=e;y.disabled||f(m,y)}function p(m){const{tmNode:y}=e;y.disabled||v(m,y)}function b(m){const{tmNode:y}=e,{value:$}=g;y.disabled||$||v(m,y)}return{multiple:o,isGrouped:ot(()=>{const{tmNode:m}=e,{parent:y}=m;return y&&y.rawNode.type==="group"}),showCheckmark:d,nodeProps:c,isPending:g,isSelected:ot(()=>{const{value:m}=t,{value:y}=o;if(m===null)return!1;const $=e.tmNode.rawNode[s.value];if(y){const{value:S}=r;return S.has($)}else return m===$}),labelField:a,renderLabel:i,renderOption:l,handleMouseMove:b,handleMouseEnter:p,handleClick:u}},render(){const{clsPrefix:e,tmNode:{rawNode:t},isSelected:n,isPending:o,isGrouped:r,showCheckmark:i,nodeProps:l,renderOption:a,renderLabel:s,handleClick:d,handleMouseEnter:c,handleMouseMove:f}=this,v=qk(n,e),g=s?[s(t,n),i&&v]:[wt(t[this.labelField],t,n),i&&v],u=l?.(t),p=h("div",Object.assign({},u,{class:[`${e}-base-select-option`,t.class,u?.class,{[`${e}-base-select-option--disabled`]:t.disabled,[`${e}-base-select-option--selected`]:n,[`${e}-base-select-option--grouped`]:r,[`${e}-base-select-option--pending`]:o,[`${e}-base-select-option--show-checkmark`]:i}],style:[u?.style||"",t.style||""],onClick:Si([d,u?.onClick]),onMouseenter:Si([c,u?.onMouseenter]),onMousemove:Si([f,u?.onMousemove])}),h("div",{class:`${e}-base-select-option__content`},g));return t.render?t.render({node:p,option:t,selected:n}):a?a({node:p,option:t,selected:n}):p}}),{cubicBezierEaseIn:Sf,cubicBezierEaseOut:Rf}=hr;function Yi({transformOrigin:e="inherit",duration:t=".2s",enterScale:n=".9",originalTransform:o="",originalTransition:r=""}={}){return[I("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${t} ${Sf}, transform ${t} ${Sf} ${r&&`,${r}`}`}),I("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${t} ${Rf}, transform ${t} ${Rf} ${r&&`,${r}`}`}),I("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${o} scale(${n})`}),I("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${o} scale(1)`})]}const Xk=P("base-select-menu",` + line-height: 1.5; + outline: none; + z-index: 0; + position: relative; + border-radius: var(--n-border-radius); + transition: + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + background-color: var(--n-color); +`,[P("scrollbar",` + max-height: var(--n-height); + `),P("virtual-list",` + max-height: var(--n-height); + `),P("base-select-option",` + min-height: var(--n-option-height); + font-size: var(--n-option-font-size); + display: flex; + align-items: center; + `,[j("content",` + z-index: 1; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + `)]),P("base-select-group-header",` + min-height: var(--n-option-height); + font-size: .93em; + display: flex; + align-items: center; + `),P("base-select-menu-option-wrapper",` + position: relative; + width: 100%; + `),j("loading, empty",` + display: flex; + padding: 12px 32px; + flex: 1; + justify-content: center; + `),j("loading",` + color: var(--n-loading-color); + font-size: var(--n-loading-size); + `),j("header",` + padding: 8px var(--n-option-padding-left); + font-size: var(--n-option-font-size); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + border-bottom: 1px solid var(--n-action-divider-color); + color: var(--n-action-text-color); + `),j("action",` + padding: 8px var(--n-option-padding-left); + font-size: var(--n-option-font-size); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + border-top: 1px solid var(--n-action-divider-color); + color: var(--n-action-text-color); + `),P("base-select-group-header",` + position: relative; + cursor: default; + padding: var(--n-option-padding); + color: var(--n-group-header-text-color); + `),P("base-select-option",` + cursor: pointer; + position: relative; + padding: var(--n-option-padding); + transition: + color .3s var(--n-bezier), + opacity .3s var(--n-bezier); + box-sizing: border-box; + color: var(--n-option-text-color); + opacity: 1; + `,[H("show-checkmark",` + padding-right: calc(var(--n-option-padding-right) + 20px); + `),I("&::before",` + content: ""; + position: absolute; + left: 4px; + right: 4px; + top: 0; + bottom: 0; + border-radius: var(--n-border-radius); + transition: background-color .3s var(--n-bezier); + `),I("&:active",` + color: var(--n-option-text-color-pressed); + `),H("grouped",` + padding-left: calc(var(--n-option-padding-left) * 1.5); + `),H("pending",[I("&::before",` + background-color: var(--n-option-color-pending); + `)]),H("selected",` + color: var(--n-option-text-color-active); + `,[I("&::before",` + background-color: var(--n-option-color-active); + `),H("pending",[I("&::before",` + background-color: var(--n-option-color-active-pending); + `)])]),H("disabled",` + cursor: not-allowed; + `,[dt("selected",` + color: var(--n-option-text-color-disabled); + `),H("selected",` + opacity: var(--n-option-opacity-disabled); + `)]),j("check",` + font-size: 16px; + position: absolute; + right: calc(var(--n-option-padding-right) - 4px); + top: calc(50% - 7px); + color: var(--n-option-check-color); + transition: color .3s var(--n-bezier); + `,[Yi({enterScale:"0.5"})])])]),Ev=pe({name:"InternalSelectMenu",props:Object.assign(Object.assign({},Be.props),{clsPrefix:{type:String,required:!0},scrollable:{type:Boolean,default:!0},treeMate:{type:Object,required:!0},multiple:Boolean,size:{type:String,default:"medium"},value:{type:[String,Number,Array],default:null},autoPending:Boolean,virtualScroll:{type:Boolean,default:!0},show:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},loading:Boolean,focusable:Boolean,renderLabel:Function,renderOption:Function,nodeProps:Function,showCheckmark:{type:Boolean,default:!0},onMousedown:Function,onScroll:Function,onFocus:Function,onBlur:Function,onKeyup:Function,onKeydown:Function,onTabOut:Function,onMouseenter:Function,onMouseleave:Function,onResize:Function,resetMenuOnOptionsChange:{type:Boolean,default:!0},inlineThemeDisabled:Boolean,scrollbarProps:Object,onToggle:Function}),setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n,mergedComponentPropsRef:o}=Ye(e),r=Bt("InternalSelectMenu",n,t),i=Be("InternalSelectMenu","-internal-select-menu",Xk,oc,e,we(e,"clsPrefix")),l=E(null),a=E(null),s=E(null),d=O(()=>e.treeMate.getFlattenedNodes()),c=O(()=>zk(d.value)),f=E(null);function v(){const{treeMate:Z}=e;let le=null;const{value:$e}=e;$e===null?le=Z.getFirstAvailableNode():(e.multiple?le=Z.getNode(($e||[])[($e||[]).length-1]):le=Z.getNode($e),(!le||le.disabled)&&(le=Z.getFirstAvailableNode())),K(le||null)}function g(){const{value:Z}=f;Z&&!e.treeMate.getNode(Z.key)&&(f.value=null)}let u;tt(()=>e.show,Z=>{Z?u=tt(()=>e.treeMate,()=>{e.resetMenuOnOptionsChange?(e.autoPending?v():g(),Rt(N)):g()},{immediate:!0}):u?.()},{immediate:!0}),xt(()=>{u?.()});const p=O(()=>Pt(i.value.self[de("optionHeight",e.size)])),b=O(()=>Ft(i.value.self[de("padding",e.size)])),m=O(()=>e.multiple&&Array.isArray(e.value)?new Set(e.value):new Set),y=O(()=>{const Z=d.value;return Z&&Z.length===0}),$=O(()=>{var Z,le;return(le=(Z=o?.value)===null||Z===void 0?void 0:Z.Select)===null||le===void 0?void 0:le.renderEmpty});function S(Z){const{onToggle:le}=e;le&&le(Z)}function x(Z){const{onScroll:le}=e;le&&le(Z)}function R(Z){var le;(le=s.value)===null||le===void 0||le.sync(),x(Z)}function C(){var Z;(Z=s.value)===null||Z===void 0||Z.sync()}function w(){const{value:Z}=f;return Z||null}function k(Z,le){le.disabled||K(le,!1)}function F(Z,le){le.disabled||S(le)}function M(Z){var le;yn(Z,"action")||(le=e.onKeyup)===null||le===void 0||le.call(e,Z)}function _(Z){var le;yn(Z,"action")||(le=e.onKeydown)===null||le===void 0||le.call(e,Z)}function T(Z){var le;(le=e.onMousedown)===null||le===void 0||le.call(e,Z),!e.focusable&&Z.preventDefault()}function B(){const{value:Z}=f;Z&&K(Z.getNext({loop:!0}),!0)}function D(){const{value:Z}=f;Z&&K(Z.getPrev({loop:!0}),!0)}function K(Z,le=!1){f.value=Z,le&&N()}function N(){var Z,le;const $e=f.value;if(!$e)return;const ze=c.value($e.key);ze!==null&&(e.virtualScroll?(Z=a.value)===null||Z===void 0||Z.scrollTo({index:ze}):(le=s.value)===null||le===void 0||le.scrollTo({index:ze,elSize:p.value}))}function V(Z){var le,$e;!((le=l.value)===null||le===void 0)&&le.contains(Z.target)&&(($e=e.onFocus)===null||$e===void 0||$e.call(e,Z))}function ie(Z){var le,$e;!((le=l.value)===null||le===void 0)&&le.contains(Z.relatedTarget)||($e=e.onBlur)===null||$e===void 0||$e.call(e,Z)}qe(Fd,{handleOptionMouseEnter:k,handleOptionClick:F,valueSetRef:m,pendingTmNodeRef:f,nodePropsRef:we(e,"nodeProps"),showCheckmarkRef:we(e,"showCheckmark"),multipleRef:we(e,"multiple"),valueRef:we(e,"value"),renderLabelRef:we(e,"renderLabel"),renderOptionRef:we(e,"renderOption"),labelFieldRef:we(e,"labelField"),valueFieldRef:we(e,"valueField")}),qe(Pp,l),Ct(()=>{const{value:Z}=s;Z&&Z.sync()});const he=O(()=>{const{size:Z}=e,{common:{cubicBezierEaseInOut:le},self:{height:$e,borderRadius:ze,color:Ae,groupHeaderTextColor:Te,actionDividerColor:ne,optionTextColorPressed:Oe,optionTextColor:z,optionTextColorDisabled:L,optionTextColorActive:ee,optionOpacityDisabled:se,optionCheckColor:ae,actionTextColor:Q,optionColorPending:ue,optionColorActive:ve,loadingColor:fe,loadingSize:oe,optionColorActivePending:q,[de("optionFontSize",Z)]:G,[de("optionHeight",Z)]:W,[de("optionPadding",Z)]:Y}}=i.value;return{"--n-height":$e,"--n-action-divider-color":ne,"--n-action-text-color":Q,"--n-bezier":le,"--n-border-radius":ze,"--n-color":Ae,"--n-option-font-size":G,"--n-group-header-text-color":Te,"--n-option-check-color":ae,"--n-option-color-pending":ue,"--n-option-color-active":ve,"--n-option-color-active-pending":q,"--n-option-height":W,"--n-option-opacity-disabled":se,"--n-option-text-color":z,"--n-option-text-color-active":ee,"--n-option-text-color-disabled":L,"--n-option-text-color-pressed":Oe,"--n-option-padding":Y,"--n-option-padding-left":Ft(Y,"left"),"--n-option-padding-right":Ft(Y,"right"),"--n-loading-color":fe,"--n-loading-size":oe}}),{inlineThemeDisabled:J}=e,re=J?vt("internal-select-menu",O(()=>e.size[0]),he,e):void 0,ye={selfRef:l,next:B,prev:D,getPendingTmNode:w};return Up(l,e.onResize),Object.assign({mergedTheme:i,mergedClsPrefix:t,rtlEnabled:r,virtualListRef:a,scrollbarRef:s,itemSize:p,padding:b,flattenedNodes:d,empty:y,mergedRenderEmpty:$,virtualListContainer(){const{value:Z}=a;return Z?.listElRef},virtualListContent(){const{value:Z}=a;return Z?.itemsElRef},doScroll:x,handleFocusin:V,handleFocusout:ie,handleKeyUp:M,handleKeyDown:_,handleMouseDown:T,handleVirtualListResize:C,handleVirtualListScroll:R,cssVars:J?void 0:he,themeClass:re?.themeClass,onRender:re?.onRender},ye)},render(){const{$slots:e,virtualScroll:t,clsPrefix:n,mergedTheme:o,themeClass:r,onRender:i}=this;return i?.(),h("div",{ref:"selfRef",tabindex:this.focusable?0:-1,class:[`${n}-base-select-menu`,`${n}-base-select-menu--${this.size}-size`,this.rtlEnabled&&`${n}-base-select-menu--rtl`,r,this.multiple&&`${n}-base-select-menu--multiple`],style:this.cssVars,onFocusin:this.handleFocusin,onFocusout:this.handleFocusout,onKeyup:this.handleKeyUp,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},lt(e.header,l=>l&&h("div",{class:`${n}-base-select-menu__header`,"data-header":!0,key:"header"},l)),this.loading?h("div",{class:`${n}-base-select-menu__loading`},h(gr,{clsPrefix:n,strokeWidth:20})):this.empty?h("div",{class:`${n}-base-select-menu__empty`,"data-empty":!0},$n(e.empty,()=>{var l;return[((l=this.mergedRenderEmpty)===null||l===void 0?void 0:l.call(this))||h(Ov,{theme:o.peers.Empty,themeOverrides:o.peerOverrides.Empty,size:this.size})]})):h(bo,Object.assign({ref:"scrollbarRef",theme:o.peers.Scrollbar,themeOverrides:o.peerOverrides.Scrollbar,scrollable:this.scrollable,container:t?this.virtualListContainer:void 0,content:t?this.virtualListContent:void 0,onScroll:t?void 0:this.doScroll},this.scrollbarProps),{default:()=>t?h(Ld,{ref:"virtualListRef",class:`${n}-virtual-list`,items:this.flattenedNodes,itemSize:this.itemSize,showScrollbar:!1,paddingTop:this.padding.top,paddingBottom:this.padding.bottom,onResize:this.handleVirtualListResize,onScroll:this.handleVirtualListScroll,itemResizable:!0},{default:({item:l})=>l.isGroup?h(wf,{key:l.key,clsPrefix:n,tmNode:l}):l.ignored?null:h(Cf,{clsPrefix:n,key:l.key,tmNode:l})}):h("div",{class:`${n}-base-select-menu-option-wrapper`,style:{paddingTop:this.padding.top,paddingBottom:this.padding.bottom}},this.flattenedNodes.map(l=>l.isGroup?h(wf,{key:l.key,clsPrefix:n,tmNode:l}):h(Cf,{clsPrefix:n,key:l.key,tmNode:l})))}),lt(e.action,l=>l&&[h("div",{class:`${n}-base-select-menu__action`,"data-action":!0,key:"action"},l),h(dk,{onFocus:this.onTabOut,key:"focus-detector"})]))}}),Yk={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};function Zk(e){const{boxShadow2:t,popoverColor:n,textColor2:o,borderRadius:r,fontSize:i,dividerColor:l}=e;return Object.assign(Object.assign({},Yk),{fontSize:i,borderRadius:r,color:n,dividerColor:l,textColor:o,boxShadow:t})}const Ur={name:"Popover",common:gt,peers:{Scrollbar:jo},self:Zk},vs={top:"bottom",bottom:"top",left:"right",right:"left"},Tt="var(--n-arrow-height) * 1.414",Jk=I([P("popover",` + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + position: relative; + font-size: var(--n-font-size); + color: var(--n-text-color); + box-shadow: var(--n-box-shadow); + word-break: break-word; + `,[I(">",[P("scrollbar",` + height: inherit; + max-height: inherit; + `)]),dt("raw",` + background-color: var(--n-color); + border-radius: var(--n-border-radius); + `,[dt("scrollable",[dt("show-header-or-footer","padding: var(--n-padding);")])]),j("header",` + padding: var(--n-padding); + border-bottom: 1px solid var(--n-divider-color); + transition: border-color .3s var(--n-bezier); + `),j("footer",` + padding: var(--n-padding); + border-top: 1px solid var(--n-divider-color); + transition: border-color .3s var(--n-bezier); + `),H("scrollable, show-header-or-footer",[j("content",` + padding: var(--n-padding); + `)])]),P("popover-shared",` + transform-origin: inherit; + `,[P("popover-arrow-wrapper",` + position: absolute; + overflow: hidden; + pointer-events: none; + `,[P("popover-arrow",` + transition: background-color .3s var(--n-bezier); + position: absolute; + display: block; + width: calc(${Tt}); + height: calc(${Tt}); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12); + transform: rotate(45deg); + background-color: var(--n-color); + pointer-events: all; + `)]),I("&.popover-transition-enter-from, &.popover-transition-leave-to",` + opacity: 0; + transform: scale(.85); + `),I("&.popover-transition-enter-to, &.popover-transition-leave-from",` + transform: scale(1); + opacity: 1; + `),I("&.popover-transition-enter-active",` + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .15s var(--n-bezier-ease-out), + transform .15s var(--n-bezier-ease-out); + `),I("&.popover-transition-leave-active",` + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .15s var(--n-bezier-ease-in), + transform .15s var(--n-bezier-ease-in); + `)]),gn("top-start",` + top: calc(${Tt} / -2); + left: calc(${ro("top-start")} - var(--v-offset-left)); + `),gn("top",` + top: calc(${Tt} / -2); + transform: translateX(calc(${Tt} / -2)) rotate(45deg); + left: 50%; + `),gn("top-end",` + top: calc(${Tt} / -2); + right: calc(${ro("top-end")} + var(--v-offset-left)); + `),gn("bottom-start",` + bottom: calc(${Tt} / -2); + left: calc(${ro("bottom-start")} - var(--v-offset-left)); + `),gn("bottom",` + bottom: calc(${Tt} / -2); + transform: translateX(calc(${Tt} / -2)) rotate(45deg); + left: 50%; + `),gn("bottom-end",` + bottom: calc(${Tt} / -2); + right: calc(${ro("bottom-end")} + var(--v-offset-left)); + `),gn("left-start",` + left: calc(${Tt} / -2); + top: calc(${ro("left-start")} - var(--v-offset-top)); + `),gn("left",` + left: calc(${Tt} / -2); + transform: translateY(calc(${Tt} / -2)) rotate(45deg); + top: 50%; + `),gn("left-end",` + left: calc(${Tt} / -2); + bottom: calc(${ro("left-end")} + var(--v-offset-top)); + `),gn("right-start",` + right: calc(${Tt} / -2); + top: calc(${ro("right-start")} - var(--v-offset-top)); + `),gn("right",` + right: calc(${Tt} / -2); + transform: translateY(calc(${Tt} / -2)) rotate(45deg); + top: 50%; + `),gn("right-end",` + right: calc(${Tt} / -2); + bottom: calc(${ro("right-end")} + var(--v-offset-top)); + `),...VR({top:["right-start","left-start"],right:["top-end","bottom-end"],bottom:["right-end","left-end"],left:["top-start","bottom-start"]},(e,t)=>{const n=["right","left"].includes(t),o=n?"width":"height";return e.map(r=>{const i=r.split("-")[1]==="end",a=`calc((${`var(--v-target-${o}, 0px)`} - ${Tt}) / 2)`,s=ro(r);return I(`[v-placement="${r}"] >`,[P("popover-shared",[H("center-arrow",[P("popover-arrow",`${t}: calc(max(${a}, ${s}) ${i?"+":"-"} var(--v-offset-${n?"left":"top"}));`)])])])})})]);function ro(e){return["top","bottom"].includes(e.split("-")[0])?"var(--n-arrow-offset)":"var(--n-arrow-offset-vertical)"}function gn(e,t){const n=e.split("-")[0],o=["top","bottom"].includes(n)?"height: var(--n-space-arrow);":"width: var(--n-space-arrow);";return I(`[v-placement="${e}"] >`,[P("popover-shared",` + margin-${vs[n]}: var(--n-space); + `,[H("show-arrow",` + margin-${vs[n]}: var(--n-space-arrow); + `),H("overlap",` + margin: 0; + `),Z0("popover-arrow-wrapper",` + right: 0; + left: 0; + top: 0; + bottom: 0; + ${n}: 100%; + ${vs[n]}: auto; + ${o} + `,[P("popover-arrow",t)])])])}const Mv=Object.assign(Object.assign({},Be.props),{to:Yn.propTo,show:Boolean,trigger:String,showArrow:Boolean,delay:Number,duration:Number,raw:Boolean,arrowPointToCenter:Boolean,arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],displayDirective:String,x:Number,y:Number,flip:Boolean,overlap:Boolean,placement:String,width:[Number,String],keepAliveOnHover:Boolean,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],internalDeactivateImmediately:Boolean,animated:Boolean,onClickoutside:Function,internalTrapFocus:Boolean,internalOnAfterLeave:Function,minWidth:Number,maxWidth:Number});function Bv({arrowClass:e,arrowStyle:t,arrowWrapperClass:n,arrowWrapperStyle:o,clsPrefix:r}){return h("div",{key:"__popover-arrow__",style:o,class:[`${r}-popover-arrow-wrapper`,n]},h("div",{class:[`${r}-popover-arrow`,e],style:t}))}const Qk=pe({name:"PopoverBody",inheritAttrs:!1,props:Mv,setup(e,{slots:t,attrs:n}){const{namespaceRef:o,mergedClsPrefixRef:r,inlineThemeDisabled:i,mergedRtlRef:l}=Ye(e),a=Be("Popover","-popover",Jk,Ur,e,r),s=Bt("Popover",l,r),d=E(null),c=Ee("NPopover"),f=E(null),v=E(e.show),g=E(!1);en(()=>{const{show:k}=e;k&&!kx()&&!e.internalDeactivateImmediately&&(g.value=!0)});const u=O(()=>{const{trigger:k,onClickoutside:F}=e,M=[],{positionManuallyRef:{value:_}}=c;return _||(k==="click"&&!F&&M.push([Ii,R,void 0,{capture:!0}]),k==="hover"&&M.push([My,x])),F&&M.push([Ii,R,void 0,{capture:!0}]),(e.displayDirective==="show"||e.animated&&g.value)&&M.push([Fo,e.show]),M}),p=O(()=>{const{common:{cubicBezierEaseInOut:k,cubicBezierEaseIn:F,cubicBezierEaseOut:M},self:{space:_,spaceArrow:T,padding:B,fontSize:D,textColor:K,dividerColor:N,color:V,boxShadow:ie,borderRadius:he,arrowHeight:J,arrowOffset:re,arrowOffsetVertical:ye}}=a.value;return{"--n-box-shadow":ie,"--n-bezier":k,"--n-bezier-ease-in":F,"--n-bezier-ease-out":M,"--n-font-size":D,"--n-text-color":K,"--n-color":V,"--n-divider-color":N,"--n-border-radius":he,"--n-arrow-height":J,"--n-arrow-offset":re,"--n-arrow-offset-vertical":ye,"--n-padding":B,"--n-space":_,"--n-space-arrow":T}}),b=O(()=>{const k=e.width==="trigger"?void 0:Gt(e.width),F=[];k&&F.push({width:k});const{maxWidth:M,minWidth:_}=e;return M&&F.push({maxWidth:Gt(M)}),_&&F.push({maxWidth:Gt(_)}),i||F.push(p.value),F}),m=i?vt("popover",void 0,p,e):void 0;c.setBodyInstance({syncPosition:y}),xt(()=>{c.setBodyInstance(null)}),tt(we(e,"show"),k=>{e.animated||(k?v.value=!0:v.value=!1)});function y(){var k;(k=d.value)===null||k===void 0||k.syncPosition()}function $(k){e.trigger==="hover"&&e.keepAliveOnHover&&e.show&&c.handleMouseEnter(k)}function S(k){e.trigger==="hover"&&e.keepAliveOnHover&&c.handleMouseLeave(k)}function x(k){e.trigger==="hover"&&!C().contains(Dr(k))&&c.handleMouseMoveOutside(k)}function R(k){(e.trigger==="click"&&!C().contains(Dr(k))||e.onClickoutside)&&c.handleClickOutside(k)}function C(){return c.getTriggerElement()}qe(Ui,f),qe(ca,null),qe(ua,null);function w(){if(m?.onRender(),!(e.displayDirective==="show"||e.show||e.animated&&g.value))return null;let F;const M=c.internalRenderBodyRef.value,{value:_}=r;if(M)F=M([`${_}-popover-shared`,s?.value&&`${_}-popover--rtl`,m?.themeClass.value,e.overlap&&`${_}-popover-shared--overlap`,e.showArrow&&`${_}-popover-shared--show-arrow`,e.arrowPointToCenter&&`${_}-popover-shared--center-arrow`],f,b.value,$,S);else{const{value:T}=c.extraClassRef,{internalTrapFocus:B}=e,D=!Mr(t.header)||!Mr(t.footer),K=()=>{var N,V;const ie=D?h(nt,null,lt(t.header,re=>re?h("div",{class:[`${_}-popover__header`,e.headerClass],style:e.headerStyle},re):null),lt(t.default,re=>re?h("div",{class:[`${_}-popover__content`,e.contentClass],style:e.contentStyle},t):null),lt(t.footer,re=>re?h("div",{class:[`${_}-popover__footer`,e.footerClass],style:e.footerStyle},re):null)):e.scrollable?(N=t.default)===null||N===void 0?void 0:N.call(t):h("div",{class:[`${_}-popover__content`,e.contentClass],style:e.contentStyle},t),he=e.scrollable?h(zv,{themeOverrides:a.value.peerOverrides.Scrollbar,theme:a.value.peers.Scrollbar,contentClass:D?void 0:`${_}-popover__content ${(V=e.contentClass)!==null&&V!==void 0?V:""}`,contentStyle:D?void 0:e.contentStyle},{default:()=>ie}):ie,J=e.showArrow?Bv({arrowClass:e.arrowClass,arrowStyle:e.arrowStyle,arrowWrapperClass:e.arrowWrapperClass,arrowWrapperStyle:e.arrowWrapperStyle,clsPrefix:_}):null;return[he,J]};F=h("div",nn({class:[`${_}-popover`,`${_}-popover-shared`,s?.value&&`${_}-popover--rtl`,m?.themeClass.value,T.map(N=>`${_}-${N}`),{[`${_}-popover--scrollable`]:e.scrollable,[`${_}-popover--show-header-or-footer`]:D,[`${_}-popover--raw`]:e.raw,[`${_}-popover-shared--overlap`]:e.overlap,[`${_}-popover-shared--show-arrow`]:e.showArrow,[`${_}-popover-shared--center-arrow`]:e.arrowPointToCenter}],ref:f,style:b.value,onKeydown:c.handleKeydown,onMouseenter:$,onMouseleave:S},n),B?h(Kp,{active:e.show,autoFocus:!0},{default:K}):K())}return qn(F,u.value)}return{displayed:g,namespace:o,isMounted:c.isMountedRef,zIndex:c.zIndexRef,followerRef:d,adjustedTo:Yn(e),followerEnabled:v,renderContentNode:w}},render(){return h(Ad,{ref:"followerRef",zIndex:this.zIndex,show:this.show,enabled:this.followerEnabled,to:this.adjustedTo,x:this.x,y:this.y,flip:this.flip,placement:this.placement,containerClass:this.namespace,overlap:this.overlap,width:this.width==="trigger"?"target":void 0,teleportDisabled:this.adjustedTo===Yn.tdkey},{default:()=>this.animated?h(pn,{name:"popover-transition",appear:this.isMounted,onEnter:()=>{this.followerEnabled=!0},onAfterLeave:()=>{var e;(e=this.internalOnAfterLeave)===null||e===void 0||e.call(this),this.followerEnabled=!1,this.displayed=!1}},{default:this.renderContentNode}):this.renderContentNode()})}}),eP=Object.keys(Mv),tP={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"],manual:[],nested:["onFocus","onBlur","onMouseenter","onMouseleave","onClick"]};function nP(e,t,n){tP[t].forEach(o=>{e.props?e.props=Object.assign({},e.props):e.props={};const r=e.props[o],i=n[o];r?e.props[o]=(...l)=>{r(...l),i(...l)}:e.props[o]=i})}const Nr={show:{type:Boolean,default:void 0},defaultShow:Boolean,showArrow:{type:Boolean,default:!0},trigger:{type:String,default:"hover"},delay:{type:Number,default:100},duration:{type:Number,default:100},raw:Boolean,placement:{type:String,default:"top"},x:Number,y:Number,arrowPointToCenter:Boolean,disabled:Boolean,getDisabled:Function,displayDirective:{type:String,default:"if"},arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],flip:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},width:{type:[Number,String],default:void 0},overlap:Boolean,keepAliveOnHover:{type:Boolean,default:!0},zIndex:Number,to:Yn.propTo,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],onClickoutside:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],internalDeactivateImmediately:Boolean,internalSyncTargetWithParent:Boolean,internalInheritedEventHandlers:{type:Array,default:()=>[]},internalTrapFocus:Boolean,internalExtraClass:{type:Array,default:()=>[]},onShow:[Function,Array],onHide:[Function,Array],arrow:{type:Boolean,default:void 0},minWidth:Number,maxWidth:Number},oP=Object.assign(Object.assign(Object.assign({},Be.props),Nr),{internalOnAfterLeave:Function,internalRenderBody:Function}),Zi=pe({name:"Popover",inheritAttrs:!1,props:oP,slots:Object,__popover__:!0,setup(e){const t=jr(),n=E(null),o=O(()=>e.show),r=E(e.defaultShow),i=qt(o,r),l=ot(()=>e.disabled?!1:i.value),a=()=>{if(e.disabled)return!0;const{getDisabled:D}=e;return!!D?.()},s=()=>a()?!1:i.value,d=Bl(e,["arrow","showArrow"]),c=O(()=>e.overlap?!1:d.value);let f=null;const v=E(null),g=E(null),u=ot(()=>e.x!==void 0&&e.y!==void 0);function p(D){const{"onUpdate:show":K,onUpdateShow:N,onShow:V,onHide:ie}=e;r.value=D,K&&me(K,D),N&&me(N,D),D&&V&&me(V,!0),D&&ie&&me(ie,!1)}function b(){f&&f.syncPosition()}function m(){const{value:D}=v;D&&(window.clearTimeout(D),v.value=null)}function y(){const{value:D}=g;D&&(window.clearTimeout(D),g.value=null)}function $(){const D=a();if(e.trigger==="focus"&&!D){if(s())return;p(!0)}}function S(){const D=a();if(e.trigger==="focus"&&!D){if(!s())return;p(!1)}}function x(){const D=a();if(e.trigger==="hover"&&!D){if(y(),v.value!==null||s())return;const K=()=>{p(!0),v.value=null},{delay:N}=e;N===0?K():v.value=window.setTimeout(K,N)}}function R(){const D=a();if(e.trigger==="hover"&&!D){if(m(),g.value!==null||!s())return;const K=()=>{p(!1),g.value=null},{duration:N}=e;N===0?K():g.value=window.setTimeout(K,N)}}function C(){R()}function w(D){var K;s()&&(e.trigger==="click"&&(m(),y(),p(!1)),(K=e.onClickoutside)===null||K===void 0||K.call(e,D))}function k(){if(e.trigger==="click"&&!a()){m(),y();const D=!s();p(D)}}function F(D){e.internalTrapFocus&&D.key==="Escape"&&(m(),y(),p(!1))}function M(D){r.value=D}function _(){var D;return(D=n.value)===null||D===void 0?void 0:D.targetRef}function T(D){f=D}return qe("NPopover",{getTriggerElement:_,handleKeydown:F,handleMouseEnter:x,handleMouseLeave:R,handleClickOutside:w,handleMouseMoveOutside:C,setBodyInstance:T,positionManuallyRef:u,isMountedRef:t,zIndexRef:we(e,"zIndex"),extraClassRef:we(e,"internalExtraClass"),internalRenderBodyRef:we(e,"internalRenderBody")}),en(()=>{i.value&&a()&&p(!1)}),{binderInstRef:n,positionManually:u,mergedShowConsideringDisabledProp:l,uncontrolledShow:r,mergedShowArrow:c,getMergedShow:s,setShow:M,handleClick:k,handleMouseEnter:x,handleMouseLeave:R,handleFocus:$,handleBlur:S,syncPosition:b}},render(){var e;const{positionManually:t,$slots:n}=this;let o,r=!1;if(!t&&(o=zx(n,"trigger"),o)){o=hn(o),o=o.type===Wi?h("span",[o]):o;const i={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur};if(!((e=o.type)===null||e===void 0)&&e.__popover__)r=!0,o.props||(o.props={internalSyncTargetWithParent:!0,internalInheritedEventHandlers:[]}),o.props.internalSyncTargetWithParent=!0,o.props.internalInheritedEventHandlers?o.props.internalInheritedEventHandlers=[i,...o.props.internalInheritedEventHandlers]:o.props.internalInheritedEventHandlers=[i];else{const{internalInheritedEventHandlers:l}=this,a=[i,...l],s={onBlur:d=>{a.forEach(c=>{c.onBlur(d)})},onFocus:d=>{a.forEach(c=>{c.onFocus(d)})},onClick:d=>{a.forEach(c=>{c.onClick(d)})},onMouseenter:d=>{a.forEach(c=>{c.onMouseenter(d)})},onMouseleave:d=>{a.forEach(c=>{c.onMouseleave(d)})}};nP(o,l?"nested":t?"manual":this.trigger,s)}}return h(Ed,{ref:"binderInstRef",syncTarget:!r,syncTargetWithParent:this.internalSyncTargetWithParent},{default:()=>{this.mergedShowConsideringDisabledProp;const i=this.getMergedShow();return[this.internalTrapFocus&&i?qn(h("div",{style:{position:"fixed",top:0,right:0,bottom:0,left:0}}),[[Bd,{enabled:i,zIndex:this.zIndex}]]):null,t?null:h(Md,null,{default:()=>o}),h(Qk,Eo(this.$props,eP,Object.assign(Object.assign({},this.$attrs),{showArrow:this.mergedShowArrow,show:i})),{default:()=>{var l,a;return(a=(l=this.$slots).default)===null||a===void 0?void 0:a.call(l)},header:()=>{var l,a;return(a=(l=this.$slots).header)===null||a===void 0?void 0:a.call(l)},footer:()=>{var l,a;return(a=(l=this.$slots).footer)===null||a===void 0?void 0:a.call(l)}})]}})}}),rP={closeIconSizeTiny:"12px",closeIconSizeSmall:"12px",closeIconSizeMedium:"14px",closeIconSizeLarge:"14px",closeSizeTiny:"16px",closeSizeSmall:"16px",closeSizeMedium:"18px",closeSizeLarge:"18px",padding:"0 7px",closeMargin:"0 0 0 4px"};function iP(e){const{textColor2:t,primaryColorHover:n,primaryColorPressed:o,primaryColor:r,infoColor:i,successColor:l,warningColor:a,errorColor:s,baseColor:d,borderColor:c,opacityDisabled:f,tagColor:v,closeIconColor:g,closeIconColorHover:u,closeIconColorPressed:p,borderRadiusSmall:b,fontSizeMini:m,fontSizeTiny:y,fontSizeSmall:$,fontSizeMedium:S,heightMini:x,heightTiny:R,heightSmall:C,heightMedium:w,closeColorHover:k,closeColorPressed:F,buttonColor2Hover:M,buttonColor2Pressed:_,fontWeightStrong:T}=e;return Object.assign(Object.assign({},rP),{closeBorderRadius:b,heightTiny:x,heightSmall:R,heightMedium:C,heightLarge:w,borderRadius:b,opacityDisabled:f,fontSizeTiny:m,fontSizeSmall:y,fontSizeMedium:$,fontSizeLarge:S,fontWeightStrong:T,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:d,colorCheckable:"#0000",colorHoverCheckable:M,colorPressedCheckable:_,colorChecked:r,colorCheckedHover:n,colorCheckedPressed:o,border:`1px solid ${c}`,textColor:t,color:v,colorBordered:"rgb(250, 250, 252)",closeIconColor:g,closeIconColorHover:u,closeIconColorPressed:p,closeColorHover:k,closeColorPressed:F,borderPrimary:`1px solid ${Ue(r,{alpha:.3})}`,textColorPrimary:r,colorPrimary:Ue(r,{alpha:.12}),colorBorderedPrimary:Ue(r,{alpha:.1}),closeIconColorPrimary:r,closeIconColorHoverPrimary:r,closeIconColorPressedPrimary:r,closeColorHoverPrimary:Ue(r,{alpha:.12}),closeColorPressedPrimary:Ue(r,{alpha:.18}),borderInfo:`1px solid ${Ue(i,{alpha:.3})}`,textColorInfo:i,colorInfo:Ue(i,{alpha:.12}),colorBorderedInfo:Ue(i,{alpha:.1}),closeIconColorInfo:i,closeIconColorHoverInfo:i,closeIconColorPressedInfo:i,closeColorHoverInfo:Ue(i,{alpha:.12}),closeColorPressedInfo:Ue(i,{alpha:.18}),borderSuccess:`1px solid ${Ue(l,{alpha:.3})}`,textColorSuccess:l,colorSuccess:Ue(l,{alpha:.12}),colorBorderedSuccess:Ue(l,{alpha:.1}),closeIconColorSuccess:l,closeIconColorHoverSuccess:l,closeIconColorPressedSuccess:l,closeColorHoverSuccess:Ue(l,{alpha:.12}),closeColorPressedSuccess:Ue(l,{alpha:.18}),borderWarning:`1px solid ${Ue(a,{alpha:.35})}`,textColorWarning:a,colorWarning:Ue(a,{alpha:.15}),colorBorderedWarning:Ue(a,{alpha:.12}),closeIconColorWarning:a,closeIconColorHoverWarning:a,closeIconColorPressedWarning:a,closeColorHoverWarning:Ue(a,{alpha:.12}),closeColorPressedWarning:Ue(a,{alpha:.18}),borderError:`1px solid ${Ue(s,{alpha:.23})}`,textColorError:s,colorError:Ue(s,{alpha:.1}),colorBorderedError:Ue(s,{alpha:.08}),closeIconColorError:s,closeIconColorHoverError:s,closeIconColorPressedError:s,closeColorHoverError:Ue(s,{alpha:.12}),closeColorPressedError:Ue(s,{alpha:.18})})}const lP={common:gt,self:iP},aP={color:Object,type:{type:String,default:"default"},round:Boolean,size:String,closable:Boolean,disabled:{type:Boolean,default:void 0}},sP=P("tag",` + --n-close-margin: var(--n-close-margin-top) var(--n-close-margin-right) var(--n-close-margin-bottom) var(--n-close-margin-left); + white-space: nowrap; + position: relative; + box-sizing: border-box; + cursor: default; + display: inline-flex; + align-items: center; + flex-wrap: nowrap; + padding: var(--n-padding); + border-radius: var(--n-border-radius); + color: var(--n-text-color); + background-color: var(--n-color); + transition: + border-color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + opacity .3s var(--n-bezier); + line-height: 1; + height: var(--n-height); + font-size: var(--n-font-size); +`,[H("strong",` + font-weight: var(--n-font-weight-strong); + `),j("border",` + pointer-events: none; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: inherit; + border: var(--n-border); + transition: border-color .3s var(--n-bezier); + `),j("icon",` + display: flex; + margin: 0 4px 0 0; + color: var(--n-text-color); + transition: color .3s var(--n-bezier); + font-size: var(--n-avatar-size-override); + `),j("avatar",` + display: flex; + margin: 0 6px 0 0; + `),j("close",` + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `),H("round",` + padding: 0 calc(var(--n-height) / 3); + border-radius: calc(var(--n-height) / 2); + `,[j("icon",` + margin: 0 4px 0 calc((var(--n-height) - 8px) / -2); + `),j("avatar",` + margin: 0 6px 0 calc((var(--n-height) - 8px) / -2); + `),H("closable",` + padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3); + `)]),H("icon, avatar",[H("round",` + padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2); + `)]),H("disabled",` + cursor: not-allowed !important; + opacity: var(--n-opacity-disabled); + `),H("checkable",` + cursor: pointer; + box-shadow: none; + color: var(--n-text-color-checkable); + background-color: var(--n-color-checkable); + `,[dt("disabled",[I("&:hover","background-color: var(--n-color-hover-checkable);",[dt("checked","color: var(--n-text-color-hover-checkable);")]),I("&:active","background-color: var(--n-color-pressed-checkable);",[dt("checked","color: var(--n-text-color-pressed-checkable);")])]),H("checked",` + color: var(--n-text-color-checked); + background-color: var(--n-color-checked); + `,[dt("disabled",[I("&:hover","background-color: var(--n-color-checked-hover);"),I("&:active","background-color: var(--n-color-checked-pressed);")])])])]),dP=Object.assign(Object.assign(Object.assign({},Be.props),aP),{bordered:{type:Boolean,default:void 0},checked:Boolean,checkable:Boolean,strong:Boolean,triggerClickOnClose:Boolean,onClose:[Array,Function],onMouseenter:Function,onMouseleave:Function,"onUpdate:checked":Function,onUpdateChecked:Function,internalCloseFocusable:{type:Boolean,default:!0},internalCloseIsButtonTag:{type:Boolean,default:!0},onCheckedChange:Function}),cP="n-tag",ki=pe({name:"Tag",props:dP,slots:Object,setup(e){const t=E(null),{mergedBorderedRef:n,mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:i,mergedComponentPropsRef:l}=Ye(e),a=O(()=>{var p,b;return e.size||((b=(p=l?.value)===null||p===void 0?void 0:p.Tag)===null||b===void 0?void 0:b.size)||"medium"}),s=Be("Tag","-tag",sP,lP,e,o);qe(cP,{roundRef:we(e,"round")});function d(){if(!e.disabled&&e.checkable){const{checked:p,onCheckedChange:b,onUpdateChecked:m,"onUpdate:checked":y}=e;m&&m(!p),y&&y(!p),b&&b(!p)}}function c(p){if(e.triggerClickOnClose||p.stopPropagation(),!e.disabled){const{onClose:b}=e;b&&me(b,p)}}const f={setTextContent(p){const{value:b}=t;b&&(b.textContent=p)}},v=Bt("Tag",i,o),g=O(()=>{const{type:p,color:{color:b,textColor:m}={}}=e,y=a.value,{common:{cubicBezierEaseInOut:$},self:{padding:S,closeMargin:x,borderRadius:R,opacityDisabled:C,textColorCheckable:w,textColorHoverCheckable:k,textColorPressedCheckable:F,textColorChecked:M,colorCheckable:_,colorHoverCheckable:T,colorPressedCheckable:B,colorChecked:D,colorCheckedHover:K,colorCheckedPressed:N,closeBorderRadius:V,fontWeightStrong:ie,[de("colorBordered",p)]:he,[de("closeSize",y)]:J,[de("closeIconSize",y)]:re,[de("fontSize",y)]:ye,[de("height",y)]:Z,[de("color",p)]:le,[de("textColor",p)]:$e,[de("border",p)]:ze,[de("closeIconColor",p)]:Ae,[de("closeIconColorHover",p)]:Te,[de("closeIconColorPressed",p)]:ne,[de("closeColorHover",p)]:Oe,[de("closeColorPressed",p)]:z}}=s.value,L=Ft(x);return{"--n-font-weight-strong":ie,"--n-avatar-size-override":`calc(${Z} - 8px)`,"--n-bezier":$,"--n-border-radius":R,"--n-border":ze,"--n-close-icon-size":re,"--n-close-color-pressed":z,"--n-close-color-hover":Oe,"--n-close-border-radius":V,"--n-close-icon-color":Ae,"--n-close-icon-color-hover":Te,"--n-close-icon-color-pressed":ne,"--n-close-icon-color-disabled":Ae,"--n-close-margin-top":L.top,"--n-close-margin-right":L.right,"--n-close-margin-bottom":L.bottom,"--n-close-margin-left":L.left,"--n-close-size":J,"--n-color":b||(n.value?he:le),"--n-color-checkable":_,"--n-color-checked":D,"--n-color-checked-hover":K,"--n-color-checked-pressed":N,"--n-color-hover-checkable":T,"--n-color-pressed-checkable":B,"--n-font-size":ye,"--n-height":Z,"--n-opacity-disabled":C,"--n-padding":S,"--n-text-color":m||$e,"--n-text-color-checkable":w,"--n-text-color-checked":M,"--n-text-color-hover-checkable":k,"--n-text-color-pressed-checkable":F}}),u=r?vt("tag",O(()=>{let p="";const{type:b,color:{color:m,textColor:y}={}}=e;return p+=b[0],p+=a.value[0],m&&(p+=`a${Al(m)}`),y&&(p+=`b${Al(y)}`),n.value&&(p+="c"),p}),g,e):void 0;return Object.assign(Object.assign({},f),{rtlEnabled:v,mergedClsPrefix:o,contentRef:t,mergedBordered:n,handleClick:d,handleCloseClick:c,cssVars:r?void 0:g,themeClass:u?.themeClass,onRender:u?.onRender})},render(){var e,t;const{mergedClsPrefix:n,rtlEnabled:o,closable:r,color:{borderColor:i}={},round:l,onRender:a,$slots:s}=this;a?.();const d=lt(s.avatar,f=>f&&h("div",{class:`${n}-tag__avatar`},f)),c=lt(s.icon,f=>f&&h("div",{class:`${n}-tag__icon`},f));return h("div",{class:[`${n}-tag`,this.themeClass,{[`${n}-tag--rtl`]:o,[`${n}-tag--strong`]:this.strong,[`${n}-tag--disabled`]:this.disabled,[`${n}-tag--checkable`]:this.checkable,[`${n}-tag--checked`]:this.checkable&&this.checked,[`${n}-tag--round`]:l,[`${n}-tag--avatar`]:d,[`${n}-tag--icon`]:c,[`${n}-tag--closable`]:r}],style:this.cssVars,onClick:this.handleClick,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},c||d,h("span",{class:`${n}-tag__content`,ref:"contentRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)),!this.checkable&&r?h(Kr,{clsPrefix:n,class:`${n}-tag__close`,disabled:this.disabled,onClick:this.handleCloseClick,focusable:this.internalCloseFocusable,round:l,isButtonTag:this.internalCloseIsButtonTag,absolute:!0}):null,!this.checkable&&this.mergedBordered?h("div",{class:`${n}-tag__border`,style:{borderColor:i}}):null)}}),Av=pe({name:"InternalSelectionSuffix",props:{clsPrefix:{type:String,required:!0},showArrow:{type:Boolean,default:void 0},showClear:{type:Boolean,default:void 0},loading:{type:Boolean,default:!1},onClear:Function},setup(e,{slots:t}){return()=>{const{clsPrefix:n}=e;return h(gr,{clsPrefix:n,class:`${n}-base-suffix`,strokeWidth:24,scale:.85,show:e.loading},{default:()=>e.showArrow?h(Qs,{clsPrefix:n,show:e.showClear,onClear:e.onClear},{placeholder:()=>h(kt,{clsPrefix:n,class:`${n}-base-suffix__arrow`},{default:()=>$n(t.default,()=>[h(kv,null)])})}):null})}}}),uP={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};function fP(e){const{borderRadius:t,textColor2:n,textColorDisabled:o,inputColor:r,inputColorDisabled:i,primaryColor:l,primaryColorHover:a,warningColor:s,warningColorHover:d,errorColor:c,errorColorHover:f,borderColor:v,iconColor:g,iconColorDisabled:u,clearColor:p,clearColorHover:b,clearColorPressed:m,placeholderColor:y,placeholderColorDisabled:$,fontSizeTiny:S,fontSizeSmall:x,fontSizeMedium:R,fontSizeLarge:C,heightTiny:w,heightSmall:k,heightMedium:F,heightLarge:M,fontWeight:_}=e;return Object.assign(Object.assign({},uP),{fontSizeTiny:S,fontSizeSmall:x,fontSizeMedium:R,fontSizeLarge:C,heightTiny:w,heightSmall:k,heightMedium:F,heightLarge:M,borderRadius:t,fontWeight:_,textColor:n,textColorDisabled:o,placeholderColor:y,placeholderColorDisabled:$,color:r,colorDisabled:i,colorActive:r,border:`1px solid ${v}`,borderHover:`1px solid ${a}`,borderActive:`1px solid ${l}`,borderFocus:`1px solid ${a}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${Ue(l,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${Ue(l,{alpha:.2})}`,caretColor:l,arrowColor:g,arrowColorDisabled:u,loadingColor:l,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${d}`,borderActiveWarning:`1px solid ${s}`,borderFocusWarning:`1px solid ${d}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${Ue(s,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${Ue(s,{alpha:.2})}`,colorActiveWarning:r,caretColorWarning:s,borderError:`1px solid ${c}`,borderHoverError:`1px solid ${f}`,borderActiveError:`1px solid ${c}`,borderFocusError:`1px solid ${f}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${Ue(c,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${Ue(c,{alpha:.2})}`,colorActiveError:r,caretColorError:c,clearColor:p,clearColorHover:b,clearColorPressed:m})}const Iv={name:"InternalSelection",common:gt,peers:{Popover:Ur},self:fP},hP=I([P("base-selection",` + --n-padding-single: var(--n-padding-single-top) var(--n-padding-single-right) var(--n-padding-single-bottom) var(--n-padding-single-left); + --n-padding-multiple: var(--n-padding-multiple-top) var(--n-padding-multiple-right) var(--n-padding-multiple-bottom) var(--n-padding-multiple-left); + position: relative; + z-index: auto; + box-shadow: none; + width: 100%; + max-width: 100%; + display: inline-block; + vertical-align: bottom; + border-radius: var(--n-border-radius); + min-height: var(--n-height); + line-height: 1.5; + font-size: var(--n-font-size); + `,[P("base-loading",` + color: var(--n-loading-color); + `),P("base-selection-tags","min-height: var(--n-height);"),j("border, state-border",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + pointer-events: none; + border: var(--n-border); + border-radius: inherit; + transition: + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `),j("state-border",` + z-index: 1; + border-color: #0000; + `),P("base-suffix",` + cursor: pointer; + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 10px; + `,[j("arrow",` + font-size: var(--n-arrow-size); + color: var(--n-arrow-color); + transition: color .3s var(--n-bezier); + `)]),P("base-selection-overlay",` + display: flex; + align-items: center; + white-space: nowrap; + pointer-events: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--n-padding-single); + transition: color .3s var(--n-bezier); + `,[j("wrapper",` + flex-basis: 0; + flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; + `)]),P("base-selection-placeholder",` + color: var(--n-placeholder-color); + `,[j("inner",` + max-width: 100%; + overflow: hidden; + `)]),P("base-selection-tags",` + cursor: pointer; + outline: none; + box-sizing: border-box; + position: relative; + z-index: auto; + display: flex; + padding: var(--n-padding-multiple); + flex-wrap: wrap; + align-items: center; + width: 100%; + vertical-align: bottom; + background-color: var(--n-color); + border-radius: inherit; + transition: + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier); + `),P("base-selection-label",` + height: var(--n-height); + display: inline-flex; + width: 100%; + vertical-align: bottom; + cursor: pointer; + outline: none; + z-index: auto; + box-sizing: border-box; + position: relative; + transition: + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier); + border-radius: inherit; + background-color: var(--n-color); + align-items: center; + `,[P("base-selection-input",` + font-size: inherit; + line-height: inherit; + outline: none; + cursor: pointer; + box-sizing: border-box; + border:none; + width: 100%; + padding: var(--n-padding-single); + background-color: #0000; + color: var(--n-text-color); + transition: color .3s var(--n-bezier); + caret-color: var(--n-caret-color); + `,[j("content",` + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + `)]),j("render-label",` + color: var(--n-text-color); + `)]),dt("disabled",[I("&:hover",[j("state-border",` + box-shadow: var(--n-box-shadow-hover); + border: var(--n-border-hover); + `)]),H("focus",[j("state-border",` + box-shadow: var(--n-box-shadow-focus); + border: var(--n-border-focus); + `)]),H("active",[j("state-border",` + box-shadow: var(--n-box-shadow-active); + border: var(--n-border-active); + `),P("base-selection-label","background-color: var(--n-color-active);"),P("base-selection-tags","background-color: var(--n-color-active);")])]),H("disabled","cursor: not-allowed;",[j("arrow",` + color: var(--n-arrow-color-disabled); + `),P("base-selection-label",` + cursor: not-allowed; + background-color: var(--n-color-disabled); + `,[P("base-selection-input",` + cursor: not-allowed; + color: var(--n-text-color-disabled); + `),j("render-label",` + color: var(--n-text-color-disabled); + `)]),P("base-selection-tags",` + cursor: not-allowed; + background-color: var(--n-color-disabled); + `),P("base-selection-placeholder",` + cursor: not-allowed; + color: var(--n-placeholder-color-disabled); + `)]),P("base-selection-input-tag",` + height: calc(var(--n-height) - 6px); + line-height: calc(var(--n-height) - 6px); + outline: none; + display: none; + position: relative; + margin-bottom: 3px; + max-width: 100%; + vertical-align: bottom; + `,[j("input",` + font-size: inherit; + font-family: inherit; + min-width: 1px; + padding: 0; + background-color: #0000; + outline: none; + border: none; + max-width: 100%; + overflow: hidden; + width: 1em; + line-height: inherit; + cursor: pointer; + color: var(--n-text-color); + caret-color: var(--n-caret-color); + `),j("mirror",` + position: absolute; + left: 0; + top: 0; + white-space: pre; + visibility: hidden; + user-select: none; + -webkit-user-select: none; + opacity: 0; + `)]),["warning","error"].map(e=>H(`${e}-status`,[j("state-border",`border: var(--n-border-${e});`),dt("disabled",[I("&:hover",[j("state-border",` + box-shadow: var(--n-box-shadow-hover-${e}); + border: var(--n-border-hover-${e}); + `)]),H("active",[j("state-border",` + box-shadow: var(--n-box-shadow-active-${e}); + border: var(--n-border-active-${e}); + `),P("base-selection-label",`background-color: var(--n-color-active-${e});`),P("base-selection-tags",`background-color: var(--n-color-active-${e});`)]),H("focus",[j("state-border",` + box-shadow: var(--n-box-shadow-focus-${e}); + border: var(--n-border-focus-${e}); + `)])])]))]),P("base-selection-popover",` + margin-bottom: -3px; + display: flex; + flex-wrap: wrap; + margin-right: -8px; + `),P("base-selection-tag-wrapper",` + max-width: 100%; + display: inline-flex; + padding: 0 7px 3px 0; + `,[I("&:last-child","padding-right: 0;"),P("tag",` + font-size: 14px; + max-width: 100%; + `,[j("content",` + line-height: 1.25; + text-overflow: ellipsis; + overflow: hidden; + `)])])]),pP=pe({name:"InternalSelection",props:Object.assign(Object.assign({},Be.props),{clsPrefix:{type:String,required:!0},bordered:{type:Boolean,default:void 0},active:Boolean,pattern:{type:String,default:""},placeholder:String,selectedOption:{type:Object,default:null},selectedOptions:{type:Array,default:null},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},multiple:Boolean,filterable:Boolean,clearable:Boolean,disabled:Boolean,size:{type:String,default:"medium"},loading:Boolean,autofocus:Boolean,showArrow:{type:Boolean,default:!0},inputProps:Object,focused:Boolean,renderTag:Function,onKeydown:Function,onClick:Function,onBlur:Function,onFocus:Function,onDeleteOption:Function,maxTagCount:[String,Number],ellipsisTagPopoverProps:Object,onClear:Function,onPatternInput:Function,onPatternFocus:Function,onPatternBlur:Function,renderLabel:Function,status:String,inlineThemeDisabled:Boolean,ignoreComposition:{type:Boolean,default:!0},onResize:Function}),setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n}=Ye(e),o=Bt("InternalSelection",n,t),r=E(null),i=E(null),l=E(null),a=E(null),s=E(null),d=E(null),c=E(null),f=E(null),v=E(null),g=E(null),u=E(!1),p=E(!1),b=E(!1),m=Be("InternalSelection","-internal-selection",hP,Iv,e,we(e,"clsPrefix")),y=O(()=>e.clearable&&!e.disabled&&(b.value||e.active)),$=O(()=>e.selectedOption?e.renderTag?e.renderTag({option:e.selectedOption,handleClose:()=>{}}):e.renderLabel?e.renderLabel(e.selectedOption,!0):wt(e.selectedOption[e.labelField],e.selectedOption,!0):e.placeholder),S=O(()=>{const W=e.selectedOption;if(W)return W[e.labelField]}),x=O(()=>e.multiple?!!(Array.isArray(e.selectedOptions)&&e.selectedOptions.length):e.selectedOption!==null);function R(){var W;const{value:Y}=r;if(Y){const{value:Se}=i;Se&&(Se.style.width=`${Y.offsetWidth}px`,e.maxTagCount!=="responsive"&&((W=v.value)===null||W===void 0||W.sync({showAllItemsBeforeCalculate:!1})))}}function C(){const{value:W}=g;W&&(W.style.display="none")}function w(){const{value:W}=g;W&&(W.style.display="inline-block")}tt(we(e,"active"),W=>{W||C()}),tt(we(e,"pattern"),()=>{e.multiple&&Rt(R)});function k(W){const{onFocus:Y}=e;Y&&Y(W)}function F(W){const{onBlur:Y}=e;Y&&Y(W)}function M(W){const{onDeleteOption:Y}=e;Y&&Y(W)}function _(W){const{onClear:Y}=e;Y&&Y(W)}function T(W){const{onPatternInput:Y}=e;Y&&Y(W)}function B(W){var Y;(!W.relatedTarget||!(!((Y=l.value)===null||Y===void 0)&&Y.contains(W.relatedTarget)))&&k(W)}function D(W){var Y;!((Y=l.value)===null||Y===void 0)&&Y.contains(W.relatedTarget)||F(W)}function K(W){_(W)}function N(){b.value=!0}function V(){b.value=!1}function ie(W){!e.active||!e.filterable||W.target!==i.value&&W.preventDefault()}function he(W){M(W)}const J=E(!1);function re(W){if(W.key==="Backspace"&&!J.value&&!e.pattern.length){const{selectedOptions:Y}=e;Y?.length&&he(Y[Y.length-1])}}let ye=null;function Z(W){const{value:Y}=r;if(Y){const Se=W.target.value;Y.textContent=Se,R()}e.ignoreComposition&&J.value?ye=W:T(W)}function le(){J.value=!0}function $e(){J.value=!1,e.ignoreComposition&&T(ye),ye=null}function ze(W){var Y;p.value=!0,(Y=e.onPatternFocus)===null||Y===void 0||Y.call(e,W)}function Ae(W){var Y;p.value=!1,(Y=e.onPatternBlur)===null||Y===void 0||Y.call(e,W)}function Te(){var W,Y;if(e.filterable)p.value=!1,(W=d.value)===null||W===void 0||W.blur(),(Y=i.value)===null||Y===void 0||Y.blur();else if(e.multiple){const{value:Se}=a;Se?.blur()}else{const{value:Se}=s;Se?.blur()}}function ne(){var W,Y,Se;e.filterable?(p.value=!1,(W=d.value)===null||W===void 0||W.focus()):e.multiple?(Y=a.value)===null||Y===void 0||Y.focus():(Se=s.value)===null||Se===void 0||Se.focus()}function Oe(){const{value:W}=i;W&&(w(),W.focus())}function z(){const{value:W}=i;W&&W.blur()}function L(W){const{value:Y}=c;Y&&Y.setTextContent(`+${W}`)}function ee(){const{value:W}=f;return W}function se(){return i.value}let ae=null;function Q(){ae!==null&&window.clearTimeout(ae)}function ue(){e.active||(Q(),ae=window.setTimeout(()=>{x.value&&(u.value=!0)},100))}function ve(){Q()}function fe(W){W||(Q(),u.value=!1)}tt(x,W=>{W||(u.value=!1)}),Ct(()=>{en(()=>{const W=d.value;W&&(e.disabled?W.removeAttribute("tabindex"):W.tabIndex=p.value?-1:0)})}),Up(l,e.onResize);const{inlineThemeDisabled:oe}=e,q=O(()=>{const{size:W}=e,{common:{cubicBezierEaseInOut:Y},self:{fontWeight:Se,borderRadius:Le,color:Ie,placeholderColor:De,textColor:Ge,paddingSingle:Xe,paddingMultiple:at,caretColor:mt,colorDisabled:ft,textColorDisabled:Re,placeholderColorDisabled:te,colorActive:A,boxShadowFocus:X,boxShadowActive:be,boxShadowHover:_e,border:xe,borderFocus:ke,borderHover:Ce,borderActive:Fe,arrowColor:Ze,arrowColorDisabled:Lt,loadingColor:Et,colorActiveWarning:Dt,boxShadowFocusWarning:zt,boxShadowActiveWarning:Ht,boxShadowHoverWarning:on,borderWarning:Nt,borderFocusWarning:Xt,borderHoverWarning:Mt,borderActiveWarning:U,colorActiveError:ce,boxShadowFocusError:Me,boxShadowActiveError:je,boxShadowHoverError:Ve,borderError:Je,borderFocusError:rn,borderHoverError:ln,borderActiveError:Cn,clearColor:eo,clearColorHover:to,clearColorPressed:Wo,clearSize:qr,arrowSize:Xr,[de("height",W)]:Yr,[de("fontSize",W)]:Zr}}=m.value,mo=Ft(Xe),yo=Ft(at);return{"--n-bezier":Y,"--n-border":xe,"--n-border-active":Fe,"--n-border-focus":ke,"--n-border-hover":Ce,"--n-border-radius":Le,"--n-box-shadow-active":be,"--n-box-shadow-focus":X,"--n-box-shadow-hover":_e,"--n-caret-color":mt,"--n-color":Ie,"--n-color-active":A,"--n-color-disabled":ft,"--n-font-size":Zr,"--n-height":Yr,"--n-padding-single-top":mo.top,"--n-padding-multiple-top":yo.top,"--n-padding-single-right":mo.right,"--n-padding-multiple-right":yo.right,"--n-padding-single-left":mo.left,"--n-padding-multiple-left":yo.left,"--n-padding-single-bottom":mo.bottom,"--n-padding-multiple-bottom":yo.bottom,"--n-placeholder-color":De,"--n-placeholder-color-disabled":te,"--n-text-color":Ge,"--n-text-color-disabled":Re,"--n-arrow-color":Ze,"--n-arrow-color-disabled":Lt,"--n-loading-color":Et,"--n-color-active-warning":Dt,"--n-box-shadow-focus-warning":zt,"--n-box-shadow-active-warning":Ht,"--n-box-shadow-hover-warning":on,"--n-border-warning":Nt,"--n-border-focus-warning":Xt,"--n-border-hover-warning":Mt,"--n-border-active-warning":U,"--n-color-active-error":ce,"--n-box-shadow-focus-error":Me,"--n-box-shadow-active-error":je,"--n-box-shadow-hover-error":Ve,"--n-border-error":Je,"--n-border-focus-error":rn,"--n-border-hover-error":ln,"--n-border-active-error":Cn,"--n-clear-size":qr,"--n-clear-color":eo,"--n-clear-color-hover":to,"--n-clear-color-pressed":Wo,"--n-arrow-size":Xr,"--n-font-weight":Se}}),G=oe?vt("internal-selection",O(()=>e.size[0]),q,e):void 0;return{mergedTheme:m,mergedClearable:y,mergedClsPrefix:t,rtlEnabled:o,patternInputFocused:p,filterablePlaceholder:$,label:S,selected:x,showTagsPanel:u,isComposing:J,counterRef:c,counterWrapperRef:f,patternInputMirrorRef:r,patternInputRef:i,selfRef:l,multipleElRef:a,singleElRef:s,patternInputWrapperRef:d,overflowRef:v,inputTagElRef:g,handleMouseDown:ie,handleFocusin:B,handleClear:K,handleMouseEnter:N,handleMouseLeave:V,handleDeleteOption:he,handlePatternKeyDown:re,handlePatternInputInput:Z,handlePatternInputBlur:Ae,handlePatternInputFocus:ze,handleMouseEnterCounter:ue,handleMouseLeaveCounter:ve,handleFocusout:D,handleCompositionEnd:$e,handleCompositionStart:le,onPopoverUpdateShow:fe,focus:ne,focusInput:Oe,blur:Te,blurInput:z,updateCounter:L,getCounter:ee,getTail:se,renderLabel:e.renderLabel,cssVars:oe?void 0:q,themeClass:G?.themeClass,onRender:G?.onRender}},render(){const{status:e,multiple:t,size:n,disabled:o,filterable:r,maxTagCount:i,bordered:l,clsPrefix:a,ellipsisTagPopoverProps:s,onRender:d,renderTag:c,renderLabel:f}=this;d?.();const v=i==="responsive",g=typeof i=="number",u=v||g,p=h(Ws,null,{default:()=>h(Av,{clsPrefix:a,loading:this.loading,showArrow:this.showArrow,showClear:this.mergedClearable&&this.selected,onClear:this.handleClear},{default:()=>{var m,y;return(y=(m=this.$slots).arrow)===null||y===void 0?void 0:y.call(m)}})});let b;if(t){const{labelField:m}=this,y=T=>h("div",{class:`${a}-base-selection-tag-wrapper`,key:T.value},c?c({option:T,handleClose:()=>{this.handleDeleteOption(T)}}):h(ki,{size:n,closable:!T.disabled,disabled:o,onClose:()=>{this.handleDeleteOption(T)},internalCloseIsButtonTag:!1,internalCloseFocusable:!1},{default:()=>f?f(T,!0):wt(T[m],T,!0)})),$=()=>(g?this.selectedOptions.slice(0,i):this.selectedOptions).map(y),S=r?h("div",{class:`${a}-base-selection-input-tag`,ref:"inputTagElRef",key:"__input-tag__"},h("input",Object.assign({},this.inputProps,{ref:"patternInputRef",tabindex:-1,disabled:o,value:this.pattern,autofocus:this.autofocus,class:`${a}-base-selection-input-tag__input`,onBlur:this.handlePatternInputBlur,onFocus:this.handlePatternInputFocus,onKeydown:this.handlePatternKeyDown,onInput:this.handlePatternInputInput,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd})),h("span",{ref:"patternInputMirrorRef",class:`${a}-base-selection-input-tag__mirror`},this.pattern)):null,x=v?()=>h("div",{class:`${a}-base-selection-tag-wrapper`,ref:"counterWrapperRef"},h(ki,{size:n,ref:"counterRef",onMouseenter:this.handleMouseEnterCounter,onMouseleave:this.handleMouseLeaveCounter,disabled:o})):void 0;let R;if(g){const T=this.selectedOptions.length-i;T>0&&(R=h("div",{class:`${a}-base-selection-tag-wrapper`,key:"__counter__"},h(ki,{size:n,ref:"counterRef",onMouseenter:this.handleMouseEnterCounter,disabled:o},{default:()=>`+${T}`})))}const C=v?r?h(Eu,{ref:"overflowRef",updateCounter:this.updateCounter,getCounter:this.getCounter,getTail:this.getTail,style:{width:"100%",display:"flex",overflow:"hidden"}},{default:$,counter:x,tail:()=>S}):h(Eu,{ref:"overflowRef",updateCounter:this.updateCounter,getCounter:this.getCounter,style:{width:"100%",display:"flex",overflow:"hidden"}},{default:$,counter:x}):g&&R?$().concat(R):$(),w=u?()=>h("div",{class:`${a}-base-selection-popover`},v?$():this.selectedOptions.map(y)):void 0,k=u?Object.assign({show:this.showTagsPanel,trigger:"hover",overlap:!0,placement:"top",width:"trigger",onUpdateShow:this.onPopoverUpdateShow,theme:this.mergedTheme.peers.Popover,themeOverrides:this.mergedTheme.peerOverrides.Popover},s):null,M=(this.selected?!1:this.active?!this.pattern&&!this.isComposing:!0)?h("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`},h("div",{class:`${a}-base-selection-placeholder__inner`},this.placeholder)):null,_=r?h("div",{ref:"patternInputWrapperRef",class:`${a}-base-selection-tags`},C,v?null:S,p):h("div",{ref:"multipleElRef",class:`${a}-base-selection-tags`,tabindex:o?void 0:0},C,p);b=h(nt,null,u?h(Zi,Object.assign({},k,{scrollable:!0,style:"max-height: calc(var(--v-target-height) * 6.6);"}),{trigger:()=>_,default:w}):_,M)}else if(r){const m=this.pattern||this.isComposing,y=this.active?!m:!this.selected,$=this.active?!1:this.selected;b=h("div",{ref:"patternInputWrapperRef",class:`${a}-base-selection-label`,title:this.patternInputFocused?void 0:Au(this.label)},h("input",Object.assign({},this.inputProps,{ref:"patternInputRef",class:`${a}-base-selection-input`,value:this.active?this.pattern:"",placeholder:"",readonly:o,disabled:o,tabindex:-1,autofocus:this.autofocus,onFocus:this.handlePatternInputFocus,onBlur:this.handlePatternInputBlur,onInput:this.handlePatternInputInput,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd})),$?h("div",{class:`${a}-base-selection-label__render-label ${a}-base-selection-overlay`,key:"input"},h("div",{class:`${a}-base-selection-overlay__wrapper`},c?c({option:this.selectedOption,handleClose:()=>{}}):f?f(this.selectedOption,!0):wt(this.label,this.selectedOption,!0))):null,y?h("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`,key:"placeholder"},h("div",{class:`${a}-base-selection-overlay__wrapper`},this.filterablePlaceholder)):null,p)}else b=h("div",{ref:"singleElRef",class:`${a}-base-selection-label`,tabindex:this.disabled?void 0:0},this.label!==void 0?h("div",{class:`${a}-base-selection-input`,title:Au(this.label),key:"input"},h("div",{class:`${a}-base-selection-input__content`},c?c({option:this.selectedOption,handleClose:()=>{}}):f?f(this.selectedOption,!0):wt(this.label,this.selectedOption,!0))):h("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`,key:"placeholder"},h("div",{class:`${a}-base-selection-placeholder__inner`},this.placeholder)),p);return h("div",{ref:"selfRef",class:[`${a}-base-selection`,this.rtlEnabled&&`${a}-base-selection--rtl`,this.themeClass,e&&`${a}-base-selection--${e}-status`,{[`${a}-base-selection--active`]:this.active,[`${a}-base-selection--selected`]:this.selected||this.active&&this.pattern,[`${a}-base-selection--disabled`]:this.disabled,[`${a}-base-selection--multiple`]:this.multiple,[`${a}-base-selection--focus`]:this.focused}],style:this.cssVars,onClick:this.onClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onKeydown:this.onKeydown,onFocusin:this.handleFocusin,onFocusout:this.handleFocusout,onMousedown:this.handleMouseDown},b,l?h("div",{class:`${a}-base-selection__border`}):null,l?h("div",{class:`${a}-base-selection__state-border`}):null)}}),{cubicBezierEaseInOut:Co}=hr;function vP({duration:e=".2s",delay:t=".1s"}={}){return[I("&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to",{opacity:1}),I("&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from",` + opacity: 0!important; + margin-left: 0!important; + margin-right: 0!important; + `),I("&.fade-in-width-expand-transition-leave-active",` + overflow: hidden; + transition: + opacity ${e} ${Co}, + max-width ${e} ${Co} ${t}, + margin-left ${e} ${Co} ${t}, + margin-right ${e} ${Co} ${t}; + `),I("&.fade-in-width-expand-transition-enter-active",` + overflow: hidden; + transition: + opacity ${e} ${Co} ${t}, + max-width ${e} ${Co}, + margin-left ${e} ${Co}, + margin-right ${e} ${Co}; + `)]}const gP=P("base-wave",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: inherit; +`),bP=pe({name:"BaseWave",props:{clsPrefix:{type:String,required:!0}},setup(e){pr("-base-wave",gP,we(e,"clsPrefix"));const t=E(null),n=E(!1);let o=null;return xt(()=>{o!==null&&window.clearTimeout(o)}),{active:n,selfRef:t,play(){o!==null&&(window.clearTimeout(o),n.value=!1,o=null),Rt(()=>{var r;(r=t.value)===null||r===void 0||r.offsetHeight,n.value=!0,o=window.setTimeout(()=>{n.value=!1,o=null},1e3)})}}},render(){const{clsPrefix:e}=this;return h("div",{ref:"selfRef","aria-hidden":!0,class:[`${e}-base-wave`,this.active&&`${e}-base-wave--active`]})}}),{cubicBezierEaseInOut:An,cubicBezierEaseOut:mP,cubicBezierEaseIn:yP}=hr;function xP({overflow:e="hidden",duration:t=".3s",originalTransition:n="",leavingDelay:o="0s",foldPadding:r=!1,enterToProps:i=void 0,leaveToProps:l=void 0,reverse:a=!1}={}){const s=a?"leave":"enter",d=a?"enter":"leave";return[I(`&.fade-in-height-expand-transition-${d}-from, + &.fade-in-height-expand-transition-${s}-to`,Object.assign(Object.assign({},i),{opacity:1})),I(`&.fade-in-height-expand-transition-${d}-to, + &.fade-in-height-expand-transition-${s}-from`,Object.assign(Object.assign({},l),{opacity:0,marginTop:"0 !important",marginBottom:"0 !important",paddingTop:r?"0 !important":void 0,paddingBottom:r?"0 !important":void 0})),I(`&.fade-in-height-expand-transition-${d}-active`,` + overflow: ${e}; + transition: + max-height ${t} ${An} ${o}, + opacity ${t} ${mP} ${o}, + margin-top ${t} ${An} ${o}, + margin-bottom ${t} ${An} ${o}, + padding-top ${t} ${An} ${o}, + padding-bottom ${t} ${An} ${o} + ${n?`,${n}`:""} + `),I(`&.fade-in-height-expand-transition-${s}-active`,` + overflow: ${e}; + transition: + max-height ${t} ${An}, + opacity ${t} ${yP}, + margin-top ${t} ${An}, + margin-bottom ${t} ${An}, + padding-top ${t} ${An}, + padding-bottom ${t} ${An} + ${n?`,${n}`:""} + `)]}const wP=Do&&"chrome"in window;Do&&navigator.userAgent.includes("Firefox");const Lv=Do&&navigator.userAgent.includes("Safari")&&!wP,CP={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};function SP(e){const{textColor2:t,textColor3:n,textColorDisabled:o,primaryColor:r,primaryColorHover:i,inputColor:l,inputColorDisabled:a,borderColor:s,warningColor:d,warningColorHover:c,errorColor:f,errorColorHover:v,borderRadius:g,lineHeight:u,fontSizeTiny:p,fontSizeSmall:b,fontSizeMedium:m,fontSizeLarge:y,heightTiny:$,heightSmall:S,heightMedium:x,heightLarge:R,actionColor:C,clearColor:w,clearColorHover:k,clearColorPressed:F,placeholderColor:M,placeholderColorDisabled:_,iconColor:T,iconColorDisabled:B,iconColorHover:D,iconColorPressed:K,fontWeight:N}=e;return Object.assign(Object.assign({},CP),{fontWeight:N,countTextColorDisabled:o,countTextColor:n,heightTiny:$,heightSmall:S,heightMedium:x,heightLarge:R,fontSizeTiny:p,fontSizeSmall:b,fontSizeMedium:m,fontSizeLarge:y,lineHeight:u,lineHeightTextarea:u,borderRadius:g,iconSize:"16px",groupLabelColor:C,groupLabelTextColor:t,textColor:t,textColorDisabled:o,textDecorationColor:t,caretColor:r,placeholderColor:M,placeholderColorDisabled:_,color:l,colorDisabled:a,colorFocus:l,groupLabelBorder:`1px solid ${s}`,border:`1px solid ${s}`,borderHover:`1px solid ${i}`,borderDisabled:`1px solid ${s}`,borderFocus:`1px solid ${i}`,boxShadowFocus:`0 0 0 2px ${Ue(r,{alpha:.2})}`,loadingColor:r,loadingColorWarning:d,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${c}`,colorFocusWarning:l,borderFocusWarning:`1px solid ${c}`,boxShadowFocusWarning:`0 0 0 2px ${Ue(d,{alpha:.2})}`,caretColorWarning:d,loadingColorError:f,borderError:`1px solid ${f}`,borderHoverError:`1px solid ${v}`,colorFocusError:l,borderFocusError:`1px solid ${v}`,boxShadowFocusError:`0 0 0 2px ${Ue(f,{alpha:.2})}`,caretColorError:f,clearColor:w,clearColorHover:k,clearColorPressed:F,iconColor:T,iconColorDisabled:B,iconColorHover:D,iconColorPressed:K,suffixTextColor:t})}const Dv={name:"Input",common:gt,peers:{Scrollbar:jo},self:SP},Hv="n-input",RP=P("input",` + max-width: 100%; + cursor: text; + line-height: 1.5; + z-index: auto; + outline: none; + box-sizing: border-box; + position: relative; + display: inline-flex; + border-radius: var(--n-border-radius); + background-color: var(--n-color); + transition: background-color .3s var(--n-bezier); + font-size: var(--n-font-size); + font-weight: var(--n-font-weight); + --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2); +`,[j("input, textarea",` + overflow: hidden; + flex-grow: 1; + position: relative; + `),j("input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder",` + box-sizing: border-box; + font-size: inherit; + line-height: 1.5; + font-family: inherit; + border: none; + outline: none; + background-color: #0000; + text-align: inherit; + transition: + -webkit-text-fill-color .3s var(--n-bezier), + caret-color .3s var(--n-bezier), + color .3s var(--n-bezier), + text-decoration-color .3s var(--n-bezier); + `),j("input-el, textarea-el",` + -webkit-appearance: none; + scrollbar-width: none; + width: 100%; + min-width: 0; + text-decoration-color: var(--n-text-decoration-color); + color: var(--n-text-color); + caret-color: var(--n-caret-color); + background-color: transparent; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + width: 0; + height: 0; + display: none; + `),I("&::placeholder",` + color: #0000; + -webkit-text-fill-color: transparent !important; + `),I("&:-webkit-autofill ~",[j("placeholder","display: none;")])]),H("round",[dt("textarea","border-radius: calc(var(--n-height) / 2);")]),j("placeholder",` + pointer-events: none; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: hidden; + color: var(--n-placeholder-color); + `,[I("span",` + width: 100%; + display: inline-block; + `)]),H("textarea",[j("placeholder","overflow: visible;")]),dt("autosize","width: 100%;"),H("autosize",[j("textarea-el, input-el",` + position: absolute; + top: 0; + left: 0; + height: 100%; + `)]),P("input-wrapper",` + overflow: hidden; + display: inline-flex; + flex-grow: 1; + position: relative; + padding-left: var(--n-padding-left); + padding-right: var(--n-padding-right); + `),j("input-mirror",` + padding: 0; + height: var(--n-height); + line-height: var(--n-height); + overflow: hidden; + visibility: hidden; + position: static; + white-space: pre; + pointer-events: none; + `),j("input-el",` + padding: 0; + height: var(--n-height); + line-height: var(--n-height); + `,[I("&[type=password]::-ms-reveal","display: none;"),I("+",[j("placeholder",` + display: flex; + align-items: center; + `)])]),dt("textarea",[j("placeholder","white-space: nowrap;")]),j("eye",` + display: flex; + align-items: center; + justify-content: center; + transition: color .3s var(--n-bezier); + `),H("textarea","width: 100%;",[P("input-word-count",` + position: absolute; + right: var(--n-padding-right); + bottom: var(--n-padding-vertical); + `),H("resizable",[P("input-wrapper",` + resize: vertical; + min-height: var(--n-height); + `)]),j("textarea-el, textarea-mirror, placeholder",` + height: 100%; + padding-left: 0; + padding-right: 0; + padding-top: var(--n-padding-vertical); + padding-bottom: var(--n-padding-vertical); + word-break: break-word; + display: inline-block; + vertical-align: bottom; + box-sizing: border-box; + line-height: var(--n-line-height-textarea); + margin: 0; + resize: none; + white-space: pre-wrap; + scroll-padding-block-end: var(--n-padding-vertical); + `),j("textarea-mirror",` + width: 100%; + pointer-events: none; + overflow: hidden; + visibility: hidden; + position: static; + white-space: pre-wrap; + overflow-wrap: break-word; + `)]),H("pair",[j("input-el, placeholder","text-align: center;"),j("separator",` + display: flex; + align-items: center; + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + white-space: nowrap; + `,[P("icon",` + color: var(--n-icon-color); + `),P("base-icon",` + color: var(--n-icon-color); + `)])]),H("disabled",` + cursor: not-allowed; + background-color: var(--n-color-disabled); + `,[j("border","border: var(--n-border-disabled);"),j("input-el, textarea-el",` + cursor: not-allowed; + color: var(--n-text-color-disabled); + text-decoration-color: var(--n-text-color-disabled); + `),j("placeholder","color: var(--n-placeholder-color-disabled);"),j("separator","color: var(--n-text-color-disabled);",[P("icon",` + color: var(--n-icon-color-disabled); + `),P("base-icon",` + color: var(--n-icon-color-disabled); + `)]),P("input-word-count",` + color: var(--n-count-text-color-disabled); + `),j("suffix, prefix","color: var(--n-text-color-disabled);",[P("icon",` + color: var(--n-icon-color-disabled); + `),P("internal-icon",` + color: var(--n-icon-color-disabled); + `)])]),dt("disabled",[j("eye",` + color: var(--n-icon-color); + cursor: pointer; + `,[I("&:hover",` + color: var(--n-icon-color-hover); + `),I("&:active",` + color: var(--n-icon-color-pressed); + `)]),I("&:hover",[j("state-border","border: var(--n-border-hover);")]),H("focus","background-color: var(--n-color-focus);",[j("state-border",` + border: var(--n-border-focus); + box-shadow: var(--n-box-shadow-focus); + `)])]),j("border, state-border",` + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + pointer-events: none; + border-radius: inherit; + border: var(--n-border); + transition: + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `),j("state-border",` + border-color: #0000; + z-index: 1; + `),j("prefix","margin-right: 4px;"),j("suffix",` + margin-left: 4px; + `),j("suffix, prefix",` + transition: color .3s var(--n-bezier); + flex-wrap: nowrap; + flex-shrink: 0; + line-height: var(--n-height); + white-space: nowrap; + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--n-suffix-text-color); + `,[P("base-loading",` + font-size: var(--n-icon-size); + margin: 0 2px; + color: var(--n-loading-color); + `),P("base-clear",` + font-size: var(--n-icon-size); + `,[j("placeholder",[P("base-icon",` + transition: color .3s var(--n-bezier); + color: var(--n-icon-color); + font-size: var(--n-icon-size); + `)])]),I(">",[P("icon",` + transition: color .3s var(--n-bezier); + color: var(--n-icon-color); + font-size: var(--n-icon-size); + `)]),P("base-icon",` + font-size: var(--n-icon-size); + `)]),P("input-word-count",` + pointer-events: none; + line-height: 1.5; + font-size: .85em; + color: var(--n-count-text-color); + transition: color .3s var(--n-bezier); + margin-left: 4px; + font-variant: tabular-nums; + `),["warning","error"].map(e=>H(`${e}-status`,[dt("disabled",[P("base-loading",` + color: var(--n-loading-color-${e}) + `),j("input-el, textarea-el",` + caret-color: var(--n-caret-color-${e}); + `),j("state-border",` + border: var(--n-border-${e}); + `),I("&:hover",[j("state-border",` + border: var(--n-border-hover-${e}); + `)]),I("&:focus",` + background-color: var(--n-color-focus-${e}); + `,[j("state-border",` + box-shadow: var(--n-box-shadow-focus-${e}); + border: var(--n-border-focus-${e}); + `)]),H("focus",` + background-color: var(--n-color-focus-${e}); + `,[j("state-border",` + box-shadow: var(--n-box-shadow-focus-${e}); + border: var(--n-border-focus-${e}); + `)])])]))]),kP=P("input",[H("disabled",[j("input-el, textarea-el",` + -webkit-text-fill-color: var(--n-text-color-disabled); + `)])]);function PP(e){let t=0;for(const n of e)t++;return t}function hl(e){return e===""||e==null}function $P(e){const t=E(null);function n(){const{value:i}=e;if(!i?.focus){r();return}const{selectionStart:l,selectionEnd:a,value:s}=i;if(l==null||a==null){r();return}t.value={start:l,end:a,beforeText:s.slice(0,l),afterText:s.slice(a)}}function o(){var i;const{value:l}=t,{value:a}=e;if(!l||!a)return;const{value:s}=a,{start:d,beforeText:c,afterText:f}=l;let v=s.length;if(s.endsWith(f))v=s.length-f.length;else if(s.startsWith(c))v=c.length;else{const g=c[d-1],u=s.indexOf(g,d-1);u!==-1&&(v=u+1)}(i=a.setSelectionRange)===null||i===void 0||i.call(a,v,v)}function r(){t.value=null}return tt(e,r),{recordCursor:n,restoreCursor:o}}const kf=pe({name:"InputWordCount",setup(e,{slots:t}){const{mergedValueRef:n,maxlengthRef:o,mergedClsPrefixRef:r,countGraphemesRef:i}=Ee(Hv),l=O(()=>{const{value:a}=n;return a===null||Array.isArray(a)?0:(i.value||PP)(a)});return()=>{const{value:a}=o,{value:s}=n;return h("span",{class:`${r.value}-input-word-count`},Ox(t.default,{value:s===null||Array.isArray(s)?"":s},()=>[a===void 0?l.value:`${l.value} / ${a}`]))}}}),_P=Object.assign(Object.assign({},Be.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:"text"},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},allowInput:Function,renderCount:Function,onMousedown:Function,onKeydown:Function,onKeyup:[Function,Array],onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],countGraphemes:Function,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:{type:Boolean,default:!0},showPasswordToggle:Boolean}),Br=pe({name:"Input",props:_P,slots:Object,setup(e){const{mergedClsPrefixRef:t,mergedBorderedRef:n,inlineThemeDisabled:o,mergedRtlRef:r,mergedComponentPropsRef:i}=Ye(e),l=Be("Input","-input",RP,Dv,e,t);Lv&&pr("-input-safari",kP,t);const a=E(null),s=E(null),d=E(null),c=E(null),f=E(null),v=E(null),g=E(null),u=$P(g),p=E(null),{localeRef:b}=Xi("Input"),m=E(e.defaultValue),$=qt(we(e,"value"),m),S=No(e,{mergedSize:U=>{var ce,Me;const{size:je}=e;if(je)return je;const{mergedSize:Ve}=U||{};if(Ve?.value)return Ve.value;const Je=(Me=(ce=i?.value)===null||ce===void 0?void 0:ce.Input)===null||Me===void 0?void 0:Me.size;return Je||"medium"}}),{mergedSizeRef:x,mergedDisabledRef:R,mergedStatusRef:C}=S,w=E(!1),k=E(!1),F=E(!1),M=E(!1);let _=null;const T=O(()=>{const{placeholder:U,pair:ce}=e;return ce?Array.isArray(U)?U:U===void 0?["",""]:[U,U]:U===void 0?[b.value.placeholder]:[U]}),B=O(()=>{const{value:U}=F,{value:ce}=$,{value:Me}=T;return!U&&(hl(ce)||Array.isArray(ce)&&hl(ce[0]))&&Me[0]}),D=O(()=>{const{value:U}=F,{value:ce}=$,{value:Me}=T;return!U&&Me[1]&&(hl(ce)||Array.isArray(ce)&&hl(ce[1]))}),K=ot(()=>e.internalForceFocus||w.value),N=ot(()=>{if(R.value||e.readonly||!e.clearable||!K.value&&!k.value)return!1;const{value:U}=$,{value:ce}=K;return e.pair?!!(Array.isArray(U)&&(U[0]||U[1]))&&(k.value||ce):!!U&&(k.value||ce)}),V=O(()=>{const{showPasswordOn:U}=e;if(U)return U;if(e.showPasswordToggle)return"click"}),ie=E(!1),he=O(()=>{const{textDecoration:U}=e;return U?Array.isArray(U)?U.map(ce=>({textDecoration:ce})):[{textDecoration:U}]:["",""]}),J=E(void 0),re=()=>{var U,ce;if(e.type==="textarea"){const{autosize:Me}=e;if(Me&&(J.value=(ce=(U=p.value)===null||U===void 0?void 0:U.$el)===null||ce===void 0?void 0:ce.offsetWidth),!s.value||typeof Me=="boolean")return;const{paddingTop:je,paddingBottom:Ve,lineHeight:Je}=window.getComputedStyle(s.value),rn=Number(je.slice(0,-2)),ln=Number(Ve.slice(0,-2)),Cn=Number(Je.slice(0,-2)),{value:eo}=d;if(!eo)return;if(Me.minRows){const to=Math.max(Me.minRows,1),Wo=`${rn+ln+Cn*to}px`;eo.style.minHeight=Wo}if(Me.maxRows){const to=`${rn+ln+Cn*Me.maxRows}px`;eo.style.maxHeight=to}}},ye=O(()=>{const{maxlength:U}=e;return U===void 0?void 0:Number(U)});Ct(()=>{const{value:U}=$;Array.isArray(U)||Ze(U)});const Z=Lo().proxy;function le(U,ce){const{onUpdateValue:Me,"onUpdate:value":je,onInput:Ve}=e,{nTriggerFormInput:Je}=S;Me&&me(Me,U,ce),je&&me(je,U,ce),Ve&&me(Ve,U,ce),m.value=U,Je()}function $e(U,ce){const{onChange:Me}=e,{nTriggerFormChange:je}=S;Me&&me(Me,U,ce),m.value=U,je()}function ze(U){const{onBlur:ce}=e,{nTriggerFormBlur:Me}=S;ce&&me(ce,U),Me()}function Ae(U){const{onFocus:ce}=e,{nTriggerFormFocus:Me}=S;ce&&me(ce,U),Me()}function Te(U){const{onClear:ce}=e;ce&&me(ce,U)}function ne(U){const{onInputBlur:ce}=e;ce&&me(ce,U)}function Oe(U){const{onInputFocus:ce}=e;ce&&me(ce,U)}function z(){const{onDeactivate:U}=e;U&&me(U)}function L(){const{onActivate:U}=e;U&&me(U)}function ee(U){const{onClick:ce}=e;ce&&me(ce,U)}function se(U){const{onWrapperFocus:ce}=e;ce&&me(ce,U)}function ae(U){const{onWrapperBlur:ce}=e;ce&&me(ce,U)}function Q(){F.value=!0}function ue(U){F.value=!1,U.target===v.value?ve(U,1):ve(U,0)}function ve(U,ce=0,Me="input"){const je=U.target.value;if(Ze(je),U instanceof InputEvent&&!U.isComposing&&(F.value=!1),e.type==="textarea"){const{value:Je}=p;Je&&Je.syncUnifiedContainer()}if(_=je,F.value)return;u.recordCursor();const Ve=fe(je);if(Ve)if(!e.pair)Me==="input"?le(je,{source:ce}):$e(je,{source:ce});else{let{value:Je}=$;Array.isArray(Je)?Je=[Je[0],Je[1]]:Je=["",""],Je[ce]=je,Me==="input"?le(Je,{source:ce}):$e(Je,{source:ce})}Z.$forceUpdate(),Ve||Rt(u.restoreCursor)}function fe(U){const{countGraphemes:ce,maxlength:Me,minlength:je}=e;if(ce){let Je;if(Me!==void 0&&(Je===void 0&&(Je=ce(U)),Je>Number(Me))||je!==void 0&&(Je===void 0&&(Je=ce(U)),Je{je.preventDefault(),et("mouseup",document,ce)};if(ct("mouseup",document,ce),V.value!=="mousedown")return;ie.value=!0;const Me=()=>{ie.value=!1,et("mouseup",document,Me)};ct("mouseup",document,Me)}function Re(U){e.onKeyup&&me(e.onKeyup,U)}function te(U){switch(e.onKeydown&&me(e.onKeydown,U),U.key){case"Escape":X();break;case"Enter":A(U);break}}function A(U){var ce,Me;if(e.passivelyActivated){const{value:je}=M;if(je){e.internalDeactivateOnEnter&&X();return}U.preventDefault(),e.type==="textarea"?(ce=s.value)===null||ce===void 0||ce.focus():(Me=f.value)===null||Me===void 0||Me.focus()}}function X(){e.passivelyActivated&&(M.value=!1,Rt(()=>{var U;(U=a.value)===null||U===void 0||U.focus()}))}function be(){var U,ce,Me;R.value||(e.passivelyActivated?(U=a.value)===null||U===void 0||U.focus():((ce=s.value)===null||ce===void 0||ce.focus(),(Me=f.value)===null||Me===void 0||Me.focus()))}function _e(){var U;!((U=a.value)===null||U===void 0)&&U.contains(document.activeElement)&&document.activeElement.blur()}function xe(){var U,ce;(U=s.value)===null||U===void 0||U.select(),(ce=f.value)===null||ce===void 0||ce.select()}function ke(){R.value||(s.value?s.value.focus():f.value&&f.value.focus())}function Ce(){const{value:U}=a;U?.contains(document.activeElement)&&U!==document.activeElement&&X()}function Fe(U){if(e.type==="textarea"){const{value:ce}=s;ce?.scrollTo(U)}else{const{value:ce}=f;ce?.scrollTo(U)}}function Ze(U){const{type:ce,pair:Me,autosize:je}=e;if(!Me&&je)if(ce==="textarea"){const{value:Ve}=d;Ve&&(Ve.textContent=`${U??""}\r +`)}else{const{value:Ve}=c;Ve&&(U?Ve.textContent=U:Ve.innerHTML=" ")}}function Lt(){re()}const Et=E({top:"0"});function Dt(U){var ce;const{scrollTop:Me}=U.target;Et.value.top=`${-Me}px`,(ce=p.value)===null||ce===void 0||ce.syncUnifiedContainer()}let zt=null;en(()=>{const{autosize:U,type:ce}=e;U&&ce==="textarea"?zt=tt($,Me=>{!Array.isArray(Me)&&Me!==_&&Ze(Me)}):zt?.()});let Ht=null;en(()=>{e.type==="textarea"?Ht=tt($,U=>{var ce;!Array.isArray(U)&&U!==_&&((ce=p.value)===null||ce===void 0||ce.syncUnifiedContainer())}):Ht?.()}),qe(Hv,{mergedValueRef:$,maxlengthRef:ye,mergedClsPrefixRef:t,countGraphemesRef:we(e,"countGraphemes")});const on={wrapperElRef:a,inputElRef:f,textareaElRef:s,isCompositing:F,clear:De,focus:be,blur:_e,select:xe,deactivate:Ce,activate:ke,scrollTo:Fe},Nt=Bt("Input",r,t),Xt=O(()=>{const{value:U}=x,{common:{cubicBezierEaseInOut:ce},self:{color:Me,borderRadius:je,textColor:Ve,caretColor:Je,caretColorError:rn,caretColorWarning:ln,textDecorationColor:Cn,border:eo,borderDisabled:to,borderHover:Wo,borderFocus:qr,placeholderColor:Xr,placeholderColorDisabled:Yr,lineHeightTextarea:Zr,colorDisabled:mo,colorFocus:yo,textColorDisabled:Sa,boxShadowFocus:Ra,iconSize:ka,colorFocusWarning:Pa,boxShadowFocusWarning:$a,borderWarning:_a,borderFocusWarning:za,borderHoverWarning:Ta,colorFocusError:Fa,boxShadowFocusError:Oa,borderError:Ea,borderFocusError:Ma,borderHoverError:Ba,clearSize:Aa,clearColor:Ia,clearColorHover:La,clearColorPressed:Ag,iconColor:Ig,iconColorDisabled:Lg,suffixTextColor:Dg,countTextColor:Hg,countTextColorDisabled:Ng,iconColorHover:jg,iconColorPressed:Wg,loadingColor:Vg,loadingColorError:Kg,loadingColorWarning:Ug,fontWeight:Gg,[de("padding",U)]:qg,[de("fontSize",U)]:Xg,[de("height",U)]:Yg}}=l.value,{left:Zg,right:Jg}=Ft(qg);return{"--n-bezier":ce,"--n-count-text-color":Hg,"--n-count-text-color-disabled":Ng,"--n-color":Me,"--n-font-size":Xg,"--n-font-weight":Gg,"--n-border-radius":je,"--n-height":Yg,"--n-padding-left":Zg,"--n-padding-right":Jg,"--n-text-color":Ve,"--n-caret-color":Je,"--n-text-decoration-color":Cn,"--n-border":eo,"--n-border-disabled":to,"--n-border-hover":Wo,"--n-border-focus":qr,"--n-placeholder-color":Xr,"--n-placeholder-color-disabled":Yr,"--n-icon-size":ka,"--n-line-height-textarea":Zr,"--n-color-disabled":mo,"--n-color-focus":yo,"--n-text-color-disabled":Sa,"--n-box-shadow-focus":Ra,"--n-loading-color":Vg,"--n-caret-color-warning":ln,"--n-color-focus-warning":Pa,"--n-box-shadow-focus-warning":$a,"--n-border-warning":_a,"--n-border-focus-warning":za,"--n-border-hover-warning":Ta,"--n-loading-color-warning":Ug,"--n-caret-color-error":rn,"--n-color-focus-error":Fa,"--n-box-shadow-focus-error":Oa,"--n-border-error":Ea,"--n-border-focus-error":Ma,"--n-border-hover-error":Ba,"--n-loading-color-error":Kg,"--n-clear-color":Ia,"--n-clear-size":Aa,"--n-clear-color-hover":La,"--n-clear-color-pressed":Ag,"--n-icon-color":Ig,"--n-icon-color-hover":jg,"--n-icon-color-pressed":Wg,"--n-icon-color-disabled":Lg,"--n-suffix-text-color":Dg}}),Mt=o?vt("input",O(()=>{const{value:U}=x;return U[0]}),Xt,e):void 0;return Object.assign(Object.assign({},on),{wrapperElRef:a,inputElRef:f,inputMirrorElRef:c,inputEl2Ref:v,textareaElRef:s,textareaMirrorElRef:d,textareaScrollbarInstRef:p,rtlEnabled:Nt,uncontrolledValue:m,mergedValue:$,passwordVisible:ie,mergedPlaceholder:T,showPlaceholder1:B,showPlaceholder2:D,mergedFocus:K,isComposing:F,activated:M,showClearButton:N,mergedSize:x,mergedDisabled:R,textDecorationStyle:he,mergedClsPrefix:t,mergedBordered:n,mergedShowPasswordOn:V,placeholderStyle:Et,mergedStatus:C,textAreaScrollContainerWidth:J,handleTextAreaScroll:Dt,handleCompositionStart:Q,handleCompositionEnd:ue,handleInput:ve,handleInputBlur:oe,handleInputFocus:q,handleWrapperBlur:G,handleWrapperFocus:W,handleMouseEnter:Xe,handleMouseLeave:at,handleMouseDown:Ge,handleChange:Se,handleClick:Le,handleClear:Ie,handlePasswordToggleClick:mt,handlePasswordToggleMousedown:ft,handleWrapperKeydown:te,handleWrapperKeyup:Re,handleTextAreaMirrorResize:Lt,getTextareaScrollContainer:()=>s.value,mergedTheme:l,cssVars:o?void 0:Xt,themeClass:Mt?.themeClass,onRender:Mt?.onRender})},render(){var e,t,n,o,r,i,l;const{mergedClsPrefix:a,mergedStatus:s,themeClass:d,type:c,countGraphemes:f,onRender:v}=this,g=this.$slots;return v?.(),h("div",{ref:"wrapperElRef",class:[`${a}-input`,`${a}-input--${this.mergedSize}-size`,d,s&&`${a}-input--${s}-status`,{[`${a}-input--rtl`]:this.rtlEnabled,[`${a}-input--disabled`]:this.mergedDisabled,[`${a}-input--textarea`]:c==="textarea",[`${a}-input--resizable`]:this.resizable&&!this.autosize,[`${a}-input--autosize`]:this.autosize,[`${a}-input--round`]:this.round&&c!=="textarea",[`${a}-input--pair`]:this.pair,[`${a}-input--focus`]:this.mergedFocus,[`${a}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.handleWrapperKeyup,onKeydown:this.handleWrapperKeydown},h("div",{class:`${a}-input-wrapper`},lt(g.prefix,u=>u&&h("div",{class:`${a}-input__prefix`},u)),c==="textarea"?h(bo,{ref:"textareaScrollbarInstRef",class:`${a}-input__textarea`,container:this.getTextareaScrollContainer,theme:(t=(e=this.theme)===null||e===void 0?void 0:e.peers)===null||t===void 0?void 0:t.Scrollbar,themeOverrides:(o=(n=this.themeOverrides)===null||n===void 0?void 0:n.peers)===null||o===void 0?void 0:o.Scrollbar,triggerDisplayManually:!0,useUnifiedContainer:!0,internalHoistYRail:!0},{default:()=>{var u,p;const{textAreaScrollContainerWidth:b}=this,m={width:this.autosize&&b&&`${b}px`};return h(nt,null,h("textarea",Object.assign({},this.inputProps,{ref:"textareaElRef",class:[`${a}-input__textarea-el`,(u=this.inputProps)===null||u===void 0?void 0:u.class],autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:f?void 0:this.maxlength,minlength:f?void 0:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],(p=this.inputProps)===null||p===void 0?void 0:p.style,m],onBlur:this.handleInputBlur,onFocus:y=>{this.handleInputFocus(y,2)},onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?h("div",{class:`${a}-input__placeholder`,style:[this.placeholderStyle,m],key:"placeholder"},this.mergedPlaceholder[0]):null,this.autosize?h(Kn,{onResize:this.handleTextAreaMirrorResize},{default:()=>h("div",{ref:"textareaMirrorElRef",class:`${a}-input__textarea-mirror`,key:"mirror"})}):null)}}):h("div",{class:`${a}-input__input`},h("input",Object.assign({type:c==="password"&&this.mergedShowPasswordOn&&this.passwordVisible?"text":c},this.inputProps,{ref:"inputElRef",class:[`${a}-input__input-el`,(r=this.inputProps)===null||r===void 0?void 0:r.class],style:[this.textDecorationStyle[0],(i=this.inputProps)===null||i===void 0?void 0:i.style],tabindex:this.passivelyActivated&&!this.activated?-1:(l=this.inputProps)===null||l===void 0?void 0:l.tabindex,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:f?void 0:this.maxlength,minlength:f?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:u=>{this.handleInputFocus(u,0)},onInput:u=>{this.handleInput(u,0)},onChange:u=>{this.handleChange(u,0)}})),this.showPlaceholder1?h("div",{class:`${a}-input__placeholder`},h("span",null,this.mergedPlaceholder[0])):null,this.autosize?h("div",{class:`${a}-input__input-mirror`,key:"mirror",ref:"inputMirrorElRef"}," "):null),!this.pair&<(g.suffix,u=>u||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?h("div",{class:`${a}-input__suffix`},[lt(g["clear-icon-placeholder"],p=>(this.clearable||p)&&h(Qs,{clsPrefix:a,show:this.showClearButton,onClear:this.handleClear},{placeholder:()=>p,icon:()=>{var b,m;return(m=(b=this.$slots)["clear-icon"])===null||m===void 0?void 0:m.call(b)}})),this.internalLoadingBeforeSuffix?null:u,this.loading!==void 0?h(Av,{clsPrefix:a,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}):null,this.internalLoadingBeforeSuffix?u:null,this.showCount&&this.type!=="textarea"?h(kf,null,{default:p=>{var b;const{renderCount:m}=this;return m?m(p):(b=g.count)===null||b===void 0?void 0:b.call(g,p)}}):null,this.mergedShowPasswordOn&&this.type==="password"?h("div",{class:`${a}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},this.passwordVisible?$n(g["password-visible-icon"],()=>[h(kt,{clsPrefix:a},{default:()=>h(ok,null)})]):$n(g["password-invisible-icon"],()=>[h(kt,{clsPrefix:a},{default:()=>h(rk,null)})])):null]):null)),this.pair?h("span",{class:`${a}-input__separator`},$n(g.separator,()=>[this.separator])):null,this.pair?h("div",{class:`${a}-input-wrapper`},h("div",{class:`${a}-input__input`},h("input",{ref:"inputEl2Ref",type:this.type,class:`${a}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:f?void 0:this.maxlength,minlength:f?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:u=>{this.handleInputFocus(u,1)},onInput:u=>{this.handleInput(u,1)},onChange:u=>{this.handleChange(u,1)}}),this.showPlaceholder2?h("div",{class:`${a}-input__placeholder`},h("span",null,this.mergedPlaceholder[1])):null),lt(g.suffix,u=>(this.clearable||u)&&h("div",{class:`${a}-input__suffix`},[this.clearable&&h(Qs,{clsPrefix:a,show:this.showClearButton,onClear:this.handleClear},{icon:()=>{var p;return(p=g["clear-icon"])===null||p===void 0?void 0:p.call(g)},placeholder:()=>{var p;return(p=g["clear-icon-placeholder"])===null||p===void 0?void 0:p.call(g)}}),u]))):null,this.mergedBordered?h("div",{class:`${a}-input__border`}):null,this.mergedBordered?h("div",{class:`${a}-input__state-border`}):null,this.showCount&&c==="textarea"?h(kf,null,{default:u=>{var p;const{renderCount:b}=this;return b?b(u):(p=g.count)===null||p===void 0?void 0:p.call(g,u)}}):null)}});function Kl(e){return e.type==="group"}function Nv(e){return e.type==="ignored"}function gs(e,t){try{return!!(1+t.toString().toLowerCase().indexOf(e.trim().toLowerCase()))}catch{return!1}}function jv(e,t){return{getIsGroup:Kl,getIgnored:Nv,getKey(o){return Kl(o)?o.name||o.key||"key-required":o[e]},getChildren(o){return o[t]}}}function zP(e,t,n,o){if(!t)return e;function r(i){if(!Array.isArray(i))return[];const l=[];for(const a of i)if(Kl(a)){const s=r(a[o]);s.length&&l.push(Object.assign({},a,{[o]:s}))}else{if(Nv(a))continue;t(n,a)&&l.push(a)}return l}return r(e)}function TP(e,t,n){const o=new Map;return e.forEach(r=>{Kl(r)?r[n].forEach(i=>{o.set(i[t],i)}):o.set(r[t],r)}),o}function Go(e){return rt(e,[255,255,255,.16])}function pl(e){return rt(e,[0,0,0,.12])}const FP="n-button-group",OP={paddingTiny:"0 6px",paddingSmall:"0 10px",paddingMedium:"0 14px",paddingLarge:"0 18px",paddingRoundTiny:"0 10px",paddingRoundSmall:"0 14px",paddingRoundMedium:"0 18px",paddingRoundLarge:"0 22px",iconMarginTiny:"6px",iconMarginSmall:"6px",iconMarginMedium:"6px",iconMarginLarge:"6px",iconSizeTiny:"14px",iconSizeSmall:"18px",iconSizeMedium:"18px",iconSizeLarge:"20px",rippleDuration:".6s"};function EP(e){const{heightTiny:t,heightSmall:n,heightMedium:o,heightLarge:r,borderRadius:i,fontSizeTiny:l,fontSizeSmall:a,fontSizeMedium:s,fontSizeLarge:d,opacityDisabled:c,textColor2:f,textColor3:v,primaryColorHover:g,primaryColorPressed:u,borderColor:p,primaryColor:b,baseColor:m,infoColor:y,infoColorHover:$,infoColorPressed:S,successColor:x,successColorHover:R,successColorPressed:C,warningColor:w,warningColorHover:k,warningColorPressed:F,errorColor:M,errorColorHover:_,errorColorPressed:T,fontWeight:B,buttonColor2:D,buttonColor2Hover:K,buttonColor2Pressed:N,fontWeightStrong:V}=e;return Object.assign(Object.assign({},OP),{heightTiny:t,heightSmall:n,heightMedium:o,heightLarge:r,borderRadiusTiny:i,borderRadiusSmall:i,borderRadiusMedium:i,borderRadiusLarge:i,fontSizeTiny:l,fontSizeSmall:a,fontSizeMedium:s,fontSizeLarge:d,opacityDisabled:c,colorOpacitySecondary:"0.16",colorOpacitySecondaryHover:"0.22",colorOpacitySecondaryPressed:"0.28",colorSecondary:D,colorSecondaryHover:K,colorSecondaryPressed:N,colorTertiary:D,colorTertiaryHover:K,colorTertiaryPressed:N,colorQuaternary:"#0000",colorQuaternaryHover:K,colorQuaternaryPressed:N,color:"#0000",colorHover:"#0000",colorPressed:"#0000",colorFocus:"#0000",colorDisabled:"#0000",textColor:f,textColorTertiary:v,textColorHover:g,textColorPressed:u,textColorFocus:g,textColorDisabled:f,textColorText:f,textColorTextHover:g,textColorTextPressed:u,textColorTextFocus:g,textColorTextDisabled:f,textColorGhost:f,textColorGhostHover:g,textColorGhostPressed:u,textColorGhostFocus:g,textColorGhostDisabled:f,border:`1px solid ${p}`,borderHover:`1px solid ${g}`,borderPressed:`1px solid ${u}`,borderFocus:`1px solid ${g}`,borderDisabled:`1px solid ${p}`,rippleColor:b,colorPrimary:b,colorHoverPrimary:g,colorPressedPrimary:u,colorFocusPrimary:g,colorDisabledPrimary:b,textColorPrimary:m,textColorHoverPrimary:m,textColorPressedPrimary:m,textColorFocusPrimary:m,textColorDisabledPrimary:m,textColorTextPrimary:b,textColorTextHoverPrimary:g,textColorTextPressedPrimary:u,textColorTextFocusPrimary:g,textColorTextDisabledPrimary:f,textColorGhostPrimary:b,textColorGhostHoverPrimary:g,textColorGhostPressedPrimary:u,textColorGhostFocusPrimary:g,textColorGhostDisabledPrimary:b,borderPrimary:`1px solid ${b}`,borderHoverPrimary:`1px solid ${g}`,borderPressedPrimary:`1px solid ${u}`,borderFocusPrimary:`1px solid ${g}`,borderDisabledPrimary:`1px solid ${b}`,rippleColorPrimary:b,colorInfo:y,colorHoverInfo:$,colorPressedInfo:S,colorFocusInfo:$,colorDisabledInfo:y,textColorInfo:m,textColorHoverInfo:m,textColorPressedInfo:m,textColorFocusInfo:m,textColorDisabledInfo:m,textColorTextInfo:y,textColorTextHoverInfo:$,textColorTextPressedInfo:S,textColorTextFocusInfo:$,textColorTextDisabledInfo:f,textColorGhostInfo:y,textColorGhostHoverInfo:$,textColorGhostPressedInfo:S,textColorGhostFocusInfo:$,textColorGhostDisabledInfo:y,borderInfo:`1px solid ${y}`,borderHoverInfo:`1px solid ${$}`,borderPressedInfo:`1px solid ${S}`,borderFocusInfo:`1px solid ${$}`,borderDisabledInfo:`1px solid ${y}`,rippleColorInfo:y,colorSuccess:x,colorHoverSuccess:R,colorPressedSuccess:C,colorFocusSuccess:R,colorDisabledSuccess:x,textColorSuccess:m,textColorHoverSuccess:m,textColorPressedSuccess:m,textColorFocusSuccess:m,textColorDisabledSuccess:m,textColorTextSuccess:x,textColorTextHoverSuccess:R,textColorTextPressedSuccess:C,textColorTextFocusSuccess:R,textColorTextDisabledSuccess:f,textColorGhostSuccess:x,textColorGhostHoverSuccess:R,textColorGhostPressedSuccess:C,textColorGhostFocusSuccess:R,textColorGhostDisabledSuccess:x,borderSuccess:`1px solid ${x}`,borderHoverSuccess:`1px solid ${R}`,borderPressedSuccess:`1px solid ${C}`,borderFocusSuccess:`1px solid ${R}`,borderDisabledSuccess:`1px solid ${x}`,rippleColorSuccess:x,colorWarning:w,colorHoverWarning:k,colorPressedWarning:F,colorFocusWarning:k,colorDisabledWarning:w,textColorWarning:m,textColorHoverWarning:m,textColorPressedWarning:m,textColorFocusWarning:m,textColorDisabledWarning:m,textColorTextWarning:w,textColorTextHoverWarning:k,textColorTextPressedWarning:F,textColorTextFocusWarning:k,textColorTextDisabledWarning:f,textColorGhostWarning:w,textColorGhostHoverWarning:k,textColorGhostPressedWarning:F,textColorGhostFocusWarning:k,textColorGhostDisabledWarning:w,borderWarning:`1px solid ${w}`,borderHoverWarning:`1px solid ${k}`,borderPressedWarning:`1px solid ${F}`,borderFocusWarning:`1px solid ${k}`,borderDisabledWarning:`1px solid ${w}`,rippleColorWarning:w,colorError:M,colorHoverError:_,colorPressedError:T,colorFocusError:_,colorDisabledError:M,textColorError:m,textColorHoverError:m,textColorPressedError:m,textColorFocusError:m,textColorDisabledError:m,textColorTextError:M,textColorTextHoverError:_,textColorTextPressedError:T,textColorTextFocusError:_,textColorTextDisabledError:f,textColorGhostError:M,textColorGhostHoverError:_,textColorGhostPressedError:T,textColorGhostFocusError:_,textColorGhostDisabledError:M,borderError:`1px solid ${M}`,borderHoverError:`1px solid ${_}`,borderPressedError:`1px solid ${T}`,borderFocusError:`1px solid ${_}`,borderDisabledError:`1px solid ${M}`,rippleColorError:M,waveOpacity:"0.6",fontWeight:B,fontWeightStrong:V})}const rc={name:"Button",common:gt,self:EP},MP=I([P("button",` + margin: 0; + font-weight: var(--n-font-weight); + line-height: 1; + font-family: inherit; + padding: var(--n-padding); + height: var(--n-height); + font-size: var(--n-font-size); + border-radius: var(--n-border-radius); + color: var(--n-text-color); + background-color: var(--n-color); + width: var(--n-width); + white-space: nowrap; + outline: none; + position: relative; + z-index: auto; + border: none; + display: inline-flex; + flex-wrap: nowrap; + flex-shrink: 0; + align-items: center; + justify-content: center; + user-select: none; + -webkit-user-select: none; + text-align: center; + cursor: pointer; + text-decoration: none; + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `,[H("color",[j("border",{borderColor:"var(--n-border-color)"}),H("disabled",[j("border",{borderColor:"var(--n-border-color-disabled)"})]),dt("disabled",[I("&:focus",[j("state-border",{borderColor:"var(--n-border-color-focus)"})]),I("&:hover",[j("state-border",{borderColor:"var(--n-border-color-hover)"})]),I("&:active",[j("state-border",{borderColor:"var(--n-border-color-pressed)"})]),H("pressed",[j("state-border",{borderColor:"var(--n-border-color-pressed)"})])])]),H("disabled",{backgroundColor:"var(--n-color-disabled)",color:"var(--n-text-color-disabled)"},[j("border",{border:"var(--n-border-disabled)"})]),dt("disabled",[I("&:focus",{backgroundColor:"var(--n-color-focus)",color:"var(--n-text-color-focus)"},[j("state-border",{border:"var(--n-border-focus)"})]),I("&:hover",{backgroundColor:"var(--n-color-hover)",color:"var(--n-text-color-hover)"},[j("state-border",{border:"var(--n-border-hover)"})]),I("&:active",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[j("state-border",{border:"var(--n-border-pressed)"})]),H("pressed",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[j("state-border",{border:"var(--n-border-pressed)"})])]),H("loading","cursor: wait;"),P("base-wave",` + pointer-events: none; + top: 0; + right: 0; + bottom: 0; + left: 0; + animation-iteration-count: 1; + animation-duration: var(--n-ripple-duration); + animation-timing-function: var(--n-bezier-ease-out), var(--n-bezier-ease-out); + `,[H("active",{zIndex:1,animationName:"button-wave-spread, button-wave-opacity"})]),Do&&"MozBoxSizing"in document.createElement("div").style?I("&::moz-focus-inner",{border:0}):null,j("border, state-border",` + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + border-radius: inherit; + transition: border-color .3s var(--n-bezier); + pointer-events: none; + `),j("border",` + border: var(--n-border); + `),j("state-border",` + border: var(--n-border); + border-color: #0000; + z-index: 1; + `),j("icon",` + margin: var(--n-icon-margin); + margin-left: 0; + height: var(--n-icon-size); + width: var(--n-icon-size); + max-width: var(--n-icon-size); + font-size: var(--n-icon-size); + position: relative; + flex-shrink: 0; + `,[P("icon-slot",` + height: var(--n-icon-size); + width: var(--n-icon-size); + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; + justify-content: center; + `,[an({top:"50%",originalTransform:"translateY(-50%)"})]),vP()]),j("content",` + display: flex; + align-items: center; + flex-wrap: nowrap; + min-width: 0; + `,[I("~",[j("icon",{margin:"var(--n-icon-margin)",marginRight:0})])]),H("block",` + display: flex; + width: 100%; + `),H("dashed",[j("border, state-border",{borderStyle:"dashed !important"})]),H("disabled",{cursor:"not-allowed",opacity:"var(--n-opacity-disabled)"})]),I("@keyframes button-wave-spread",{from:{boxShadow:"0 0 0.5px 0 var(--n-ripple-color)"},to:{boxShadow:"0 0 0.5px 4.5px var(--n-ripple-color)"}}),I("@keyframes button-wave-opacity",{from:{opacity:"var(--n-wave-opacity)"},to:{opacity:0}})]),BP=Object.assign(Object.assign({},Be.props),{color:String,textColor:String,text:Boolean,block:Boolean,loading:Boolean,disabled:Boolean,circle:Boolean,size:String,ghost:Boolean,round:Boolean,secondary:Boolean,tertiary:Boolean,quaternary:Boolean,strong:Boolean,focusable:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},tag:{type:String,default:"button"},type:{type:String,default:"default"},dashed:Boolean,renderIcon:Function,iconPlacement:{type:String,default:"left"},attrType:{type:String,default:"button"},bordered:{type:Boolean,default:!0},onClick:[Function,Array],nativeFocusBehavior:{type:Boolean,default:!Lv},spinProps:Object}),It=pe({name:"Button",props:BP,slots:Object,setup(e){const t=E(null),n=E(null),o=E(!1),r=ot(()=>!e.quaternary&&!e.tertiary&&!e.secondary&&!e.text&&(!e.color||e.ghost||e.dashed)&&e.bordered),i=Ee(FP,{}),{inlineThemeDisabled:l,mergedClsPrefixRef:a,mergedRtlRef:s,mergedComponentPropsRef:d}=Ye(e),{mergedSizeRef:c}=No({},{defaultSize:"medium",mergedSize:x=>{var R,C;const{size:w}=e;if(w)return w;const{size:k}=i;if(k)return k;const{mergedSize:F}=x||{};if(F)return F.value;const M=(C=(R=d?.value)===null||R===void 0?void 0:R.Button)===null||C===void 0?void 0:C.size;return M||"medium"}}),f=O(()=>e.focusable&&!e.disabled),v=x=>{var R;f.value||x.preventDefault(),!e.nativeFocusBehavior&&(x.preventDefault(),!e.disabled&&f.value&&((R=t.value)===null||R===void 0||R.focus({preventScroll:!0})))},g=x=>{var R;if(!e.disabled&&!e.loading){const{onClick:C}=e;C&&me(C,x),e.text||(R=n.value)===null||R===void 0||R.play()}},u=x=>{switch(x.key){case"Enter":if(!e.keyboard)return;o.value=!1}},p=x=>{switch(x.key){case"Enter":if(!e.keyboard||e.loading){x.preventDefault();return}o.value=!0}},b=()=>{o.value=!1},m=Be("Button","-button",MP,rc,e,a),y=Bt("Button",s,a),$=O(()=>{const x=m.value,{common:{cubicBezierEaseInOut:R,cubicBezierEaseOut:C},self:w}=x,{rippleDuration:k,opacityDisabled:F,fontWeight:M,fontWeightStrong:_}=w,T=c.value,{dashed:B,type:D,ghost:K,text:N,color:V,round:ie,circle:he,textColor:J,secondary:re,tertiary:ye,quaternary:Z,strong:le}=e,$e={"--n-font-weight":le?_:M};let ze={"--n-color":"initial","--n-color-hover":"initial","--n-color-pressed":"initial","--n-color-focus":"initial","--n-color-disabled":"initial","--n-ripple-color":"initial","--n-text-color":"initial","--n-text-color-hover":"initial","--n-text-color-pressed":"initial","--n-text-color-focus":"initial","--n-text-color-disabled":"initial"};const Ae=D==="tertiary",Te=D==="default",ne=Ae?"default":D;if(N){const oe=J||V;ze={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":"#0000","--n-text-color":oe||w[de("textColorText",ne)],"--n-text-color-hover":oe?Go(oe):w[de("textColorTextHover",ne)],"--n-text-color-pressed":oe?pl(oe):w[de("textColorTextPressed",ne)],"--n-text-color-focus":oe?Go(oe):w[de("textColorTextHover",ne)],"--n-text-color-disabled":oe||w[de("textColorTextDisabled",ne)]}}else if(K||B){const oe=J||V;ze={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":V||w[de("rippleColor",ne)],"--n-text-color":oe||w[de("textColorGhost",ne)],"--n-text-color-hover":oe?Go(oe):w[de("textColorGhostHover",ne)],"--n-text-color-pressed":oe?pl(oe):w[de("textColorGhostPressed",ne)],"--n-text-color-focus":oe?Go(oe):w[de("textColorGhostHover",ne)],"--n-text-color-disabled":oe||w[de("textColorGhostDisabled",ne)]}}else if(re){const oe=Te?w.textColor:Ae?w.textColorTertiary:w[de("color",ne)],q=V||oe,G=D!=="default"&&D!=="tertiary";ze={"--n-color":G?Ue(q,{alpha:Number(w.colorOpacitySecondary)}):w.colorSecondary,"--n-color-hover":G?Ue(q,{alpha:Number(w.colorOpacitySecondaryHover)}):w.colorSecondaryHover,"--n-color-pressed":G?Ue(q,{alpha:Number(w.colorOpacitySecondaryPressed)}):w.colorSecondaryPressed,"--n-color-focus":G?Ue(q,{alpha:Number(w.colorOpacitySecondaryHover)}):w.colorSecondaryHover,"--n-color-disabled":w.colorSecondary,"--n-ripple-color":"#0000","--n-text-color":q,"--n-text-color-hover":q,"--n-text-color-pressed":q,"--n-text-color-focus":q,"--n-text-color-disabled":q}}else if(ye||Z){const oe=Te?w.textColor:Ae?w.textColorTertiary:w[de("color",ne)],q=V||oe;ye?(ze["--n-color"]=w.colorTertiary,ze["--n-color-hover"]=w.colorTertiaryHover,ze["--n-color-pressed"]=w.colorTertiaryPressed,ze["--n-color-focus"]=w.colorSecondaryHover,ze["--n-color-disabled"]=w.colorTertiary):(ze["--n-color"]=w.colorQuaternary,ze["--n-color-hover"]=w.colorQuaternaryHover,ze["--n-color-pressed"]=w.colorQuaternaryPressed,ze["--n-color-focus"]=w.colorQuaternaryHover,ze["--n-color-disabled"]=w.colorQuaternary),ze["--n-ripple-color"]="#0000",ze["--n-text-color"]=q,ze["--n-text-color-hover"]=q,ze["--n-text-color-pressed"]=q,ze["--n-text-color-focus"]=q,ze["--n-text-color-disabled"]=q}else ze={"--n-color":V||w[de("color",ne)],"--n-color-hover":V?Go(V):w[de("colorHover",ne)],"--n-color-pressed":V?pl(V):w[de("colorPressed",ne)],"--n-color-focus":V?Go(V):w[de("colorFocus",ne)],"--n-color-disabled":V||w[de("colorDisabled",ne)],"--n-ripple-color":V||w[de("rippleColor",ne)],"--n-text-color":J||(V?w.textColorPrimary:Ae?w.textColorTertiary:w[de("textColor",ne)]),"--n-text-color-hover":J||(V?w.textColorHoverPrimary:w[de("textColorHover",ne)]),"--n-text-color-pressed":J||(V?w.textColorPressedPrimary:w[de("textColorPressed",ne)]),"--n-text-color-focus":J||(V?w.textColorFocusPrimary:w[de("textColorFocus",ne)]),"--n-text-color-disabled":J||(V?w.textColorDisabledPrimary:w[de("textColorDisabled",ne)])};let Oe={"--n-border":"initial","--n-border-hover":"initial","--n-border-pressed":"initial","--n-border-focus":"initial","--n-border-disabled":"initial"};N?Oe={"--n-border":"none","--n-border-hover":"none","--n-border-pressed":"none","--n-border-focus":"none","--n-border-disabled":"none"}:Oe={"--n-border":w[de("border",ne)],"--n-border-hover":w[de("borderHover",ne)],"--n-border-pressed":w[de("borderPressed",ne)],"--n-border-focus":w[de("borderFocus",ne)],"--n-border-disabled":w[de("borderDisabled",ne)]};const{[de("height",T)]:z,[de("fontSize",T)]:L,[de("padding",T)]:ee,[de("paddingRound",T)]:se,[de("iconSize",T)]:ae,[de("borderRadius",T)]:Q,[de("iconMargin",T)]:ue,waveOpacity:ve}=w,fe={"--n-width":he&&!N?z:"initial","--n-height":N?"initial":z,"--n-font-size":L,"--n-padding":he||N?"initial":ie?se:ee,"--n-icon-size":ae,"--n-icon-margin":ue,"--n-border-radius":N?"initial":he||ie?z:Q};return Object.assign(Object.assign(Object.assign(Object.assign({"--n-bezier":R,"--n-bezier-ease-out":C,"--n-ripple-duration":k,"--n-opacity-disabled":F,"--n-wave-opacity":ve},$e),ze),Oe),fe)}),S=l?vt("button",O(()=>{let x="";const{dashed:R,type:C,ghost:w,text:k,color:F,round:M,circle:_,textColor:T,secondary:B,tertiary:D,quaternary:K,strong:N}=e;R&&(x+="a"),w&&(x+="b"),k&&(x+="c"),M&&(x+="d"),_&&(x+="e"),B&&(x+="f"),D&&(x+="g"),K&&(x+="h"),N&&(x+="i"),F&&(x+=`j${Al(F)}`),T&&(x+=`k${Al(T)}`);const{value:V}=c;return x+=`l${V[0]}`,x+=`m${C[0]}`,x}),$,e):void 0;return{selfElRef:t,waveElRef:n,mergedClsPrefix:a,mergedFocusable:f,mergedSize:c,showBorder:r,enterPressed:o,rtlEnabled:y,handleMousedown:v,handleKeydown:p,handleBlur:b,handleKeyup:u,handleClick:g,customColorCssVars:O(()=>{const{color:x}=e;if(!x)return null;const R=Go(x);return{"--n-border-color":x,"--n-border-color-hover":R,"--n-border-color-pressed":pl(x),"--n-border-color-focus":R,"--n-border-color-disabled":x}}),cssVars:l?void 0:$,themeClass:S?.themeClass,onRender:S?.onRender}},render(){const{mergedClsPrefix:e,tag:t,onRender:n}=this;n?.();const o=lt(this.$slots.default,r=>r&&h("span",{class:`${e}-button__content`},r));return h(t,{ref:"selfElRef",class:[this.themeClass,`${e}-button`,`${e}-button--${this.type}-type`,`${e}-button--${this.mergedSize}-type`,this.rtlEnabled&&`${e}-button--rtl`,this.disabled&&`${e}-button--disabled`,this.block&&`${e}-button--block`,this.enterPressed&&`${e}-button--pressed`,!this.text&&this.dashed&&`${e}-button--dashed`,this.color&&`${e}-button--color`,this.secondary&&`${e}-button--secondary`,this.loading&&`${e}-button--loading`,this.ghost&&`${e}-button--ghost`],tabindex:this.mergedFocusable?0:-1,type:this.attrType,style:this.cssVars,disabled:this.disabled,onClick:this.handleClick,onBlur:this.handleBlur,onMousedown:this.handleMousedown,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},this.iconPlacement==="right"&&o,h($v,{width:!0},{default:()=>lt(this.$slots.icon,r=>(this.loading||this.renderIcon||r)&&h("span",{class:`${e}-button__icon`,style:{margin:Mr(this.$slots.default)?"0":""}},h(vr,null,{default:()=>this.loading?h(gr,Object.assign({clsPrefix:e,key:"loading",class:`${e}-icon-slot`,strokeWidth:20},this.spinProps)):h("div",{key:"icon",class:`${e}-icon-slot`,role:"none"},this.renderIcon?this.renderIcon():r)})))}),this.iconPlacement==="left"&&o,this.text?null:h(bP,{ref:"waveElRef",clsPrefix:e}),this.showBorder?h("div",{"aria-hidden":!0,class:`${e}-button__border`,style:this.customColorCssVars}):null,this.showBorder?h("div",{"aria-hidden":!0,class:`${e}-button__state-border`,style:this.customColorCssVars}):null)}}),AP={paddingSmall:"12px 16px 12px",paddingMedium:"19px 24px 20px",paddingLarge:"23px 32px 24px",paddingHuge:"27px 40px 28px",titleFontSizeSmall:"16px",titleFontSizeMedium:"18px",titleFontSizeLarge:"18px",titleFontSizeHuge:"18px",closeIconSize:"18px",closeSize:"22px"};function IP(e){const{primaryColor:t,borderRadius:n,lineHeight:o,fontSize:r,cardColor:i,textColor2:l,textColor1:a,dividerColor:s,fontWeightStrong:d,closeIconColor:c,closeIconColorHover:f,closeIconColorPressed:v,closeColorHover:g,closeColorPressed:u,modalColor:p,boxShadow1:b,popoverColor:m,actionColor:y}=e;return Object.assign(Object.assign({},AP),{lineHeight:o,color:i,colorModal:p,colorPopover:m,colorTarget:t,colorEmbedded:y,colorEmbeddedModal:y,colorEmbeddedPopover:y,textColor:l,titleTextColor:a,borderColor:s,actionColor:y,titleFontWeight:d,closeColorHover:g,closeColorPressed:u,closeBorderRadius:n,closeIconColor:c,closeIconColorHover:f,closeIconColorPressed:v,fontSizeSmall:r,fontSizeMedium:r,fontSizeLarge:r,fontSizeHuge:r,boxShadow:b,borderRadius:n})}const Wv={name:"Card",common:gt,self:IP},Pf=P("card-content",` + flex: 1; + min-width: 0; + box-sizing: border-box; + padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); + font-size: var(--n-font-size); +`),LP=I([P("card",` + font-size: var(--n-font-size); + line-height: var(--n-line-height); + display: flex; + flex-direction: column; + width: 100%; + box-sizing: border-box; + position: relative; + border-radius: var(--n-border-radius); + background-color: var(--n-color); + color: var(--n-text-color); + word-break: break-word; + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `,[mp({background:"var(--n-color-modal)"}),H("hoverable",[I("&:hover","box-shadow: var(--n-box-shadow);")]),H("content-segmented",[I(">",[P("card-content",` + padding-top: var(--n-padding-bottom); + `),j("content-scrollbar",[I(">",[P("scrollbar-container",[I(">",[P("card-content",` + padding-top: var(--n-padding-bottom); + `)])])])])])]),H("content-soft-segmented",[I(">",[P("card-content",` + margin: 0 var(--n-padding-left); + padding: var(--n-padding-bottom) 0; + `),j("content-scrollbar",[I(">",[P("scrollbar-container",[I(">",[P("card-content",` + margin: 0 var(--n-padding-left); + padding: var(--n-padding-bottom) 0; + `)])])])])])]),H("footer-segmented",[I(">",[j("footer",` + padding-top: var(--n-padding-bottom); + `)])]),H("footer-soft-segmented",[I(">",[j("footer",` + padding: var(--n-padding-bottom) 0; + margin: 0 var(--n-padding-left); + `)])]),I(">",[P("card-header",` + box-sizing: border-box; + display: flex; + align-items: center; + font-size: var(--n-title-font-size); + padding: + var(--n-padding-top) + var(--n-padding-left) + var(--n-padding-bottom) + var(--n-padding-left); + `,[j("main",` + font-weight: var(--n-title-font-weight); + transition: color .3s var(--n-bezier); + flex: 1; + min-width: 0; + color: var(--n-title-text-color); + `),j("extra",` + display: flex; + align-items: center; + font-size: var(--n-font-size); + font-weight: 400; + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + `),j("close",` + margin: 0 0 0 8px; + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `)]),j("action",` + box-sizing: border-box; + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + background-clip: padding-box; + background-color: var(--n-action-color); + `),Pf,P("card-content",[I("&:first-child",` + padding-top: var(--n-padding-bottom); + `)]),j("content-scrollbar",` + display: flex; + flex-direction: column; + `,[I(">",[P("scrollbar-container",[I(">",[Pf])])]),I("&:first-child >",[P("scrollbar-container",[I(">",[P("card-content",` + padding-top: var(--n-padding-bottom); + `)])])])]),j("footer",` + box-sizing: border-box; + padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); + font-size: var(--n-font-size); + `,[I("&:first-child",` + padding-top: var(--n-padding-bottom); + `)]),j("action",` + background-color: var(--n-action-color); + padding: var(--n-padding-bottom) var(--n-padding-left); + border-bottom-left-radius: var(--n-border-radius); + border-bottom-right-radius: var(--n-border-radius); + `)]),P("card-cover",` + overflow: hidden; + width: 100%; + border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; + `,[I("img",` + display: block; + width: 100%; + `)]),H("bordered",` + border: 1px solid var(--n-border-color); + `,[I("&:target","border-color: var(--n-color-target);")]),H("action-segmented",[I(">",[j("action",[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)])])]),H("content-segmented, content-soft-segmented",[I(">",[P("card-content",` + transition: border-color 0.3s var(--n-bezier); + `,[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)]),j("content-scrollbar",` + transition: border-color 0.3s var(--n-bezier); + `,[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)])])]),H("footer-segmented, footer-soft-segmented",[I(">",[j("footer",` + transition: border-color 0.3s var(--n-bezier); + `,[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)])])]),H("embedded",` + background-color: var(--n-color-embedded); + `)]),sa(P("card",` + background: var(--n-color-modal); + `,[H("embedded",` + background-color: var(--n-color-embedded-modal); + `)])),$d(P("card",` + background: var(--n-color-popover); + `,[H("embedded",` + background-color: var(--n-color-embedded-popover); + `)]))]),ic={title:[String,Function],contentClass:String,contentStyle:[Object,String],contentScrollable:Boolean,headerClass:String,headerStyle:[Object,String],headerExtraClass:String,headerExtraStyle:[Object,String],footerClass:String,footerStyle:[Object,String],embedded:Boolean,segmented:{type:[Boolean,Object],default:!1},size:String,bordered:{type:Boolean,default:!0},closable:Boolean,hoverable:Boolean,role:String,onClose:[Function,Array],tag:{type:String,default:"div"},cover:Function,content:[String,Function],footer:Function,action:Function,headerExtra:Function,closeFocusable:Boolean},DP=Gi(ic),HP=Object.assign(Object.assign({},Be.props),ic),co=pe({name:"Card",props:HP,slots:Object,setup(e){const t=()=>{const{onClose:f}=e;f&&me(f)},{inlineThemeDisabled:n,mergedClsPrefixRef:o,mergedRtlRef:r,mergedComponentPropsRef:i}=Ye(e),l=Be("Card","-card",LP,Wv,e,o),a=Bt("Card",r,o),s=O(()=>{var f,v;return e.size||((v=(f=i?.value)===null||f===void 0?void 0:f.Card)===null||v===void 0?void 0:v.size)||"medium"}),d=O(()=>{const f=s.value,{self:{color:v,colorModal:g,colorTarget:u,textColor:p,titleTextColor:b,titleFontWeight:m,borderColor:y,actionColor:$,borderRadius:S,lineHeight:x,closeIconColor:R,closeIconColorHover:C,closeIconColorPressed:w,closeColorHover:k,closeColorPressed:F,closeBorderRadius:M,closeIconSize:_,closeSize:T,boxShadow:B,colorPopover:D,colorEmbedded:K,colorEmbeddedModal:N,colorEmbeddedPopover:V,[de("padding",f)]:ie,[de("fontSize",f)]:he,[de("titleFontSize",f)]:J},common:{cubicBezierEaseInOut:re}}=l.value,{top:ye,left:Z,bottom:le}=Ft(ie);return{"--n-bezier":re,"--n-border-radius":S,"--n-color":v,"--n-color-modal":g,"--n-color-popover":D,"--n-color-embedded":K,"--n-color-embedded-modal":N,"--n-color-embedded-popover":V,"--n-color-target":u,"--n-text-color":p,"--n-line-height":x,"--n-action-color":$,"--n-title-text-color":b,"--n-title-font-weight":m,"--n-close-icon-color":R,"--n-close-icon-color-hover":C,"--n-close-icon-color-pressed":w,"--n-close-color-hover":k,"--n-close-color-pressed":F,"--n-border-color":y,"--n-box-shadow":B,"--n-padding-top":ye,"--n-padding-bottom":le,"--n-padding-left":Z,"--n-font-size":he,"--n-title-font-size":J,"--n-close-size":T,"--n-close-icon-size":_,"--n-close-border-radius":M}}),c=n?vt("card",O(()=>s.value[0]),d,e):void 0;return{rtlEnabled:a,mergedClsPrefix:o,mergedTheme:l,handleCloseClick:t,cssVars:n?void 0:d,themeClass:c?.themeClass,onRender:c?.onRender}},render(){const{segmented:e,bordered:t,hoverable:n,mergedClsPrefix:o,rtlEnabled:r,onRender:i,embedded:l,tag:a,$slots:s}=this;return i?.(),h(a,{class:[`${o}-card`,this.themeClass,l&&`${o}-card--embedded`,{[`${o}-card--rtl`]:r,[`${o}-card--content-scrollable`]:this.contentScrollable,[`${o}-card--content${typeof e!="boolean"&&e.content==="soft"?"-soft":""}-segmented`]:e===!0||e!==!1&&e.content,[`${o}-card--footer${typeof e!="boolean"&&e.footer==="soft"?"-soft":""}-segmented`]:e===!0||e!==!1&&e.footer,[`${o}-card--action-segmented`]:e===!0||e!==!1&&e.action,[`${o}-card--bordered`]:t,[`${o}-card--hoverable`]:n}],style:this.cssVars,role:this.role},lt(s.cover,d=>{const c=this.cover?Rn([this.cover()]):d;return c&&h("div",{class:`${o}-card-cover`,role:"none"},c)}),lt(s.header,d=>{const{title:c}=this,f=c?Rn(typeof c=="function"?[c()]:[c]):d;return f||this.closable?h("div",{class:[`${o}-card-header`,this.headerClass],style:this.headerStyle,role:"heading"},h("div",{class:`${o}-card-header__main`,role:"heading"},f),lt(s["header-extra"],v=>{const g=this.headerExtra?Rn([this.headerExtra()]):v;return g&&h("div",{class:[`${o}-card-header__extra`,this.headerExtraClass],style:this.headerExtraStyle},g)}),this.closable&&h(Kr,{clsPrefix:o,class:`${o}-card-header__close`,onClick:this.handleCloseClick,focusable:this.closeFocusable,absolute:!0})):null}),lt(s.default,d=>{const{content:c}=this,f=c?Rn(typeof c=="function"?[c()]:[c]):d;return f?this.contentScrollable?h(bo,{class:`${o}-card__content-scrollbar`,contentClass:[`${o}-card-content`,this.contentClass],contentStyle:this.contentStyle},f):h("div",{class:[`${o}-card-content`,this.contentClass],style:this.contentStyle,role:"none"},f):null}),lt(s.footer,d=>{const c=this.footer?Rn([this.footer()]):d;return c&&h("div",{class:[`${o}-card__footer`,this.footerClass],style:this.footerStyle,role:"none"},c)}),lt(s.action,d=>{const c=this.action?Rn([this.action()]):d;return c&&h("div",{class:`${o}-card__action`,role:"none"},c)}))}}),NP={sizeSmall:"14px",sizeMedium:"16px",sizeLarge:"18px",labelPadding:"0 8px",labelFontWeight:"400"};function jP(e){const{baseColor:t,inputColorDisabled:n,cardColor:o,modalColor:r,popoverColor:i,textColorDisabled:l,borderColor:a,primaryColor:s,textColor2:d,fontSizeSmall:c,fontSizeMedium:f,fontSizeLarge:v,borderRadiusSmall:g,lineHeight:u}=e;return Object.assign(Object.assign({},NP),{labelLineHeight:u,fontSizeSmall:c,fontSizeMedium:f,fontSizeLarge:v,borderRadius:g,color:t,colorChecked:s,colorDisabled:n,colorDisabledChecked:n,colorTableHeader:o,colorTableHeaderModal:r,colorTableHeaderPopover:i,checkMarkColor:t,checkMarkColorDisabled:l,checkMarkColorDisabledChecked:l,border:`1px solid ${a}`,borderDisabled:`1px solid ${a}`,borderDisabledChecked:`1px solid ${a}`,borderChecked:`1px solid ${s}`,borderFocus:`1px solid ${s}`,boxShadowFocus:`0 0 0 2px ${Ue(s,{alpha:.3})}`,textColor:d,textColorDisabled:l})}const Vv={name:"Checkbox",common:gt,self:jP},Kv="n-checkbox-group",WP={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]},VP=pe({name:"CheckboxGroup",props:WP,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=No(e),{mergedSizeRef:o,mergedDisabledRef:r}=n,i=E(e.defaultValue),l=O(()=>e.value),a=qt(l,i),s=O(()=>{var f;return((f=a.value)===null||f===void 0?void 0:f.length)||0}),d=O(()=>Array.isArray(a.value)?new Set(a.value):new Set);function c(f,v){const{nTriggerFormInput:g,nTriggerFormChange:u}=n,{onChange:p,"onUpdate:value":b,onUpdateValue:m}=e;if(Array.isArray(a.value)){const y=Array.from(a.value),$=y.findIndex(S=>S===v);f?~$||(y.push(v),m&&me(m,y,{actionType:"check",value:v}),b&&me(b,y,{actionType:"check",value:v}),g(),u(),i.value=y,p&&me(p,y)):~$&&(y.splice($,1),m&&me(m,y,{actionType:"uncheck",value:v}),b&&me(b,y,{actionType:"uncheck",value:v}),p&&me(p,y),i.value=y,g(),u())}else f?(m&&me(m,[v],{actionType:"check",value:v}),b&&me(b,[v],{actionType:"check",value:v}),p&&me(p,[v]),i.value=[v],g(),u()):(m&&me(m,[],{actionType:"uncheck",value:v}),b&&me(b,[],{actionType:"uncheck",value:v}),p&&me(p,[]),i.value=[],g(),u())}return qe(Kv,{checkedCountRef:s,maxRef:we(e,"max"),minRef:we(e,"min"),valueSetRef:d,disabledRef:r,mergedSizeRef:o,toggleCheckbox:c}),{mergedClsPrefix:t}},render(){return h("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}}),KP=()=>h("svg",{viewBox:"0 0 64 64",class:"check-icon"},h("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"})),UP=()=>h("svg",{viewBox:"0 0 100 100",class:"line-icon"},h("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"})),GP=I([P("checkbox",` + font-size: var(--n-font-size); + outline: none; + cursor: pointer; + display: inline-flex; + flex-wrap: nowrap; + align-items: flex-start; + word-break: break-word; + line-height: var(--n-size); + --n-merged-color-table: var(--n-color-table); + `,[H("show-label","line-height: var(--n-label-line-height);"),I("&:hover",[P("checkbox-box",[j("border","border: var(--n-border-checked);")])]),I("&:focus:not(:active)",[P("checkbox-box",[j("border",` + border: var(--n-border-focus); + box-shadow: var(--n-box-shadow-focus); + `)])]),H("inside-table",[P("checkbox-box",` + background-color: var(--n-merged-color-table); + `)]),H("checked",[P("checkbox-box",` + background-color: var(--n-color-checked); + `,[P("checkbox-icon",[I(".check-icon",` + opacity: 1; + transform: scale(1); + `)])])]),H("indeterminate",[P("checkbox-box",[P("checkbox-icon",[I(".check-icon",` + opacity: 0; + transform: scale(.5); + `),I(".line-icon",` + opacity: 1; + transform: scale(1); + `)])])]),H("checked, indeterminate",[I("&:focus:not(:active)",[P("checkbox-box",[j("border",` + border: var(--n-border-checked); + box-shadow: var(--n-box-shadow-focus); + `)])]),P("checkbox-box",` + background-color: var(--n-color-checked); + border-left: 0; + border-top: 0; + `,[j("border",{border:"var(--n-border-checked)"})])]),H("disabled",{cursor:"not-allowed"},[H("checked",[P("checkbox-box",` + background-color: var(--n-color-disabled-checked); + `,[j("border",{border:"var(--n-border-disabled-checked)"}),P("checkbox-icon",[I(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),P("checkbox-box",` + background-color: var(--n-color-disabled); + `,[j("border",` + border: var(--n-border-disabled); + `),P("checkbox-icon",[I(".check-icon, .line-icon",` + fill: var(--n-check-mark-color-disabled); + `)])]),j("label",` + color: var(--n-text-color-disabled); + `)]),P("checkbox-box-wrapper",` + position: relative; + width: var(--n-size); + flex-shrink: 0; + flex-grow: 0; + user-select: none; + -webkit-user-select: none; + `),P("checkbox-box",` + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + height: var(--n-size); + width: var(--n-size); + display: inline-block; + box-sizing: border-box; + border-radius: var(--n-border-radius); + background-color: var(--n-color); + transition: background-color 0.3s var(--n-bezier); + `,[j("border",` + transition: + border-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + border-radius: inherit; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border: var(--n-border); + `),P("checkbox-icon",` + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 1px; + right: 1px; + top: 1px; + bottom: 1px; + `,[I(".check-icon, .line-icon",` + width: 100%; + fill: var(--n-check-mark-color); + opacity: 0; + transform: scale(0.5); + transform-origin: center; + transition: + fill 0.3s var(--n-bezier), + transform 0.3s var(--n-bezier), + opacity 0.3s var(--n-bezier), + border-color 0.3s var(--n-bezier); + `),an({left:"1px",top:"1px"})])]),j("label",` + color: var(--n-text-color); + transition: color .3s var(--n-bezier); + user-select: none; + -webkit-user-select: none; + padding: var(--n-label-padding); + font-weight: var(--n-label-font-weight); + `,[I("&:empty",{display:"none"})])]),sa(P("checkbox",` + --n-merged-color-table: var(--n-color-table-modal); + `)),$d(P("checkbox",` + --n-merged-color-table: var(--n-color-table-popover); + `))]),qP=Object.assign(Object.assign({},Be.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]}),lc=pe({name:"Checkbox",props:qP,setup(e){const t=Ee(Kv,null),n=E(null),{mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:i,mergedComponentPropsRef:l}=Ye(e),a=E(e.defaultChecked),d=qt(we(e,"checked"),a),c=ot(()=>{if(t){const C=t.valueSetRef.value;return C&&e.value!==void 0?C.has(e.value):!1}else return d.value===e.checkedValue}),f=No(e,{mergedSize(C){var w,k;const{size:F}=e;if(F!==void 0)return F;if(t){const{value:_}=t.mergedSizeRef;if(_!==void 0)return _}if(C){const{mergedSize:_}=C;if(_!==void 0)return _.value}const M=(k=(w=l?.value)===null||w===void 0?void 0:w.Checkbox)===null||k===void 0?void 0:k.size;return M||"medium"},mergedDisabled(C){const{disabled:w}=e;if(w!==void 0)return w;if(t){if(t.disabledRef.value)return!0;const{maxRef:{value:k},checkedCountRef:F}=t;if(k!==void 0&&F.value>=k&&!c.value)return!0;const{minRef:{value:M}}=t;if(M!==void 0&&F.value<=M&&c.value)return!0}return C?C.disabled.value:!1}}),{mergedDisabledRef:v,mergedSizeRef:g}=f,u=Be("Checkbox","-checkbox",GP,Vv,e,o);function p(C){if(t&&e.value!==void 0)t.toggleCheckbox(!c.value,e.value);else{const{onChange:w,"onUpdate:checked":k,onUpdateChecked:F}=e,{nTriggerFormInput:M,nTriggerFormChange:_}=f,T=c.value?e.uncheckedValue:e.checkedValue;k&&me(k,T,C),F&&me(F,T,C),w&&me(w,T,C),M(),_(),a.value=T}}function b(C){v.value||p(C)}function m(C){if(!v.value)switch(C.key){case" ":case"Enter":p(C)}}function y(C){C.key===" "&&C.preventDefault()}const $={focus:()=>{var C;(C=n.value)===null||C===void 0||C.focus()},blur:()=>{var C;(C=n.value)===null||C===void 0||C.blur()}},S=Bt("Checkbox",i,o),x=O(()=>{const{value:C}=g,{common:{cubicBezierEaseInOut:w},self:{borderRadius:k,color:F,colorChecked:M,colorDisabled:_,colorTableHeader:T,colorTableHeaderModal:B,colorTableHeaderPopover:D,checkMarkColor:K,checkMarkColorDisabled:N,border:V,borderFocus:ie,borderDisabled:he,borderChecked:J,boxShadowFocus:re,textColor:ye,textColorDisabled:Z,checkMarkColorDisabledChecked:le,colorDisabledChecked:$e,borderDisabledChecked:ze,labelPadding:Ae,labelLineHeight:Te,labelFontWeight:ne,[de("fontSize",C)]:Oe,[de("size",C)]:z}}=u.value;return{"--n-label-line-height":Te,"--n-label-font-weight":ne,"--n-size":z,"--n-bezier":w,"--n-border-radius":k,"--n-border":V,"--n-border-checked":J,"--n-border-focus":ie,"--n-border-disabled":he,"--n-border-disabled-checked":ze,"--n-box-shadow-focus":re,"--n-color":F,"--n-color-checked":M,"--n-color-table":T,"--n-color-table-modal":B,"--n-color-table-popover":D,"--n-color-disabled":_,"--n-color-disabled-checked":$e,"--n-text-color":ye,"--n-text-color-disabled":Z,"--n-check-mark-color":K,"--n-check-mark-color-disabled":N,"--n-check-mark-color-disabled-checked":le,"--n-font-size":Oe,"--n-label-padding":Ae}}),R=r?vt("checkbox",O(()=>g.value[0]),x,e):void 0;return Object.assign(f,$,{rtlEnabled:S,selfRef:n,mergedClsPrefix:o,mergedDisabled:v,renderedChecked:c,mergedTheme:u,labelId:ar(),handleClick:b,handleKeyUp:m,handleKeyDown:y,cssVars:r?void 0:x,themeClass:R?.themeClass,onRender:R?.onRender})},render(){var e;const{$slots:t,renderedChecked:n,mergedDisabled:o,indeterminate:r,privateInsideTable:i,cssVars:l,labelId:a,label:s,mergedClsPrefix:d,focusable:c,handleKeyUp:f,handleKeyDown:v,handleClick:g}=this;(e=this.onRender)===null||e===void 0||e.call(this);const u=lt(t.default,p=>s||p?h("span",{class:`${d}-checkbox__label`,id:a},s||p):null);return h("div",{ref:"selfRef",class:[`${d}-checkbox`,this.themeClass,this.rtlEnabled&&`${d}-checkbox--rtl`,n&&`${d}-checkbox--checked`,o&&`${d}-checkbox--disabled`,r&&`${d}-checkbox--indeterminate`,i&&`${d}-checkbox--inside-table`,u&&`${d}-checkbox--show-label`],tabindex:o||!c?void 0:0,role:"checkbox","aria-checked":r?"mixed":n,"aria-labelledby":a,style:l,onKeyup:f,onKeydown:v,onClick:g,onMousedown:()=>{ct("selectstart",window,p=>{p.preventDefault()},{once:!0})}},h("div",{class:`${d}-checkbox-box-wrapper`}," ",h("div",{class:`${d}-checkbox-box`},h(vr,null,{default:()=>this.indeterminate?h("div",{key:"indeterminate",class:`${d}-checkbox-icon`},UP()):h("div",{key:"check",class:`${d}-checkbox-icon`},KP())}),h("div",{class:`${d}-checkbox-box__border`}))),u)}}),XP={abstract:Boolean,bordered:{type:Boolean,default:void 0},clsPrefix:String,locale:Object,dateLocale:Object,namespace:String,rtl:Array,tag:{type:String,default:"div"},hljs:Object,katex:Object,theme:Object,themeOverrides:Object,componentOptions:Object,icons:Object,breakpoints:Object,preflightStyleDisabled:Boolean,styleMountTarget:Object,inlineThemeDisabled:{type:Boolean,default:void 0},as:{type:String,validator:()=>(Zn("config-provider","`as` is deprecated, please use `tag` instead."),!0),default:void 0}},Uv=pe({name:"ConfigProvider",alias:["App"],props:XP,setup(e){const t=Ee(Fn,null),n=O(()=>{const{theme:p}=e;if(p===null)return;const b=t?.mergedThemeRef.value;return p===void 0?b:b===void 0?p:Object.assign({},b,p)}),o=O(()=>{const{themeOverrides:p}=e;if(p!==null){if(p===void 0)return t?.mergedThemeOverridesRef.value;{const b=t?.mergedThemeOverridesRef.value;return b===void 0?p:hi({},b,p)}}}),r=ot(()=>{const{namespace:p}=e;return p===void 0?t?.mergedNamespaceRef.value:p}),i=ot(()=>{const{bordered:p}=e;return p===void 0?t?.mergedBorderedRef.value:p}),l=O(()=>{const{icons:p}=e;return p===void 0?t?.mergedIconsRef.value:p}),a=O(()=>{const{componentOptions:p}=e;return p!==void 0?p:t?.mergedComponentPropsRef.value}),s=O(()=>{const{clsPrefix:p}=e;return p!==void 0?p:t?t.mergedClsPrefixRef.value:Il}),d=O(()=>{var p;const{rtl:b}=e;if(b===void 0)return t?.mergedRtlRef.value;const m={};for(const y of b)m[y.name]=_s(y),(p=y.peers)===null||p===void 0||p.forEach($=>{$.name in m||(m[$.name]=_s($))});return m}),c=O(()=>e.breakpoints||t?.mergedBreakpointsRef.value),f=e.inlineThemeDisabled||t?.inlineThemeDisabled,v=e.preflightStyleDisabled||t?.preflightStyleDisabled,g=e.styleMountTarget||t?.styleMountTarget,u=O(()=>{const{value:p}=n,{value:b}=o,m=b&&Object.keys(b).length!==0,y=p?.name;return y?m?`${y}-${Mi(JSON.stringify(o.value))}`:y:m?Mi(JSON.stringify(o.value)):""});return qe(Fn,{mergedThemeHashRef:u,mergedBreakpointsRef:c,mergedRtlRef:d,mergedIconsRef:l,mergedComponentPropsRef:a,mergedBorderedRef:i,mergedNamespaceRef:r,mergedClsPrefixRef:s,mergedLocaleRef:O(()=>{const{locale:p}=e;if(p!==null)return p===void 0?t?.mergedLocaleRef.value:p}),mergedDateLocaleRef:O(()=>{const{dateLocale:p}=e;if(p!==null)return p===void 0?t?.mergedDateLocaleRef.value:p}),mergedHljsRef:O(()=>{const{hljs:p}=e;return p===void 0?t?.mergedHljsRef.value:p}),mergedKatexRef:O(()=>{const{katex:p}=e;return p===void 0?t?.mergedKatexRef.value:p}),mergedThemeRef:n,mergedThemeOverridesRef:o,inlineThemeDisabled:f||!1,preflightStyleDisabled:v||!1,styleMountTarget:g}),{mergedClsPrefix:s,mergedBordered:i,mergedNamespace:r,mergedTheme:n,mergedThemeOverrides:o}},render(){var e,t,n,o;return this.abstract?(o=(n=this.$slots).default)===null||o===void 0?void 0:o.call(n):h(this.as||this.tag,{class:`${this.mergedClsPrefix||Il}-config-provider`},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});function YP(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const ac={name:"Popselect",common:gt,peers:{Popover:Ur,InternalSelectMenu:oc},self:YP},Gv="n-popselect",ZP=P("popselect-menu",` + box-shadow: var(--n-menu-box-shadow); +`),sc={multiple:Boolean,value:{type:[String,Number,Array],default:null},cancelable:Boolean,options:{type:Array,default:()=>[]},size:String,scrollable:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onMouseenter:Function,onMouseleave:Function,renderLabel:Function,showCheckmark:{type:Boolean,default:void 0},nodeProps:Function,virtualScroll:Boolean,onChange:[Function,Array]},$f=Gi(sc),JP=pe({name:"PopselectPanel",props:sc,setup(e){const t=Ee(Gv),{mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedComponentPropsRef:r}=Ye(e),i=O(()=>{var u,p;return e.size||((p=(u=r?.value)===null||u===void 0?void 0:u.Popselect)===null||p===void 0?void 0:p.size)||"medium"}),l=Be("Popselect","-pop-select",ZP,ac,t.props,n),a=O(()=>ba(e.options,jv("value","children")));function s(u,p){const{onUpdateValue:b,"onUpdate:value":m,onChange:y}=e;b&&me(b,u,p),m&&me(m,u,p),y&&me(y,u,p)}function d(u){f(u.key)}function c(u){!yn(u,"action")&&!yn(u,"empty")&&!yn(u,"header")&&u.preventDefault()}function f(u){const{value:{getNode:p}}=a;if(e.multiple)if(Array.isArray(e.value)){const b=[],m=[];let y=!0;e.value.forEach($=>{if($===u){y=!1;return}const S=p($);S&&(b.push(S.key),m.push(S.rawNode))}),y&&(b.push(u),m.push(p(u).rawNode)),s(b,m)}else{const b=p(u);b&&s([u],[b.rawNode])}else if(e.value===u&&e.cancelable)s(null,null);else{const b=p(u);b&&s(u,b.rawNode);const{"onUpdate:show":m,onUpdateShow:y}=t.props;m&&me(m,!1),y&&me(y,!1),t.setShow(!1)}Rt(()=>{t.syncPosition()})}tt(we(e,"options"),()=>{Rt(()=>{t.syncPosition()})});const v=O(()=>{const{self:{menuBoxShadow:u}}=l.value;return{"--n-menu-box-shadow":u}}),g=o?vt("select",void 0,v,t.props):void 0;return{mergedTheme:t.mergedThemeRef,mergedClsPrefix:n,treeMate:a,handleToggle:d,handleMenuMousedown:c,cssVars:o?void 0:v,themeClass:g?.themeClass,onRender:g?.onRender,mergedSize:i,scrollbarProps:t.props.scrollbarProps}},render(){var e;return(e=this.onRender)===null||e===void 0||e.call(this),h(Ev,{clsPrefix:this.mergedClsPrefix,focusable:!0,nodeProps:this.nodeProps,class:[`${this.mergedClsPrefix}-popselect-menu`,this.themeClass],style:this.cssVars,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,multiple:this.multiple,treeMate:this.treeMate,size:this.mergedSize,value:this.value,virtualScroll:this.virtualScroll,scrollable:this.scrollable,scrollbarProps:this.scrollbarProps,renderLabel:this.renderLabel,onToggle:this.handleToggle,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseenter,onMousedown:this.handleMenuMousedown,showCheckmark:this.showCheckmark},{header:()=>{var t,n;return((n=(t=this.$slots).header)===null||n===void 0?void 0:n.call(t))||[]},action:()=>{var t,n;return((n=(t=this.$slots).action)===null||n===void 0?void 0:n.call(t))||[]},empty:()=>{var t,n;return((n=(t=this.$slots).empty)===null||n===void 0?void 0:n.call(t))||[]}})}}),QP=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Be.props),dr(Nr,["showArrow","arrow"])),{placement:Object.assign(Object.assign({},Nr.placement),{default:"bottom"}),trigger:{type:String,default:"hover"}}),sc),{scrollbarProps:Object}),e$=pe({name:"Popselect",props:QP,slots:Object,inheritAttrs:!1,__popover__:!0,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=Be("Popselect","-popselect",void 0,ac,e,t),o=E(null);function r(){var a;(a=o.value)===null||a===void 0||a.syncPosition()}function i(a){var s;(s=o.value)===null||s===void 0||s.setShow(a)}return qe(Gv,{props:e,mergedThemeRef:n,syncPosition:r,setShow:i}),Object.assign(Object.assign({},{syncPosition:r,setShow:i}),{popoverInstRef:o,mergedTheme:n})},render(){const{mergedTheme:e}=this,t={theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:{padding:"0"},ref:"popoverInstRef",internalRenderBody:(n,o,r,i,l)=>{const{$attrs:a}=this;return h(JP,Object.assign({},a,{class:[a.class,n],style:[a.style,...r]},Eo(this.$props,$f),{ref:qp(o),onMouseenter:Si([i,a.onMouseenter]),onMouseleave:Si([l,a.onMouseleave])}),{header:()=>{var s,d;return(d=(s=this.$slots).header)===null||d===void 0?void 0:d.call(s)},action:()=>{var s,d;return(d=(s=this.$slots).action)===null||d===void 0?void 0:d.call(s)},empty:()=>{var s,d;return(d=(s=this.$slots).empty)===null||d===void 0?void 0:d.call(s)}})}};return h(Zi,Object.assign({},dr(this.$props,$f),t,{internalDeactivateImmediately:!0}),{trigger:()=>{var n,o;return(o=(n=this.$slots).default)===null||o===void 0?void 0:o.call(n)}})}});function t$(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const qv={name:"Select",common:gt,peers:{InternalSelection:Iv,InternalSelectMenu:oc},self:t$},n$=I([P("select",` + z-index: auto; + outline: none; + width: 100%; + position: relative; + font-weight: var(--n-font-weight); + `),P("select-menu",` + margin: 4px 0; + box-shadow: var(--n-menu-box-shadow); + `,[Yi({originalTransition:"background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)"})])]),o$=Object.assign(Object.assign({},Be.props),{to:Yn.propTo,bordered:{type:Boolean,default:void 0},clearable:Boolean,clearCreatedOptionsOnClear:{type:Boolean,default:!0},clearFilterAfterSelect:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},defaultValue:{type:[String,Number,Array],default:null},keyboard:{type:Boolean,default:!0},value:[String,Number,Array],placeholder:String,menuProps:Object,multiple:Boolean,size:String,menuSize:{type:String},filterable:Boolean,disabled:{type:Boolean,default:void 0},remote:Boolean,loading:Boolean,filter:Function,placement:{type:String,default:"bottom-start"},widthMode:{type:String,default:"trigger"},tag:Boolean,onCreate:Function,fallbackOption:{type:[Function,Boolean],default:void 0},show:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:!0},maxTagCount:[Number,String],ellipsisTagPopoverProps:Object,consistentMenuWidth:{type:Boolean,default:!0},virtualScroll:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},childrenField:{type:String,default:"children"},renderLabel:Function,renderOption:Function,renderTag:Function,"onUpdate:value":[Function,Array],inputProps:Object,nodeProps:Function,ignoreComposition:{type:Boolean,default:!0},showOnFocus:Boolean,onUpdateValue:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onFocus:[Function,Array],onScroll:[Function,Array],onSearch:[Function,Array],onUpdateShow:[Function,Array],"onUpdate:show":[Function,Array],displayDirective:{type:String,default:"show"},resetMenuOnOptionsChange:{type:Boolean,default:!0},status:String,showCheckmark:{type:Boolean,default:!0},scrollbarProps:Object,onChange:[Function,Array],items:Array}),zo=pe({name:"Select",props:o$,slots:Object,setup(e){const{mergedClsPrefixRef:t,mergedBorderedRef:n,namespaceRef:o,inlineThemeDisabled:r,mergedComponentPropsRef:i}=Ye(e),l=Be("Select","-select",n$,qv,e,t),a=E(e.defaultValue),d=qt(we(e,"value"),a),c=E(!1),f=E(""),v=Bl(e,["items","options"]),g=E([]),u=E([]),p=O(()=>u.value.concat(g.value).concat(v.value)),b=O(()=>{const{filter:A}=e;if(A)return A;const{labelField:X,valueField:be}=e;return(_e,xe)=>{if(!xe)return!1;const ke=xe[X];if(typeof ke=="string")return gs(_e,ke);const Ce=xe[be];return typeof Ce=="string"?gs(_e,Ce):typeof Ce=="number"?gs(_e,String(Ce)):!1}}),m=O(()=>{if(e.remote)return v.value;{const{value:A}=p,{value:X}=f;return!X.length||!e.filterable?A:zP(A,b.value,X,e.childrenField)}}),y=O(()=>{const{valueField:A,childrenField:X}=e,be=jv(A,X);return ba(m.value,be)}),$=O(()=>TP(p.value,e.valueField,e.childrenField)),S=E(!1),x=qt(we(e,"show"),S),R=E(null),C=E(null),w=E(null),{localeRef:k}=Xi("Select"),F=O(()=>{var A;return(A=e.placeholder)!==null&&A!==void 0?A:k.value.placeholder}),M=[],_=E(new Map),T=O(()=>{const{fallbackOption:A}=e;if(A===void 0){const{labelField:X,valueField:be}=e;return _e=>({[X]:String(_e),[be]:_e})}return A===!1?!1:X=>Object.assign(A(X),{value:X})});function B(A){const X=e.remote,{value:be}=_,{value:_e}=$,{value:xe}=T,ke=[];return A.forEach(Ce=>{if(_e.has(Ce))ke.push(_e.get(Ce));else if(X&&be.has(Ce))ke.push(be.get(Ce));else if(xe){const Fe=xe(Ce);Fe&&ke.push(Fe)}}),ke}const D=O(()=>{if(e.multiple){const{value:A}=d;return Array.isArray(A)?B(A):[]}return null}),K=O(()=>{const{value:A}=d;return!e.multiple&&!Array.isArray(A)?A===null?null:B([A])[0]||null:null}),N=No(e,{mergedSize:A=>{var X,be;const{size:_e}=e;if(_e)return _e;const{mergedSize:xe}=A||{};if(xe?.value)return xe.value;const ke=(be=(X=i?.value)===null||X===void 0?void 0:X.Select)===null||be===void 0?void 0:be.size;return ke||"medium"}}),{mergedSizeRef:V,mergedDisabledRef:ie,mergedStatusRef:he}=N;function J(A,X){const{onChange:be,"onUpdate:value":_e,onUpdateValue:xe}=e,{nTriggerFormChange:ke,nTriggerFormInput:Ce}=N;be&&me(be,A,X),xe&&me(xe,A,X),_e&&me(_e,A,X),a.value=A,ke(),Ce()}function re(A){const{onBlur:X}=e,{nTriggerFormBlur:be}=N;X&&me(X,A),be()}function ye(){const{onClear:A}=e;A&&me(A)}function Z(A){const{onFocus:X,showOnFocus:be}=e,{nTriggerFormFocus:_e}=N;X&&me(X,A),_e(),be&&Te()}function le(A){const{onSearch:X}=e;X&&me(X,A)}function $e(A){const{onScroll:X}=e;X&&me(X,A)}function ze(){var A;const{remote:X,multiple:be}=e;if(X){const{value:_e}=_;if(be){const{valueField:xe}=e;(A=D.value)===null||A===void 0||A.forEach(ke=>{_e.set(ke[xe],ke)})}else{const xe=K.value;xe&&_e.set(xe[e.valueField],xe)}}}function Ae(A){const{onUpdateShow:X,"onUpdate:show":be}=e;X&&me(X,A),be&&me(be,A),S.value=A}function Te(){ie.value||(Ae(!0),S.value=!0,e.filterable&&at())}function ne(){Ae(!1)}function Oe(){f.value="",u.value=M}const z=E(!1);function L(){e.filterable&&(z.value=!0)}function ee(){e.filterable&&(z.value=!1,x.value||Oe())}function se(){ie.value||(x.value?e.filterable?at():ne():Te())}function ae(A){var X,be;!((be=(X=w.value)===null||X===void 0?void 0:X.selfRef)===null||be===void 0)&&be.contains(A.relatedTarget)||(c.value=!1,re(A),ne())}function Q(A){Z(A),c.value=!0}function ue(){c.value=!0}function ve(A){var X;!((X=R.value)===null||X===void 0)&&X.$el.contains(A.relatedTarget)||(c.value=!1,re(A),ne())}function fe(){var A;(A=R.value)===null||A===void 0||A.focus(),ne()}function oe(A){var X;x.value&&(!((X=R.value)===null||X===void 0)&&X.$el.contains(Dr(A))||ne())}function q(A){if(!Array.isArray(A))return[];if(T.value)return Array.from(A);{const{remote:X}=e,{value:be}=$;if(X){const{value:_e}=_;return A.filter(xe=>be.has(xe)||_e.has(xe))}else return A.filter(_e=>be.has(_e))}}function G(A){W(A.rawNode)}function W(A){if(ie.value)return;const{tag:X,remote:be,clearFilterAfterSelect:_e,valueField:xe}=e;if(X&&!be){const{value:ke}=u,Ce=ke[0]||null;if(Ce){const Fe=g.value;Fe.length?Fe.push(Ce):g.value=[Ce],u.value=M}}if(be&&_.value.set(A[xe],A),e.multiple){const ke=q(d.value),Ce=ke.findIndex(Fe=>Fe===A[xe]);if(~Ce){if(ke.splice(Ce,1),X&&!be){const Fe=Y(A[xe]);~Fe&&(g.value.splice(Fe,1),_e&&(f.value=""))}}else ke.push(A[xe]),_e&&(f.value="");J(ke,B(ke))}else{if(X&&!be){const ke=Y(A[xe]);~ke?g.value=[g.value[ke]]:g.value=M}Xe(),ne(),J(A[xe],A)}}function Y(A){return g.value.findIndex(be=>be[e.valueField]===A)}function Se(A){x.value||Te();const{value:X}=A.target;f.value=X;const{tag:be,remote:_e}=e;if(le(X),be&&!_e){if(!X){u.value=M;return}const{onCreate:xe}=e,ke=xe?xe(X):{[e.labelField]:X,[e.valueField]:X},{valueField:Ce,labelField:Fe}=e;v.value.some(Ze=>Ze[Ce]===ke[Ce]||Ze[Fe]===ke[Fe])||g.value.some(Ze=>Ze[Ce]===ke[Ce]||Ze[Fe]===ke[Fe])?u.value=M:u.value=[ke]}}function Le(A){A.stopPropagation();const{multiple:X,tag:be,remote:_e,clearCreatedOptionsOnClear:xe}=e;!X&&e.filterable&&ne(),be&&!_e&&xe&&(g.value=M),ye(),X?J([],[]):J(null,null)}function Ie(A){!yn(A,"action")&&!yn(A,"empty")&&!yn(A,"header")&&A.preventDefault()}function De(A){$e(A)}function Ge(A){var X,be,_e,xe,ke;if(!e.keyboard){A.preventDefault();return}switch(A.key){case" ":if(e.filterable)break;A.preventDefault();case"Enter":if(!(!((X=R.value)===null||X===void 0)&&X.isComposing)){if(x.value){const Ce=(be=w.value)===null||be===void 0?void 0:be.getPendingTmNode();Ce?G(Ce):e.filterable||(ne(),Xe())}else if(Te(),e.tag&&z.value){const Ce=u.value[0];if(Ce){const Fe=Ce[e.valueField],{value:Ze}=d;e.multiple&&Array.isArray(Ze)&&Ze.includes(Fe)||W(Ce)}}}A.preventDefault();break;case"ArrowUp":if(A.preventDefault(),e.loading)return;x.value&&((_e=w.value)===null||_e===void 0||_e.prev());break;case"ArrowDown":if(A.preventDefault(),e.loading)return;x.value?(xe=w.value)===null||xe===void 0||xe.next():Te();break;case"Escape":x.value&&(Px(A),ne()),(ke=R.value)===null||ke===void 0||ke.focus();break}}function Xe(){var A;(A=R.value)===null||A===void 0||A.focus()}function at(){var A;(A=R.value)===null||A===void 0||A.focusInput()}function mt(){var A;x.value&&((A=C.value)===null||A===void 0||A.syncPosition())}ze(),tt(we(e,"options"),ze);const ft={focus:()=>{var A;(A=R.value)===null||A===void 0||A.focus()},focusInput:()=>{var A;(A=R.value)===null||A===void 0||A.focusInput()},blur:()=>{var A;(A=R.value)===null||A===void 0||A.blur()},blurInput:()=>{var A;(A=R.value)===null||A===void 0||A.blurInput()}},Re=O(()=>{const{self:{menuBoxShadow:A}}=l.value;return{"--n-menu-box-shadow":A}}),te=r?vt("select",void 0,Re,e):void 0;return Object.assign(Object.assign({},ft),{mergedStatus:he,mergedClsPrefix:t,mergedBordered:n,namespace:o,treeMate:y,isMounted:jr(),triggerRef:R,menuRef:w,pattern:f,uncontrolledShow:S,mergedShow:x,adjustedTo:Yn(e),uncontrolledValue:a,mergedValue:d,followerRef:C,localizedPlaceholder:F,selectedOption:K,selectedOptions:D,mergedSize:V,mergedDisabled:ie,focused:c,activeWithoutMenuOpen:z,inlineThemeDisabled:r,onTriggerInputFocus:L,onTriggerInputBlur:ee,handleTriggerOrMenuResize:mt,handleMenuFocus:ue,handleMenuBlur:ve,handleMenuTabOut:fe,handleTriggerClick:se,handleToggle:G,handleDeleteOption:W,handlePatternInput:Se,handleClear:Le,handleTriggerBlur:ae,handleTriggerFocus:Q,handleKeydown:Ge,handleMenuAfterLeave:Oe,handleMenuClickOutside:oe,handleMenuScroll:De,handleMenuKeydown:Ge,handleMenuMousedown:Ie,mergedTheme:l,cssVars:r?void 0:Re,themeClass:te?.themeClass,onRender:te?.onRender})},render(){return h("div",{class:`${this.mergedClsPrefix}-select`},h(Ed,null,{default:()=>[h(Md,null,{default:()=>h(pP,{ref:"triggerRef",inlineThemeDisabled:this.inlineThemeDisabled,status:this.mergedStatus,inputProps:this.inputProps,clsPrefix:this.mergedClsPrefix,showArrow:this.showArrow,maxTagCount:this.maxTagCount,ellipsisTagPopoverProps:this.ellipsisTagPopoverProps,bordered:this.mergedBordered,active:this.activeWithoutMenuOpen||this.mergedShow,pattern:this.pattern,placeholder:this.localizedPlaceholder,selectedOption:this.selectedOption,selectedOptions:this.selectedOptions,multiple:this.multiple,renderTag:this.renderTag,renderLabel:this.renderLabel,filterable:this.filterable,clearable:this.clearable,disabled:this.mergedDisabled,size:this.mergedSize,theme:this.mergedTheme.peers.InternalSelection,labelField:this.labelField,valueField:this.valueField,themeOverrides:this.mergedTheme.peerOverrides.InternalSelection,loading:this.loading,focused:this.focused,onClick:this.handleTriggerClick,onDeleteOption:this.handleDeleteOption,onPatternInput:this.handlePatternInput,onClear:this.handleClear,onBlur:this.handleTriggerBlur,onFocus:this.handleTriggerFocus,onKeydown:this.handleKeydown,onPatternBlur:this.onTriggerInputBlur,onPatternFocus:this.onTriggerInputFocus,onResize:this.handleTriggerOrMenuResize,ignoreComposition:this.ignoreComposition},{arrow:()=>{var e,t;return[(t=(e=this.$slots).arrow)===null||t===void 0?void 0:t.call(e)]}})}),h(Ad,{ref:"followerRef",show:this.mergedShow,to:this.adjustedTo,teleportDisabled:this.adjustedTo===Yn.tdkey,containerClass:this.namespace,width:this.consistentMenuWidth?"target":void 0,minWidth:"target",placement:this.placement},{default:()=>h(pn,{name:"fade-in-scale-up-transition",appear:this.isMounted,onAfterLeave:this.handleMenuAfterLeave},{default:()=>{var e,t,n;return this.mergedShow||this.displayDirective==="show"?((e=this.onRender)===null||e===void 0||e.call(this),qn(h(Ev,Object.assign({},this.menuProps,{ref:"menuRef",onResize:this.handleTriggerOrMenuResize,inlineThemeDisabled:this.inlineThemeDisabled,virtualScroll:this.consistentMenuWidth&&this.virtualScroll,class:[`${this.mergedClsPrefix}-select-menu`,this.themeClass,(t=this.menuProps)===null||t===void 0?void 0:t.class],clsPrefix:this.mergedClsPrefix,focusable:!0,labelField:this.labelField,valueField:this.valueField,autoPending:!0,nodeProps:this.nodeProps,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,treeMate:this.treeMate,multiple:this.multiple,size:this.menuSize,renderOption:this.renderOption,renderLabel:this.renderLabel,value:this.mergedValue,style:[(n=this.menuProps)===null||n===void 0?void 0:n.style,this.cssVars],onToggle:this.handleToggle,onScroll:this.handleMenuScroll,onFocus:this.handleMenuFocus,onBlur:this.handleMenuBlur,onKeydown:this.handleMenuKeydown,onTabOut:this.handleMenuTabOut,onMousedown:this.handleMenuMousedown,show:this.mergedShow,showCheckmark:this.showCheckmark,resetMenuOnOptionsChange:this.resetMenuOnOptionsChange,scrollbarProps:this.scrollbarProps}),{empty:()=>{var o,r;return[(r=(o=this.$slots).empty)===null||r===void 0?void 0:r.call(o)]},header:()=>{var o,r;return[(r=(o=this.$slots).header)===null||r===void 0?void 0:r.call(o)]},action:()=>{var o,r;return[(r=(o=this.$slots).action)===null||r===void 0?void 0:r.call(o)]}}),this.displayDirective==="show"?[[Fo,this.mergedShow],[Ii,this.handleMenuClickOutside,void 0,{capture:!0}]]:[[Ii,this.handleMenuClickOutside,void 0,{capture:!0}]])):null}})})]}))}}),r$={itemPaddingSmall:"0 4px",itemMarginSmall:"0 0 0 8px",itemMarginSmallRtl:"0 8px 0 0",itemPaddingMedium:"0 4px",itemMarginMedium:"0 0 0 8px",itemMarginMediumRtl:"0 8px 0 0",itemPaddingLarge:"0 4px",itemMarginLarge:"0 0 0 8px",itemMarginLargeRtl:"0 8px 0 0",buttonIconSizeSmall:"14px",buttonIconSizeMedium:"16px",buttonIconSizeLarge:"18px",inputWidthSmall:"60px",selectWidthSmall:"unset",inputMarginSmall:"0 0 0 8px",inputMarginSmallRtl:"0 8px 0 0",selectMarginSmall:"0 0 0 8px",prefixMarginSmall:"0 8px 0 0",suffixMarginSmall:"0 0 0 8px",inputWidthMedium:"60px",selectWidthMedium:"unset",inputMarginMedium:"0 0 0 8px",inputMarginMediumRtl:"0 8px 0 0",selectMarginMedium:"0 0 0 8px",prefixMarginMedium:"0 8px 0 0",suffixMarginMedium:"0 0 0 8px",inputWidthLarge:"60px",selectWidthLarge:"unset",inputMarginLarge:"0 0 0 8px",inputMarginLargeRtl:"0 8px 0 0",selectMarginLarge:"0 0 0 8px",prefixMarginLarge:"0 8px 0 0",suffixMarginLarge:"0 0 0 8px"};function i$(e){const{textColor2:t,primaryColor:n,primaryColorHover:o,primaryColorPressed:r,inputColorDisabled:i,textColorDisabled:l,borderColor:a,borderRadius:s,fontSizeTiny:d,fontSizeSmall:c,fontSizeMedium:f,heightTiny:v,heightSmall:g,heightMedium:u}=e;return Object.assign(Object.assign({},r$),{buttonColor:"#0000",buttonColorHover:"#0000",buttonColorPressed:"#0000",buttonBorder:`1px solid ${a}`,buttonBorderHover:`1px solid ${a}`,buttonBorderPressed:`1px solid ${a}`,buttonIconColor:t,buttonIconColorHover:t,buttonIconColorPressed:t,itemTextColor:t,itemTextColorHover:o,itemTextColorPressed:r,itemTextColorActive:n,itemTextColorDisabled:l,itemColor:"#0000",itemColorHover:"#0000",itemColorPressed:"#0000",itemColorActive:"#0000",itemColorActiveHover:"#0000",itemColorDisabled:i,itemBorder:"1px solid #0000",itemBorderHover:"1px solid #0000",itemBorderPressed:"1px solid #0000",itemBorderActive:`1px solid ${n}`,itemBorderDisabled:`1px solid ${a}`,itemBorderRadius:s,itemSizeSmall:v,itemSizeMedium:g,itemSizeLarge:u,itemFontSizeSmall:d,itemFontSizeMedium:c,itemFontSizeLarge:f,jumperFontSizeSmall:d,jumperFontSizeMedium:c,jumperFontSizeLarge:f,jumperTextColor:t,jumperTextColorDisabled:l})}const Xv={name:"Pagination",common:gt,peers:{Select:qv,Input:Dv,Popselect:ac},self:i$},_f=` + background: var(--n-item-color-hover); + color: var(--n-item-text-color-hover); + border: var(--n-item-border-hover); +`,zf=[H("button",` + background: var(--n-button-color-hover); + border: var(--n-button-border-hover); + color: var(--n-button-icon-color-hover); + `)],l$=P("pagination",` + display: flex; + vertical-align: middle; + font-size: var(--n-item-font-size); + flex-wrap: nowrap; +`,[P("pagination-prefix",` + display: flex; + align-items: center; + margin: var(--n-prefix-margin); + `),P("pagination-suffix",` + display: flex; + align-items: center; + margin: var(--n-suffix-margin); + `),I("> *:not(:first-child)",` + margin: var(--n-item-margin); + `),P("select",` + width: var(--n-select-width); + `),I("&.transition-disabled",[P("pagination-item","transition: none!important;")]),P("pagination-quick-jumper",` + white-space: nowrap; + display: flex; + color: var(--n-jumper-text-color); + transition: color .3s var(--n-bezier); + align-items: center; + font-size: var(--n-jumper-font-size); + `,[P("input",` + margin: var(--n-input-margin); + width: var(--n-input-width); + `)]),P("pagination-item",` + position: relative; + cursor: pointer; + user-select: none; + -webkit-user-select: none; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + min-width: var(--n-item-size); + height: var(--n-item-size); + padding: var(--n-item-padding); + background-color: var(--n-item-color); + color: var(--n-item-text-color); + border-radius: var(--n-item-border-radius); + border: var(--n-item-border); + fill: var(--n-button-icon-color); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + fill .3s var(--n-bezier); + `,[H("button",` + background: var(--n-button-color); + color: var(--n-button-icon-color); + border: var(--n-button-border); + padding: 0; + `,[P("base-icon",` + font-size: var(--n-button-icon-size); + `)]),dt("disabled",[H("hover",_f,zf),I("&:hover",_f,zf),I("&:active",` + background: var(--n-item-color-pressed); + color: var(--n-item-text-color-pressed); + border: var(--n-item-border-pressed); + `,[H("button",` + background: var(--n-button-color-pressed); + border: var(--n-button-border-pressed); + color: var(--n-button-icon-color-pressed); + `)]),H("active",` + background: var(--n-item-color-active); + color: var(--n-item-text-color-active); + border: var(--n-item-border-active); + `,[I("&:hover",` + background: var(--n-item-color-active-hover); + `)])]),H("disabled",` + cursor: not-allowed; + color: var(--n-item-text-color-disabled); + `,[H("active, button",` + background-color: var(--n-item-color-disabled); + border: var(--n-item-border-disabled); + `)])]),H("disabled",` + cursor: not-allowed; + `,[P("pagination-quick-jumper",` + color: var(--n-jumper-text-color-disabled); + `)]),H("simple",` + display: flex; + align-items: center; + flex-wrap: nowrap; + `,[P("pagination-quick-jumper",[P("input",` + margin: 0; + `)])])]);function Yv(e){var t;if(!e)return 10;const{defaultPageSize:n}=e;if(n!==void 0)return n;const o=(t=e.pageSizes)===null||t===void 0?void 0:t[0];return typeof o=="number"?o:o?.value||10}function a$(e,t,n,o){let r=!1,i=!1,l=1,a=t;if(t===1)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:a,fastBackwardTo:l,items:[{type:"page",label:1,active:e===1,mayBeFastBackward:!1,mayBeFastForward:!1}]};if(t===2)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:a,fastBackwardTo:l,items:[{type:"page",label:1,active:e===1,mayBeFastBackward:!1,mayBeFastForward:!1},{type:"page",label:2,active:e===2,mayBeFastBackward:!0,mayBeFastForward:!1}]};const s=1,d=t;let c=e,f=e;const v=(n-5)/2;f+=Math.ceil(v),f=Math.min(Math.max(f,s+n-3),d-2),c-=Math.floor(v),c=Math.max(Math.min(c,d-n+3),s+2);let g=!1,u=!1;c>s+2&&(g=!0),f=s+1&&p.push({type:"page",label:s+1,mayBeFastBackward:!0,mayBeFastForward:!1,active:e===s+1});for(let b=c;b<=f;++b)p.push({type:"page",label:b,mayBeFastBackward:!1,mayBeFastForward:!1,active:e===b});return u?(i=!0,a=f+1,p.push({type:"fast-forward",active:!1,label:void 0,options:o?Tf(f+1,d-1):null})):f===d-2&&p[p.length-1].label!==d-1&&p.push({type:"page",mayBeFastForward:!0,mayBeFastBackward:!1,label:d-1,active:e===d-1}),p[p.length-1].label!==d&&p.push({type:"page",mayBeFastForward:!1,mayBeFastBackward:!1,label:d,active:e===d}),{hasFastBackward:r,hasFastForward:i,fastBackwardTo:l,fastForwardTo:a,items:p}}function Tf(e,t){const n=[];for(let o=e;o<=t;++o)n.push({label:`${o}`,value:o});return n}const s$=Object.assign(Object.assign({},Be.props),{simple:Boolean,page:Number,defaultPage:{type:Number,default:1},itemCount:Number,pageCount:Number,defaultPageCount:{type:Number,default:1},showSizePicker:Boolean,pageSize:Number,defaultPageSize:Number,pageSizes:{type:Array,default(){return[10]}},showQuickJumper:Boolean,size:String,disabled:Boolean,pageSlot:{type:Number,default:9},selectProps:Object,prev:Function,next:Function,goto:Function,prefix:Function,suffix:Function,label:Function,displayOrder:{type:Array,default:["pages","size-picker","quick-jumper"]},to:Yn.propTo,showQuickJumpDropdown:{type:Boolean,default:!0},scrollbarProps:Object,"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],onPageSizeChange:[Function,Array],onChange:[Function,Array]}),d$=pe({name:"Pagination",props:s$,slots:Object,setup(e){const{mergedComponentPropsRef:t,mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedRtlRef:r}=Ye(e),i=O(()=>{var ne,Oe;return e.size||((Oe=(ne=t?.value)===null||ne===void 0?void 0:ne.Pagination)===null||Oe===void 0?void 0:Oe.size)||"medium"}),l=Be("Pagination","-pagination",l$,Xv,e,n),{localeRef:a}=Xi("Pagination"),s=E(null),d=E(e.defaultPage),c=E(Yv(e)),f=qt(we(e,"page"),d),v=qt(we(e,"pageSize"),c),g=O(()=>{const{itemCount:ne}=e;if(ne!==void 0)return Math.max(1,Math.ceil(ne/v.value));const{pageCount:Oe}=e;return Oe!==void 0?Math.max(Oe,1):1}),u=E("");en(()=>{e.simple,u.value=String(f.value)});const p=E(!1),b=E(!1),m=E(!1),y=E(!1),$=()=>{e.disabled||(p.value=!0,K())},S=()=>{e.disabled||(p.value=!1,K())},x=()=>{b.value=!0,K()},R=()=>{b.value=!1,K()},C=ne=>{N(ne)},w=O(()=>a$(f.value,g.value,e.pageSlot,e.showQuickJumpDropdown));en(()=>{w.value.hasFastBackward?w.value.hasFastForward||(p.value=!1,m.value=!1):(b.value=!1,y.value=!1)});const k=O(()=>{const ne=a.value.selectionSuffix;return e.pageSizes.map(Oe=>typeof Oe=="number"?{label:`${Oe} / ${ne}`,value:Oe}:Oe)}),F=O(()=>{var ne,Oe;return((Oe=(ne=t?.value)===null||ne===void 0?void 0:ne.Pagination)===null||Oe===void 0?void 0:Oe.inputSize)||Iu(i.value)}),M=O(()=>{var ne,Oe;return((Oe=(ne=t?.value)===null||ne===void 0?void 0:ne.Pagination)===null||Oe===void 0?void 0:Oe.selectSize)||Iu(i.value)}),_=O(()=>(f.value-1)*v.value),T=O(()=>{const ne=f.value*v.value-1,{itemCount:Oe}=e;return Oe!==void 0&&ne>Oe-1?Oe-1:ne}),B=O(()=>{const{itemCount:ne}=e;return ne!==void 0?ne:(e.pageCount||1)*v.value}),D=Bt("Pagination",r,n);function K(){Rt(()=>{var ne;const{value:Oe}=s;Oe&&(Oe.classList.add("transition-disabled"),(ne=s.value)===null||ne===void 0||ne.offsetWidth,Oe.classList.remove("transition-disabled"))})}function N(ne){if(ne===f.value)return;const{"onUpdate:page":Oe,onUpdatePage:z,onChange:L,simple:ee}=e;Oe&&me(Oe,ne),z&&me(z,ne),L&&me(L,ne),d.value=ne,ee&&(u.value=String(ne))}function V(ne){if(ne===v.value)return;const{"onUpdate:pageSize":Oe,onUpdatePageSize:z,onPageSizeChange:L}=e;Oe&&me(Oe,ne),z&&me(z,ne),L&&me(L,ne),c.value=ne,g.value{f.value,v.value,K()});const Ae=O(()=>{const ne=i.value,{self:{buttonBorder:Oe,buttonBorderHover:z,buttonBorderPressed:L,buttonIconColor:ee,buttonIconColorHover:se,buttonIconColorPressed:ae,itemTextColor:Q,itemTextColorHover:ue,itemTextColorPressed:ve,itemTextColorActive:fe,itemTextColorDisabled:oe,itemColor:q,itemColorHover:G,itemColorPressed:W,itemColorActive:Y,itemColorActiveHover:Se,itemColorDisabled:Le,itemBorder:Ie,itemBorderHover:De,itemBorderPressed:Ge,itemBorderActive:Xe,itemBorderDisabled:at,itemBorderRadius:mt,jumperTextColor:ft,jumperTextColorDisabled:Re,buttonColor:te,buttonColorHover:A,buttonColorPressed:X,[de("itemPadding",ne)]:be,[de("itemMargin",ne)]:_e,[de("inputWidth",ne)]:xe,[de("selectWidth",ne)]:ke,[de("inputMargin",ne)]:Ce,[de("selectMargin",ne)]:Fe,[de("jumperFontSize",ne)]:Ze,[de("prefixMargin",ne)]:Lt,[de("suffixMargin",ne)]:Et,[de("itemSize",ne)]:Dt,[de("buttonIconSize",ne)]:zt,[de("itemFontSize",ne)]:Ht,[`${de("itemMargin",ne)}Rtl`]:on,[`${de("inputMargin",ne)}Rtl`]:Nt},common:{cubicBezierEaseInOut:Xt}}=l.value;return{"--n-prefix-margin":Lt,"--n-suffix-margin":Et,"--n-item-font-size":Ht,"--n-select-width":ke,"--n-select-margin":Fe,"--n-input-width":xe,"--n-input-margin":Ce,"--n-input-margin-rtl":Nt,"--n-item-size":Dt,"--n-item-text-color":Q,"--n-item-text-color-disabled":oe,"--n-item-text-color-hover":ue,"--n-item-text-color-active":fe,"--n-item-text-color-pressed":ve,"--n-item-color":q,"--n-item-color-hover":G,"--n-item-color-disabled":Le,"--n-item-color-active":Y,"--n-item-color-active-hover":Se,"--n-item-color-pressed":W,"--n-item-border":Ie,"--n-item-border-hover":De,"--n-item-border-disabled":at,"--n-item-border-active":Xe,"--n-item-border-pressed":Ge,"--n-item-padding":be,"--n-item-border-radius":mt,"--n-bezier":Xt,"--n-jumper-font-size":Ze,"--n-jumper-text-color":ft,"--n-jumper-text-color-disabled":Re,"--n-item-margin":_e,"--n-item-margin-rtl":on,"--n-button-icon-size":zt,"--n-button-icon-color":ee,"--n-button-icon-color-hover":se,"--n-button-icon-color-pressed":ae,"--n-button-color-hover":A,"--n-button-color":te,"--n-button-color-pressed":X,"--n-button-border":Oe,"--n-button-border-hover":z,"--n-button-border-pressed":L}}),Te=o?vt("pagination",O(()=>{let ne="";return ne+=i.value[0],ne}),Ae,e):void 0;return{rtlEnabled:D,mergedClsPrefix:n,locale:a,selfRef:s,mergedPage:f,pageItems:O(()=>w.value.items),mergedItemCount:B,jumperValue:u,pageSizeOptions:k,mergedPageSize:v,inputSize:F,selectSize:M,mergedTheme:l,mergedPageCount:g,startIndex:_,endIndex:T,showFastForwardMenu:m,showFastBackwardMenu:y,fastForwardActive:p,fastBackwardActive:b,handleMenuSelect:C,handleFastForwardMouseenter:$,handleFastForwardMouseleave:S,handleFastBackwardMouseenter:x,handleFastBackwardMouseleave:R,handleJumperInput:ze,handleBackwardClick:he,handleForwardClick:ie,handlePageItemClick:$e,handleSizePickerChange:ye,handleQuickJumperChange:le,cssVars:o?void 0:Ae,themeClass:Te?.themeClass,onRender:Te?.onRender}},render(){const{$slots:e,mergedClsPrefix:t,disabled:n,cssVars:o,mergedPage:r,mergedPageCount:i,pageItems:l,showSizePicker:a,showQuickJumper:s,mergedTheme:d,locale:c,inputSize:f,selectSize:v,mergedPageSize:g,pageSizeOptions:u,jumperValue:p,simple:b,prev:m,next:y,prefix:$,suffix:S,label:x,goto:R,handleJumperInput:C,handleSizePickerChange:w,handleBackwardClick:k,handlePageItemClick:F,handleForwardClick:M,handleQuickJumperChange:_,onRender:T}=this;T?.();const B=$||e.prefix,D=S||e.suffix,K=m||e.prev,N=y||e.next,V=x||e.label;return h("div",{ref:"selfRef",class:[`${t}-pagination`,this.themeClass,this.rtlEnabled&&`${t}-pagination--rtl`,n&&`${t}-pagination--disabled`,b&&`${t}-pagination--simple`],style:o},B?h("div",{class:`${t}-pagination-prefix`},B({page:r,pageSize:g,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null,this.displayOrder.map(ie=>{switch(ie){case"pages":return h(nt,null,h("div",{class:[`${t}-pagination-item`,!K&&`${t}-pagination-item--button`,(r<=1||r>i||n)&&`${t}-pagination-item--disabled`],onClick:k},K?K({page:r,pageSize:g,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount}):h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(vf,null):h(ff,null)})),b?h(nt,null,h("div",{class:`${t}-pagination-quick-jumper`},h(Br,{value:p,onUpdateValue:C,size:f,placeholder:"",disabled:n,theme:d.peers.Input,themeOverrides:d.peerOverrides.Input,onChange:_}))," /"," ",i):l.map((he,J)=>{let re,ye,Z;const{type:le}=he;switch(le){case"page":const ze=he.label;V?re=V({type:"page",node:ze,active:he.active}):re=ze;break;case"fast-forward":const Ae=this.fastForwardActive?h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(hf,null):h(pf,null)}):h(kt,{clsPrefix:t},{default:()=>h(gf,null)});V?re=V({type:"fast-forward",node:Ae,active:this.fastForwardActive||this.showFastForwardMenu}):re=Ae,ye=this.handleFastForwardMouseenter,Z=this.handleFastForwardMouseleave;break;case"fast-backward":const Te=this.fastBackwardActive?h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(pf,null):h(hf,null)}):h(kt,{clsPrefix:t},{default:()=>h(gf,null)});V?re=V({type:"fast-backward",node:Te,active:this.fastBackwardActive||this.showFastBackwardMenu}):re=Te,ye=this.handleFastBackwardMouseenter,Z=this.handleFastBackwardMouseleave;break}const $e=h("div",{key:J,class:[`${t}-pagination-item`,he.active&&`${t}-pagination-item--active`,le!=="page"&&(le==="fast-backward"&&this.showFastBackwardMenu||le==="fast-forward"&&this.showFastForwardMenu)&&`${t}-pagination-item--hover`,n&&`${t}-pagination-item--disabled`,le==="page"&&`${t}-pagination-item--clickable`],onClick:()=>{F(he)},onMouseenter:ye,onMouseleave:Z},re);if(le==="page"&&!he.mayBeFastBackward&&!he.mayBeFastForward)return $e;{const ze=he.type==="page"?he.mayBeFastBackward?"fast-backward":"fast-forward":he.type;return he.type!=="page"&&!he.options?$e:h(e$,{to:this.to,key:ze,disabled:n,trigger:"hover",virtualScroll:!0,style:{width:"60px"},theme:d.peers.Popselect,themeOverrides:d.peerOverrides.Popselect,builtinThemeOverrides:{peers:{InternalSelectMenu:{height:"calc(var(--n-option-height) * 4.6)"}}},nodeProps:()=>({style:{justifyContent:"center"}}),show:le==="page"?!1:le==="fast-backward"?this.showFastBackwardMenu:this.showFastForwardMenu,onUpdateShow:Ae=>{le!=="page"&&(Ae?le==="fast-backward"?this.showFastBackwardMenu=Ae:this.showFastForwardMenu=Ae:(this.showFastBackwardMenu=!1,this.showFastForwardMenu=!1))},options:he.type!=="page"&&he.options?he.options:[],onUpdateValue:this.handleMenuSelect,scrollable:!0,scrollbarProps:this.scrollbarProps,showCheckmark:!1},{default:()=>$e})}}),h("div",{class:[`${t}-pagination-item`,!N&&`${t}-pagination-item--button`,{[`${t}-pagination-item--disabled`]:r<1||r>=i||n}],onClick:M},N?N({page:r,pageSize:g,pageCount:i,itemCount:this.mergedItemCount,startIndex:this.startIndex,endIndex:this.endIndex}):h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(ff,null):h(vf,null)})));case"size-picker":return!b&&a?h(zo,Object.assign({consistentMenuWidth:!1,placeholder:"",showCheckmark:!1,to:this.to},this.selectProps,{size:v,options:u,value:g,disabled:n,scrollbarProps:this.scrollbarProps,theme:d.peers.Select,themeOverrides:d.peerOverrides.Select,onUpdateValue:w})):null;case"quick-jumper":return!b&&s?h("div",{class:`${t}-pagination-quick-jumper`},R?R():$n(this.$slots.goto,()=>[c.goto]),h(Br,{value:p,onUpdateValue:C,size:f,placeholder:"",disabled:n,theme:d.peers.Input,themeOverrides:d.peerOverrides.Input,onChange:_})):null;default:return null}}),D?h("div",{class:`${t}-pagination-suffix`},D({page:r,pageSize:g,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null)}}),c$={padding:"4px 0",optionIconSizeSmall:"14px",optionIconSizeMedium:"16px",optionIconSizeLarge:"16px",optionIconSizeHuge:"18px",optionSuffixWidthSmall:"14px",optionSuffixWidthMedium:"14px",optionSuffixWidthLarge:"16px",optionSuffixWidthHuge:"16px",optionIconSuffixWidthSmall:"32px",optionIconSuffixWidthMedium:"32px",optionIconSuffixWidthLarge:"36px",optionIconSuffixWidthHuge:"36px",optionPrefixWidthSmall:"14px",optionPrefixWidthMedium:"14px",optionPrefixWidthLarge:"16px",optionPrefixWidthHuge:"16px",optionIconPrefixWidthSmall:"36px",optionIconPrefixWidthMedium:"36px",optionIconPrefixWidthLarge:"40px",optionIconPrefixWidthHuge:"40px"};function u$(e){const{primaryColor:t,textColor2:n,dividerColor:o,hoverColor:r,popoverColor:i,invertedColor:l,borderRadius:a,fontSizeSmall:s,fontSizeMedium:d,fontSizeLarge:c,fontSizeHuge:f,heightSmall:v,heightMedium:g,heightLarge:u,heightHuge:p,textColor3:b,opacityDisabled:m}=e;return Object.assign(Object.assign({},c$),{optionHeightSmall:v,optionHeightMedium:g,optionHeightLarge:u,optionHeightHuge:p,borderRadius:a,fontSizeSmall:s,fontSizeMedium:d,fontSizeLarge:c,fontSizeHuge:f,optionTextColor:n,optionTextColorHover:n,optionTextColorActive:t,optionTextColorChildActive:t,color:i,dividerColor:o,suffixColor:n,prefixColor:n,optionColorHover:r,optionColorActive:Ue(t,{alpha:.1}),groupHeaderTextColor:b,optionTextColorInverted:"#BBB",optionTextColorHoverInverted:"#FFF",optionTextColorActiveInverted:"#FFF",optionTextColorChildActiveInverted:"#FFF",colorInverted:l,dividerColorInverted:"#BBB",suffixColorInverted:"#BBB",prefixColorInverted:"#BBB",optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:"#AAA",optionOpacityDisabled:m})}const Zv={name:"Dropdown",common:gt,peers:{Popover:Ur},self:u$},f$={padding:"8px 14px"};function h$(e){const{borderRadius:t,boxShadow2:n,baseColor:o}=e;return Object.assign(Object.assign({},f$),{borderRadius:t,boxShadow:n,color:rt(o,"rgba(0, 0, 0, .85)"),textColor:o})}const Jv={name:"Tooltip",common:gt,peers:{Popover:Ur},self:h$},Qv={name:"Ellipsis",common:gt,peers:{Tooltip:Jv}},p$={radioSizeSmall:"14px",radioSizeMedium:"16px",radioSizeLarge:"18px",labelPadding:"0 8px",labelFontWeight:"400"};function v$(e){const{borderColor:t,primaryColor:n,baseColor:o,textColorDisabled:r,inputColorDisabled:i,textColor2:l,opacityDisabled:a,borderRadius:s,fontSizeSmall:d,fontSizeMedium:c,fontSizeLarge:f,heightSmall:v,heightMedium:g,heightLarge:u,lineHeight:p}=e;return Object.assign(Object.assign({},p$),{labelLineHeight:p,buttonHeightSmall:v,buttonHeightMedium:g,buttonHeightLarge:u,fontSizeSmall:d,fontSizeMedium:c,fontSizeLarge:f,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${n}`,boxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${Ue(n,{alpha:.2})}`,boxShadowHover:`inset 0 0 0 1px ${n}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:o,colorDisabled:i,colorActive:"#0000",textColor:l,textColorDisabled:r,dotColorActive:n,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:n,buttonBorderColorHover:t,buttonColor:o,buttonColorActive:o,buttonTextColor:l,buttonTextColorActive:n,buttonTextColorHover:n,opacityDisabled:a,buttonBoxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${Ue(n,{alpha:.3})}`,buttonBoxShadowHover:"inset 0 0 0 1px #0000",buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:s})}const dc={name:"Radio",common:gt,self:v$},g$={thPaddingSmall:"8px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"8px",tdPaddingMedium:"12px",tdPaddingLarge:"12px",sorterSize:"15px",resizableContainerSize:"8px",resizableSize:"2px",filterSize:"15px",paginationMargin:"12px 0 0 0",emptyPadding:"48px 0",actionPadding:"8px 12px",actionButtonMargin:"0 8px 0 0"};function b$(e){const{cardColor:t,modalColor:n,popoverColor:o,textColor2:r,textColor1:i,tableHeaderColor:l,tableColorHover:a,iconColor:s,primaryColor:d,fontWeightStrong:c,borderRadius:f,lineHeight:v,fontSizeSmall:g,fontSizeMedium:u,fontSizeLarge:p,dividerColor:b,heightSmall:m,opacityDisabled:y,tableColorStriped:$}=e;return Object.assign(Object.assign({},g$),{actionDividerColor:b,lineHeight:v,borderRadius:f,fontSizeSmall:g,fontSizeMedium:u,fontSizeLarge:p,borderColor:rt(t,b),tdColorHover:rt(t,a),tdColorSorting:rt(t,a),tdColorStriped:rt(t,$),thColor:rt(t,l),thColorHover:rt(rt(t,l),a),thColorSorting:rt(rt(t,l),a),tdColor:t,tdTextColor:r,thTextColor:i,thFontWeight:c,thButtonColorHover:a,thIconColor:s,thIconColorActive:d,borderColorModal:rt(n,b),tdColorHoverModal:rt(n,a),tdColorSortingModal:rt(n,a),tdColorStripedModal:rt(n,$),thColorModal:rt(n,l),thColorHoverModal:rt(rt(n,l),a),thColorSortingModal:rt(rt(n,l),a),tdColorModal:n,borderColorPopover:rt(o,b),tdColorHoverPopover:rt(o,a),tdColorSortingPopover:rt(o,a),tdColorStripedPopover:rt(o,$),thColorPopover:rt(o,l),thColorHoverPopover:rt(rt(o,l),a),thColorSortingPopover:rt(rt(o,l),a),tdColorPopover:o,boxShadowBefore:"inset -12px 0 8px -12px rgba(0, 0, 0, .18)",boxShadowAfter:"inset 12px 0 8px -12px rgba(0, 0, 0, .18)",loadingColor:d,loadingSize:m,opacityLoading:y})}const m$={name:"DataTable",common:gt,peers:{Button:rc,Checkbox:Vv,Radio:dc,Pagination:Xv,Scrollbar:jo,Empty:nc,Popover:Ur,Ellipsis:Qv,Dropdown:Zv},self:b$},y$=Object.assign(Object.assign({},Be.props),{onUnstableColumnResize:Function,pagination:{type:[Object,Boolean],default:!1},paginateSinglePage:{type:Boolean,default:!0},minHeight:[Number,String],maxHeight:[Number,String],columns:{type:Array,default:()=>[]},rowClassName:[String,Function],rowProps:Function,rowKey:Function,summary:[Function],data:{type:Array,default:()=>[]},loading:Boolean,bordered:{type:Boolean,default:void 0},bottomBordered:{type:Boolean,default:void 0},striped:Boolean,scrollX:[Number,String],defaultCheckedRowKeys:{type:Array,default:()=>[]},checkedRowKeys:Array,singleLine:{type:Boolean,default:!0},singleColumn:Boolean,size:String,remote:Boolean,defaultExpandedRowKeys:{type:Array,default:[]},defaultExpandAll:Boolean,expandedRowKeys:Array,stickyExpandedRows:Boolean,virtualScroll:Boolean,virtualScrollX:Boolean,virtualScrollHeader:Boolean,headerHeight:{type:Number,default:28},heightForRow:Function,minRowHeight:{type:Number,default:28},tableLayout:{type:String,default:"auto"},allowCheckingNotLoaded:Boolean,cascade:{type:Boolean,default:!0},childrenKey:{type:String,default:"children"},indent:{type:Number,default:16},flexHeight:Boolean,summaryPlacement:{type:String,default:"bottom"},paginationBehaviorOnFilter:{type:String,default:"current"},filterIconPopoverProps:Object,scrollbarProps:Object,renderCell:Function,renderExpandIcon:Function,spinProps:Object,getCsvCell:Function,getCsvHeader:Function,onLoad:Function,"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],"onUpdate:sorter":[Function,Array],onUpdateSorter:[Function,Array],"onUpdate:filters":[Function,Array],onUpdateFilters:[Function,Array],"onUpdate:checkedRowKeys":[Function,Array],onUpdateCheckedRowKeys:[Function,Array],"onUpdate:expandedRowKeys":[Function,Array],onUpdateExpandedRowKeys:[Function,Array],onScroll:Function,onPageChange:[Function,Array],onPageSizeChange:[Function,Array],onSorterChange:[Function,Array],onFiltersChange:[Function,Array],onCheckedRowKeysChange:[Function,Array]}),En="n-data-table",eg=40,tg=40;function Ff(e){if(e.type==="selection")return e.width===void 0?eg:Pt(e.width);if(e.type==="expand")return e.width===void 0?tg:Pt(e.width);if(!("children"in e))return typeof e.width=="string"?Pt(e.width):e.width}function x$(e){var t,n;if(e.type==="selection")return Gt((t=e.width)!==null&&t!==void 0?t:eg);if(e.type==="expand")return Gt((n=e.width)!==null&&n!==void 0?n:tg);if(!("children"in e))return Gt(e.width)}function Sn(e){return e.type==="selection"?"__n_selection__":e.type==="expand"?"__n_expand__":e.key}function Of(e){return e&&(typeof e=="object"?Object.assign({},e):e)}function w$(e){return e==="ascend"?1:e==="descend"?-1:0}function C$(e,t,n){return n!==void 0&&(e=Math.min(e,typeof n=="number"?n:Number.parseFloat(n))),t!==void 0&&(e=Math.max(e,typeof t=="number"?t:Number.parseFloat(t))),e}function S$(e,t){if(t!==void 0)return{width:t,minWidth:t,maxWidth:t};const n=x$(e),{minWidth:o,maxWidth:r}=e;return{width:n,minWidth:Gt(o)||n,maxWidth:Gt(r)}}function R$(e,t,n){return typeof n=="function"?n(e,t):n||""}function bs(e){return e.filterOptionValues!==void 0||e.filterOptionValue===void 0&&e.defaultFilterOptionValues!==void 0}function ms(e){return"children"in e?!1:!!e.sorter}function ng(e){return"children"in e&&e.children.length?!1:!!e.resizable}function Ef(e){return"children"in e?!1:!!e.filter&&(!!e.filterOptions||!!e.renderFilterMenu)}function Mf(e){if(e){if(e==="descend")return"ascend"}else return"descend";return!1}function k$(e,t){if(e.sorter===void 0)return null;const{customNextSortOrder:n}=e;return t===null||t.columnKey!==e.key?{columnKey:e.key,sorter:e.sorter,order:Mf(!1)}:Object.assign(Object.assign({},t),{order:(n||Mf)(t.order)})}function og(e,t){return t.find(n=>n.columnKey===e.key&&n.order)!==void 0}function P$(e){return typeof e=="string"?e.replace(/,/g,"\\,"):e==null?"":`${e}`.replace(/,/g,"\\,")}function $$(e,t,n,o){const r=e.filter(a=>a.type!=="expand"&&a.type!=="selection"&&a.allowExport!==!1),i=r.map(a=>o?o(a):a.title).join(","),l=t.map(a=>r.map(s=>n?n(a[s.key],a,s):P$(a[s.key])).join(","));return[i,...l].join(` +`)}const _$=pe({name:"DataTableBodyCheckbox",props:{rowKey:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!0},onUpdateChecked:{type:Function,required:!0}},setup(e){const{mergedCheckedRowKeySetRef:t,mergedInderminateRowKeySetRef:n}=Ee(En);return()=>{const{rowKey:o}=e;return h(lc,{privateInsideTable:!0,disabled:e.disabled,indeterminate:n.value.has(o),checked:t.value.has(o),onUpdateChecked:e.onUpdateChecked})}}}),z$=P("radio",` + line-height: var(--n-label-line-height); + outline: none; + position: relative; + user-select: none; + -webkit-user-select: none; + display: inline-flex; + align-items: flex-start; + flex-wrap: nowrap; + font-size: var(--n-font-size); + word-break: break-word; +`,[H("checked",[j("dot",` + background-color: var(--n-color-active); + `)]),j("dot-wrapper",` + position: relative; + flex-shrink: 0; + flex-grow: 0; + width: var(--n-radio-size); + `),P("radio-input",` + position: absolute; + border: 0; + width: 0; + height: 0; + opacity: 0; + margin: 0; + `),j("dot",` + position: absolute; + top: 50%; + left: 0; + transform: translateY(-50%); + height: var(--n-radio-size); + width: var(--n-radio-size); + background: var(--n-color); + box-shadow: var(--n-box-shadow); + border-radius: 50%; + transition: + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + `,[I("&::before",` + content: ""; + opacity: 0; + position: absolute; + left: 4px; + top: 4px; + height: calc(100% - 8px); + width: calc(100% - 8px); + border-radius: 50%; + transform: scale(.8); + background: var(--n-dot-color-active); + transition: + opacity .3s var(--n-bezier), + background-color .3s var(--n-bezier), + transform .3s var(--n-bezier); + `),H("checked",{boxShadow:"var(--n-box-shadow-active)"},[I("&::before",` + opacity: 1; + transform: scale(1); + `)])]),j("label",` + color: var(--n-text-color); + padding: var(--n-label-padding); + font-weight: var(--n-label-font-weight); + display: inline-block; + transition: color .3s var(--n-bezier); + `),dt("disabled",` + cursor: pointer; + `,[I("&:hover",[j("dot",{boxShadow:"var(--n-box-shadow-hover)"})]),H("focus",[I("&:not(:active)",[j("dot",{boxShadow:"var(--n-box-shadow-focus)"})])])]),H("disabled",` + cursor: not-allowed; + `,[j("dot",{boxShadow:"var(--n-box-shadow-disabled)",backgroundColor:"var(--n-color-disabled)"},[I("&::before",{backgroundColor:"var(--n-dot-color-disabled)"}),H("checked",` + opacity: 1; + `)]),j("label",{color:"var(--n-text-color-disabled)"}),P("radio-input",` + cursor: not-allowed; + `)])]),T$={name:String,value:{type:[String,Number,Boolean],default:"on"},checked:{type:Boolean,default:void 0},defaultChecked:Boolean,disabled:{type:Boolean,default:void 0},label:String,size:String,onUpdateChecked:[Function,Array],"onUpdate:checked":[Function,Array],checkedValue:{type:Boolean,default:void 0}},rg="n-radio-group";function F$(e){const t=Ee(rg,null),{mergedClsPrefixRef:n,mergedComponentPropsRef:o}=Ye(e),r=No(e,{mergedSize(S){var x,R;const{size:C}=e;if(C!==void 0)return C;if(t){const{mergedSizeRef:{value:k}}=t;if(k!==void 0)return k}if(S)return S.mergedSize.value;const w=(R=(x=o?.value)===null||x===void 0?void 0:x.Radio)===null||R===void 0?void 0:R.size;return w||"medium"},mergedDisabled(S){return!!(e.disabled||t?.disabledRef.value||S?.disabled.value)}}),{mergedSizeRef:i,mergedDisabledRef:l}=r,a=E(null),s=E(null),d=E(e.defaultChecked),f=qt(we(e,"checked"),d),v=ot(()=>t?t.valueRef.value===e.value:f.value),g=ot(()=>{const{name:S}=e;if(S!==void 0)return S;if(t)return t.nameRef.value}),u=E(!1);function p(){if(t){const{doUpdateValue:S}=t,{value:x}=e;me(S,x)}else{const{onUpdateChecked:S,"onUpdate:checked":x}=e,{nTriggerFormInput:R,nTriggerFormChange:C}=r;S&&me(S,!0),x&&me(x,!0),R(),C(),d.value=!0}}function b(){l.value||v.value||p()}function m(){b(),a.value&&(a.value.checked=v.value)}function y(){u.value=!1}function $(){u.value=!0}return{mergedClsPrefix:t?t.mergedClsPrefixRef:n,inputRef:a,labelRef:s,mergedName:g,mergedDisabled:l,renderSafeChecked:v,focus:u,mergedSize:i,handleRadioInputChange:m,handleRadioInputBlur:y,handleRadioInputFocus:$}}const O$=Object.assign(Object.assign({},Be.props),T$),ig=pe({name:"Radio",props:O$,setup(e){const t=F$(e),n=Be("Radio","-radio",z$,dc,e,t.mergedClsPrefix),o=O(()=>{const{mergedSize:{value:d}}=t,{common:{cubicBezierEaseInOut:c},self:{boxShadow:f,boxShadowActive:v,boxShadowDisabled:g,boxShadowFocus:u,boxShadowHover:p,color:b,colorDisabled:m,colorActive:y,textColor:$,textColorDisabled:S,dotColorActive:x,dotColorDisabled:R,labelPadding:C,labelLineHeight:w,labelFontWeight:k,[de("fontSize",d)]:F,[de("radioSize",d)]:M}}=n.value;return{"--n-bezier":c,"--n-label-line-height":w,"--n-label-font-weight":k,"--n-box-shadow":f,"--n-box-shadow-active":v,"--n-box-shadow-disabled":g,"--n-box-shadow-focus":u,"--n-box-shadow-hover":p,"--n-color":b,"--n-color-active":y,"--n-color-disabled":m,"--n-dot-color-active":x,"--n-dot-color-disabled":R,"--n-font-size":F,"--n-radio-size":M,"--n-text-color":$,"--n-text-color-disabled":S,"--n-label-padding":C}}),{inlineThemeDisabled:r,mergedClsPrefixRef:i,mergedRtlRef:l}=Ye(e),a=Bt("Radio",l,i),s=r?vt("radio",O(()=>t.mergedSize.value[0]),o,e):void 0;return Object.assign(t,{rtlEnabled:a,cssVars:r?void 0:o,themeClass:s?.themeClass,onRender:s?.onRender})},render(){const{$slots:e,mergedClsPrefix:t,onRender:n,label:o}=this;return n?.(),h("label",{class:[`${t}-radio`,this.themeClass,this.rtlEnabled&&`${t}-radio--rtl`,this.mergedDisabled&&`${t}-radio--disabled`,this.renderSafeChecked&&`${t}-radio--checked`,this.focus&&`${t}-radio--focus`],style:this.cssVars},h("div",{class:`${t}-radio__dot-wrapper`}," ",h("div",{class:[`${t}-radio__dot`,this.renderSafeChecked&&`${t}-radio__dot--checked`]}),h("input",{ref:"inputRef",type:"radio",class:`${t}-radio-input`,value:this.value,name:this.mergedName,checked:this.renderSafeChecked,disabled:this.mergedDisabled,onChange:this.handleRadioInputChange,onFocus:this.handleRadioInputFocus,onBlur:this.handleRadioInputBlur})),lt(e.default,r=>!r&&!o?null:h("div",{ref:"labelRef",class:`${t}-radio__label`},r||o)))}}),E$=P("radio-group",` + display: inline-block; + font-size: var(--n-font-size); +`,[j("splitor",` + display: inline-block; + vertical-align: bottom; + width: 1px; + transition: + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier); + background: var(--n-button-border-color); + `,[H("checked",{backgroundColor:"var(--n-button-border-color-active)"}),H("disabled",{opacity:"var(--n-opacity-disabled)"})]),H("button-group",` + white-space: nowrap; + height: var(--n-height); + line-height: var(--n-height); + `,[P("radio-button",{height:"var(--n-height)",lineHeight:"var(--n-height)"}),j("splitor",{height:"var(--n-height)"})]),P("radio-button",` + vertical-align: bottom; + outline: none; + position: relative; + user-select: none; + -webkit-user-select: none; + display: inline-block; + box-sizing: border-box; + padding-left: 14px; + padding-right: 14px; + white-space: nowrap; + transition: + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + background: var(--n-button-color); + color: var(--n-button-text-color); + border-top: 1px solid var(--n-button-border-color); + border-bottom: 1px solid var(--n-button-border-color); + `,[P("radio-input",` + pointer-events: none; + position: absolute; + border: 0; + border-radius: inherit; + left: 0; + right: 0; + top: 0; + bottom: 0; + opacity: 0; + z-index: 1; + `),j("state-border",` + z-index: 1; + pointer-events: none; + position: absolute; + box-shadow: var(--n-button-box-shadow); + transition: box-shadow .3s var(--n-bezier); + left: -1px; + bottom: -1px; + right: -1px; + top: -1px; + `),I("&:first-child",` + border-top-left-radius: var(--n-button-border-radius); + border-bottom-left-radius: var(--n-button-border-radius); + border-left: 1px solid var(--n-button-border-color); + `,[j("state-border",` + border-top-left-radius: var(--n-button-border-radius); + border-bottom-left-radius: var(--n-button-border-radius); + `)]),I("&:last-child",` + border-top-right-radius: var(--n-button-border-radius); + border-bottom-right-radius: var(--n-button-border-radius); + border-right: 1px solid var(--n-button-border-color); + `,[j("state-border",` + border-top-right-radius: var(--n-button-border-radius); + border-bottom-right-radius: var(--n-button-border-radius); + `)]),dt("disabled",` + cursor: pointer; + `,[I("&:hover",[j("state-border",` + transition: box-shadow .3s var(--n-bezier); + box-shadow: var(--n-button-box-shadow-hover); + `),dt("checked",{color:"var(--n-button-text-color-hover)"})]),H("focus",[I("&:not(:active)",[j("state-border",{boxShadow:"var(--n-button-box-shadow-focus)"})])])]),H("checked",` + background: var(--n-button-color-active); + color: var(--n-button-text-color-active); + border-color: var(--n-button-border-color-active); + `),H("disabled",` + cursor: not-allowed; + opacity: var(--n-opacity-disabled); + `)])]);function M$(e,t,n){var o;const r=[];let i=!1;for(let l=0;l{const{value:x}=n,{common:{cubicBezierEaseInOut:R},self:{buttonBorderColor:C,buttonBorderColorActive:w,buttonBorderRadius:k,buttonBoxShadow:F,buttonBoxShadowFocus:M,buttonBoxShadowHover:_,buttonColor:T,buttonColorActive:B,buttonTextColor:D,buttonTextColorActive:K,buttonTextColorHover:N,opacityDisabled:V,[de("buttonHeight",x)]:ie,[de("fontSize",x)]:he}}=f.value;return{"--n-font-size":he,"--n-bezier":R,"--n-button-border-color":C,"--n-button-border-color-active":w,"--n-button-border-radius":k,"--n-button-box-shadow":F,"--n-button-box-shadow-focus":M,"--n-button-box-shadow-hover":_,"--n-button-color":T,"--n-button-color-active":B,"--n-button-text-color":D,"--n-button-text-color-hover":N,"--n-button-text-color-active":K,"--n-height":ie,"--n-opacity-disabled":V}}),S=d?vt("radio-group",O(()=>n.value[0]),$,e):void 0;return{selfElRef:t,rtlEnabled:y,mergedClsPrefix:s,mergedValue:u,handleFocusout:m,handleFocusin:b,cssVars:d?void 0:$,themeClass:S?.themeClass,onRender:S?.onRender}},render(){var e;const{mergedValue:t,mergedClsPrefix:n,handleFocusin:o,handleFocusout:r}=this,{children:i,isButtonGroup:l}=M$(Un(Dd(this)),t,n);return(e=this.onRender)===null||e===void 0||e.call(this),h("div",{onFocusin:o,onFocusout:r,ref:"selfElRef",class:[`${n}-radio-group`,this.rtlEnabled&&`${n}-radio-group--rtl`,this.themeClass,l&&`${n}-radio-group--button-group`],style:this.cssVars},i)}}),I$=pe({name:"DataTableBodyRadio",props:{rowKey:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!0},onUpdateChecked:{type:Function,required:!0}},setup(e){const{mergedCheckedRowKeySetRef:t,componentId:n}=Ee(En);return()=>{const{rowKey:o}=e;return h(ig,{name:n,disabled:e.disabled,checked:t.value.has(o),onUpdateChecked:e.onUpdateChecked})}}}),L$=Object.assign(Object.assign({},Nr),Be.props),D$=pe({name:"Tooltip",props:L$,slots:Object,__popover__:!0,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=Be("Tooltip","-tooltip",void 0,Jv,e,t),o=E(null);return Object.assign(Object.assign({},{syncPosition(){o.value.syncPosition()},setShow(i){o.value.setShow(i)}}),{popoverRef:o,mergedTheme:n,popoverThemeOverrides:O(()=>n.value.self)})},render(){const{mergedTheme:e,internalExtraClass:t}=this;return h(Zi,Object.assign(Object.assign({},this.$props),{theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:this.popoverThemeOverrides,internalExtraClass:t.concat("tooltip"),ref:"popoverRef"}),this.$slots)}}),lg=P("ellipsis",{overflow:"hidden"},[dt("line-clamp",` + white-space: nowrap; + display: inline-block; + vertical-align: bottom; + max-width: 100%; + `),H("line-clamp",` + display: -webkit-inline-box; + -webkit-box-orient: vertical; + `),H("cursor-pointer",` + cursor: pointer; + `)]);function td(e){return`${e}-ellipsis--line-clamp`}function nd(e,t){return`${e}-ellipsis--cursor-${t}`}const ag=Object.assign(Object.assign({},Be.props),{expandTrigger:String,lineClamp:[Number,String],tooltip:{type:[Boolean,Object],default:!0}}),cc=pe({name:"Ellipsis",inheritAttrs:!1,props:ag,slots:Object,setup(e,{slots:t,attrs:n}){const o=Xp(),r=Be("Ellipsis","-ellipsis",lg,Qv,e,o),i=E(null),l=E(null),a=E(null),s=E(!1),d=O(()=>{const{lineClamp:b}=e,{value:m}=s;return b!==void 0?{textOverflow:"","-webkit-line-clamp":m?"":b}:{textOverflow:m?"":"ellipsis","-webkit-line-clamp":""}});function c(){let b=!1;const{value:m}=s;if(m)return!0;const{value:y}=i;if(y){const{lineClamp:$}=e;if(g(y),$!==void 0)b=y.scrollHeight<=y.offsetHeight;else{const{value:S}=l;S&&(b=S.getBoundingClientRect().width<=y.getBoundingClientRect().width)}u(y,b)}return b}const f=O(()=>e.expandTrigger==="click"?()=>{var b;const{value:m}=s;m&&((b=a.value)===null||b===void 0||b.setShow(!1)),s.value=!m}:void 0);na(()=>{var b;e.tooltip&&((b=a.value)===null||b===void 0||b.setShow(!1))});const v=()=>h("span",Object.assign({},nn(n,{class:[`${o.value}-ellipsis`,e.lineClamp!==void 0?td(o.value):void 0,e.expandTrigger==="click"?nd(o.value,"pointer"):void 0],style:d.value}),{ref:"triggerRef",onClick:f.value,onMouseenter:e.expandTrigger==="click"?c:void 0}),e.lineClamp?t:h("span",{ref:"triggerInnerRef"},t));function g(b){if(!b)return;const m=d.value,y=td(o.value);e.lineClamp!==void 0?p(b,y,"add"):p(b,y,"remove");for(const $ in m)b.style[$]!==m[$]&&(b.style[$]=m[$])}function u(b,m){const y=nd(o.value,"pointer");e.expandTrigger==="click"&&!m?p(b,y,"add"):p(b,y,"remove")}function p(b,m,y){y==="add"?b.classList.contains(m)||b.classList.add(m):b.classList.contains(m)&&b.classList.remove(m)}return{mergedTheme:r,triggerRef:i,triggerInnerRef:l,tooltipRef:a,handleClick:f,renderTrigger:v,getTooltipDisabled:c}},render(){var e;const{tooltip:t,renderTrigger:n,$slots:o}=this;if(t){const{mergedTheme:r}=this;return h(D$,Object.assign({ref:"tooltipRef",placement:"top"},t,{getDisabled:this.getTooltipDisabled,theme:r.peers.Tooltip,themeOverrides:r.peerOverrides.Tooltip}),{trigger:n,default:(e=o.tooltip)!==null&&e!==void 0?e:o.default})}else return n()}}),H$=pe({name:"PerformantEllipsis",props:ag,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){const o=E(!1),r=Xp();return pr("-ellipsis",lg,r),{mouseEntered:o,renderTrigger:()=>{const{lineClamp:l}=e,a=r.value;return h("span",Object.assign({},nn(t,{class:[`${a}-ellipsis`,l!==void 0?td(a):void 0,e.expandTrigger==="click"?nd(a,"pointer"):void 0],style:l===void 0?{textOverflow:"ellipsis"}:{"-webkit-line-clamp":l}}),{onMouseenter:()=>{o.value=!0}}),l?n:h("span",null,n))}}},render(){return this.mouseEntered?h(cc,nn({},this.$attrs,this.$props),this.$slots):this.renderTrigger()}}),N$=pe({name:"DataTableCell",props:{clsPrefix:{type:String,required:!0},row:{type:Object,required:!0},index:{type:Number,required:!0},column:{type:Object,required:!0},isSummary:Boolean,mergedTheme:{type:Object,required:!0},renderCell:Function},render(){var e;const{isSummary:t,column:n,row:o,renderCell:r}=this;let i;const{render:l,key:a,ellipsis:s}=n;if(l&&!t?i=l(o,this.index):t?i=(e=o[a])===null||e===void 0?void 0:e.value:i=r?r(Ks(o,a),o,n):Ks(o,a),s)if(typeof s=="object"){const{mergedTheme:d}=this;return n.ellipsisComponent==="performant-ellipsis"?h(H$,Object.assign({},s,{theme:d.peers.Ellipsis,themeOverrides:d.peerOverrides.Ellipsis}),{default:()=>i}):h(cc,Object.assign({},s,{theme:d.peers.Ellipsis,themeOverrides:d.peerOverrides.Ellipsis}),{default:()=>i})}else return h("span",{class:`${this.clsPrefix}-data-table-td__ellipsis`},i);return i}}),Bf=pe({name:"DataTableExpandTrigger",props:{clsPrefix:{type:String,required:!0},expanded:Boolean,loading:Boolean,onClick:{type:Function,required:!0},renderExpandIcon:{type:Function},rowData:{type:Object,required:!0}},render(){const{clsPrefix:e}=this;return h("div",{class:[`${e}-data-table-expand-trigger`,this.expanded&&`${e}-data-table-expand-trigger--expanded`],onClick:this.onClick,onMousedown:t=>{t.preventDefault()}},h(vr,null,{default:()=>this.loading?h(gr,{key:"loading",clsPrefix:this.clsPrefix,radius:85,strokeWidth:15,scale:.88}):this.renderExpandIcon?this.renderExpandIcon({expanded:this.expanded,rowData:this.rowData}):h(kt,{clsPrefix:e,key:"base-icon"},{default:()=>h(Pv,null)})}))}}),j$=pe({name:"DataTableFilterMenu",props:{column:{type:Object,required:!0},radioGroupName:{type:String,required:!0},multiple:{type:Boolean,required:!0},value:{type:[Array,String,Number],default:null},options:{type:Array,required:!0},onConfirm:{type:Function,required:!0},onClear:{type:Function,required:!0},onChange:{type:Function,required:!0}},setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n}=Ye(e),o=Bt("DataTable",n,t),{mergedClsPrefixRef:r,mergedThemeRef:i,localeRef:l}=Ee(En),a=E(e.value),s=O(()=>{const{value:u}=a;return Array.isArray(u)?u:null}),d=O(()=>{const{value:u}=a;return bs(e.column)?Array.isArray(u)&&u.length&&u[0]||null:Array.isArray(u)?null:u});function c(u){e.onChange(u)}function f(u){e.multiple&&Array.isArray(u)?a.value=u:bs(e.column)&&!Array.isArray(u)?a.value=[u]:a.value=u}function v(){c(a.value),e.onConfirm()}function g(){e.multiple||bs(e.column)?c([]):c(null),e.onClear()}return{mergedClsPrefix:r,rtlEnabled:o,mergedTheme:i,locale:l,checkboxGroupValue:s,radioGroupValue:d,handleChange:f,handleConfirmClick:v,handleClearClick:g}},render(){const{mergedTheme:e,locale:t,mergedClsPrefix:n}=this;return h("div",{class:[`${n}-data-table-filter-menu`,this.rtlEnabled&&`${n}-data-table-filter-menu--rtl`]},h(bo,null,{default:()=>{const{checkboxGroupValue:o,handleChange:r}=this;return this.multiple?h(VP,{value:o,class:`${n}-data-table-filter-menu__group`,onUpdateValue:r},{default:()=>this.options.map(i=>h(lc,{key:i.value,theme:e.peers.Checkbox,themeOverrides:e.peerOverrides.Checkbox,value:i.value},{default:()=>i.label}))}):h(A$,{name:this.radioGroupName,class:`${n}-data-table-filter-menu__group`,value:this.radioGroupValue,onUpdateValue:this.handleChange},{default:()=>this.options.map(i=>h(ig,{key:i.value,value:i.value,theme:e.peers.Radio,themeOverrides:e.peerOverrides.Radio},{default:()=>i.label}))})}}),h("div",{class:`${n}-data-table-filter-menu__action`},h(It,{size:"tiny",theme:e.peers.Button,themeOverrides:e.peerOverrides.Button,onClick:this.handleClearClick},{default:()=>t.clear}),h(It,{theme:e.peers.Button,themeOverrides:e.peerOverrides.Button,type:"primary",size:"tiny",onClick:this.handleConfirmClick},{default:()=>t.confirm})))}}),W$=pe({name:"DataTableRenderFilter",props:{render:{type:Function,required:!0},active:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},render(){const{render:e,active:t,show:n}=this;return e({active:t,show:n})}});function V$(e,t,n){const o=Object.assign({},e);return o[t]=n,o}const K$=pe({name:"DataTableFilterButton",props:{column:{type:Object,required:!0},options:{type:Array,default:()=>[]}},setup(e){const{mergedComponentPropsRef:t}=Ye(),{mergedThemeRef:n,mergedClsPrefixRef:o,mergedFilterStateRef:r,filterMenuCssVarsRef:i,paginationBehaviorOnFilterRef:l,doUpdatePage:a,doUpdateFilters:s,filterIconPopoverPropsRef:d}=Ee(En),c=E(!1),f=r,v=O(()=>e.column.filterMultiple!==!1),g=O(()=>{const $=f.value[e.column.key];if($===void 0){const{value:S}=v;return S?[]:null}return $}),u=O(()=>{const{value:$}=g;return Array.isArray($)?$.length>0:$!==null}),p=O(()=>{var $,S;return((S=($=t?.value)===null||$===void 0?void 0:$.DataTable)===null||S===void 0?void 0:S.renderFilter)||e.column.renderFilter});function b($){const S=V$(f.value,e.column.key,$);s(S,e.column),l.value==="first"&&a(1)}function m(){c.value=!1}function y(){c.value=!1}return{mergedTheme:n,mergedClsPrefix:o,active:u,showPopover:c,mergedRenderFilter:p,filterIconPopoverProps:d,filterMultiple:v,mergedFilterValue:g,filterMenuCssVars:i,handleFilterChange:b,handleFilterMenuConfirm:y,handleFilterMenuCancel:m}},render(){const{mergedTheme:e,mergedClsPrefix:t,handleFilterMenuCancel:n,filterIconPopoverProps:o}=this;return h(Zi,Object.assign({show:this.showPopover,onUpdateShow:r=>this.showPopover=r,trigger:"click",theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,placement:"bottom"},o,{style:{padding:0}}),{trigger:()=>{const{mergedRenderFilter:r}=this;if(r)return h(W$,{"data-data-table-filter":!0,render:r,active:this.active,show:this.showPopover});const{renderFilterIcon:i}=this.column;return h("div",{"data-data-table-filter":!0,class:[`${t}-data-table-filter`,{[`${t}-data-table-filter--active`]:this.active,[`${t}-data-table-filter--show`]:this.showPopover}]},i?i({active:this.active,show:this.showPopover}):h(kt,{clsPrefix:t},{default:()=>h(ik,null)}))},default:()=>{const{renderFilterMenu:r}=this.column;return r?r({hide:n}):h(j$,{style:this.filterMenuCssVars,radioGroupName:String(this.column.key),multiple:this.filterMultiple,value:this.mergedFilterValue,options:this.options,column:this.column,onChange:this.handleFilterChange,onClear:this.handleFilterMenuCancel,onConfirm:this.handleFilterMenuConfirm})}})}}),U$=pe({name:"ColumnResizeButton",props:{onResizeStart:Function,onResize:Function,onResizeEnd:Function},setup(e){const{mergedClsPrefixRef:t}=Ee(En),n=E(!1);let o=0;function r(s){return s.clientX}function i(s){var d;s.preventDefault();const c=n.value;o=r(s),n.value=!0,c||(ct("mousemove",window,l),ct("mouseup",window,a),(d=e.onResizeStart)===null||d===void 0||d.call(e))}function l(s){var d;(d=e.onResize)===null||d===void 0||d.call(e,r(s)-o)}function a(){var s;n.value=!1,(s=e.onResizeEnd)===null||s===void 0||s.call(e),et("mousemove",window,l),et("mouseup",window,a)}return xt(()=>{et("mousemove",window,l),et("mouseup",window,a)}),{mergedClsPrefix:t,active:n,handleMousedown:i}},render(){const{mergedClsPrefix:e}=this;return h("span",{"data-data-table-resizable":!0,class:[`${e}-data-table-resize-button`,this.active&&`${e}-data-table-resize-button--active`],onMousedown:this.handleMousedown})}}),G$=pe({name:"DataTableRenderSorter",props:{render:{type:Function,required:!0},order:{type:[String,Boolean],default:!1}},render(){const{render:e,order:t}=this;return e({order:t})}}),q$=pe({name:"SortIcon",props:{column:{type:Object,required:!0}},setup(e){const{mergedComponentPropsRef:t}=Ye(),{mergedSortStateRef:n,mergedClsPrefixRef:o}=Ee(En),r=O(()=>n.value.find(s=>s.columnKey===e.column.key)),i=O(()=>r.value!==void 0),l=O(()=>{const{value:s}=r;return s&&i.value?s.order:!1}),a=O(()=>{var s,d;return((d=(s=t?.value)===null||s===void 0?void 0:s.DataTable)===null||d===void 0?void 0:d.renderSorter)||e.column.renderSorter});return{mergedClsPrefix:o,active:i,mergedSortOrder:l,mergedRenderSorter:a}},render(){const{mergedRenderSorter:e,mergedSortOrder:t,mergedClsPrefix:n}=this,{renderSorterIcon:o}=this.column;return e?h(G$,{render:e,order:t}):h("span",{class:[`${n}-data-table-sorter`,t==="ascend"&&`${n}-data-table-sorter--asc`,t==="descend"&&`${n}-data-table-sorter--desc`]},o?o({order:t}):h(kt,{clsPrefix:n},{default:()=>h(JR,null)}))}}),uc="n-dropdown-menu",ma="n-dropdown",Af="n-dropdown-option",sg=pe({name:"DropdownDivider",props:{clsPrefix:{type:String,required:!0}},render(){return h("div",{class:`${this.clsPrefix}-dropdown-divider`})}}),X$=pe({name:"DropdownGroupHeader",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){const{showIconRef:e,hasSubmenuRef:t}=Ee(uc),{renderLabelRef:n,labelFieldRef:o,nodePropsRef:r,renderOptionRef:i}=Ee(ma);return{labelField:o,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:r,renderOption:i}},render(){var e;const{clsPrefix:t,hasSubmenu:n,showIcon:o,nodeProps:r,renderLabel:i,renderOption:l}=this,{rawNode:a}=this.tmNode,s=h("div",Object.assign({class:`${t}-dropdown-option`},r?.(a)),h("div",{class:`${t}-dropdown-option-body ${t}-dropdown-option-body--group`},h("div",{"data-dropdown-option":!0,class:[`${t}-dropdown-option-body__prefix`,o&&`${t}-dropdown-option-body__prefix--show-icon`]},wt(a.icon)),h("div",{class:`${t}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(a):wt((e=a.title)!==null&&e!==void 0?e:a[this.labelField])),h("div",{class:[`${t}-dropdown-option-body__suffix`,n&&`${t}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return l?l({node:s,option:a}):s}});function Y$(e){const{textColorBase:t,opacity1:n,opacity2:o,opacity3:r,opacity4:i,opacity5:l}=e;return{color:t,opacity1Depth:n,opacity2Depth:o,opacity3Depth:r,opacity4Depth:i,opacity5Depth:l}}const Z$={common:gt,self:Y$},J$=P("icon",` + height: 1em; + width: 1em; + line-height: 1em; + text-align: center; + display: inline-block; + position: relative; + fill: currentColor; +`,[H("color-transition",{transition:"color .3s var(--n-bezier)"}),H("depth",{color:"var(--n-color)"},[I("svg",{opacity:"var(--n-opacity)",transition:"opacity .3s var(--n-bezier)"})]),I("svg",{height:"1em",width:"1em"})]),Q$=Object.assign(Object.assign({},Be.props),{depth:[String,Number],size:[Number,String],color:String,component:[Object,Function]}),e2=pe({_n_icon__:!0,name:"Icon",inheritAttrs:!1,props:Q$,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ye(e),o=Be("Icon","-icon",J$,Z$,e,t),r=O(()=>{const{depth:l}=e,{common:{cubicBezierEaseInOut:a},self:s}=o.value;if(l!==void 0){const{color:d,[`opacity${l}Depth`]:c}=s;return{"--n-bezier":a,"--n-color":d,"--n-opacity":c}}return{"--n-bezier":a,"--n-color":"","--n-opacity":""}}),i=n?vt("icon",O(()=>`${e.depth||"d"}`),r,e):void 0;return{mergedClsPrefix:t,mergedStyle:O(()=>{const{size:l,color:a}=e;return{fontSize:Gt(l),color:a}}),cssVars:n?void 0:r,themeClass:i?.themeClass,onRender:i?.onRender}},render(){var e;const{$parent:t,depth:n,mergedClsPrefix:o,component:r,onRender:i,themeClass:l}=this;return!((e=t?.$options)===null||e===void 0)&&e._n_icon__&&Zn("icon","don't wrap `n-icon` inside `n-icon`"),i?.(),h("i",nn(this.$attrs,{role:"img",class:[`${o}-icon`,l,{[`${o}-icon--depth`]:n,[`${o}-icon--color-transition`]:n!==void 0}],style:[this.cssVars,this.mergedStyle]}),r?h(r):this.$slots)}});function od(e,t){return e.type==="submenu"||e.type===void 0&&e[t]!==void 0}function t2(e){return e.type==="group"}function dg(e){return e.type==="divider"}function n2(e){return e.type==="render"}const cg=pe({name:"DropdownOption",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null},placement:{type:String,default:"right-start"},props:Object,scrollable:Boolean},setup(e){const t=Ee(ma),{hoverKeyRef:n,keyboardKeyRef:o,lastToggledSubmenuKeyRef:r,pendingKeyPathRef:i,activeKeyPathRef:l,animatedRef:a,mergedShowRef:s,renderLabelRef:d,renderIconRef:c,labelFieldRef:f,childrenFieldRef:v,renderOptionRef:g,nodePropsRef:u,menuPropsRef:p}=t,b=Ee(Af,null),m=Ee(uc),y=Ee(Ui),$=O(()=>e.tmNode.rawNode),S=O(()=>{const{value:N}=v;return od(e.tmNode.rawNode,N)}),x=O(()=>{const{disabled:N}=e.tmNode;return N}),R=O(()=>{if(!S.value)return!1;const{key:N,disabled:V}=e.tmNode;if(V)return!1;const{value:ie}=n,{value:he}=o,{value:J}=r,{value:re}=i;return ie!==null?re.includes(N):he!==null?re.includes(N)&&re[re.length-1]!==N:J!==null?re.includes(N):!1}),C=O(()=>o.value===null&&!a.value),w=zy(R,300,C),k=O(()=>!!b?.enteringSubmenuRef.value),F=E(!1);qe(Af,{enteringSubmenuRef:F});function M(){F.value=!0}function _(){F.value=!1}function T(){const{parentKey:N,tmNode:V}=e;V.disabled||s.value&&(r.value=N,o.value=null,n.value=V.key)}function B(){const{tmNode:N}=e;N.disabled||s.value&&n.value!==N.key&&T()}function D(N){if(e.tmNode.disabled||!s.value)return;const{relatedTarget:V}=N;V&&!yn({target:V},"dropdownOption")&&!yn({target:V},"scrollbarRail")&&(n.value=null)}function K(){const{value:N}=S,{tmNode:V}=e;s.value&&!N&&!V.disabled&&(t.doSelect(V.key,V.rawNode),t.doUpdateShow(!1))}return{labelField:f,renderLabel:d,renderIcon:c,siblingHasIcon:m.showIconRef,siblingHasSubmenu:m.hasSubmenuRef,menuProps:p,popoverBody:y,animated:a,mergedShowSubmenu:O(()=>w.value&&!k.value),rawNode:$,hasSubmenu:S,pending:ot(()=>{const{value:N}=i,{key:V}=e.tmNode;return N.includes(V)}),childActive:ot(()=>{const{value:N}=l,{key:V}=e.tmNode,ie=N.findIndex(he=>V===he);return ie===-1?!1:ie{const{value:N}=l,{key:V}=e.tmNode,ie=N.findIndex(he=>V===he);return ie===-1?!1:ie===N.length-1}),mergedDisabled:x,renderOption:g,nodeProps:u,handleClick:K,handleMouseMove:B,handleMouseEnter:T,handleMouseLeave:D,handleSubmenuBeforeEnter:M,handleSubmenuAfterEnter:_}},render(){var e,t;const{animated:n,rawNode:o,mergedShowSubmenu:r,clsPrefix:i,siblingHasIcon:l,siblingHasSubmenu:a,renderLabel:s,renderIcon:d,renderOption:c,nodeProps:f,props:v,scrollable:g}=this;let u=null;if(r){const y=(e=this.menuProps)===null||e===void 0?void 0:e.call(this,o,o.children);u=h(ug,Object.assign({},y,{clsPrefix:i,scrollable:this.scrollable,tmNodes:this.tmNode.children,parentKey:this.tmNode.key}))}const p={class:[`${i}-dropdown-option-body`,this.pending&&`${i}-dropdown-option-body--pending`,this.active&&`${i}-dropdown-option-body--active`,this.childActive&&`${i}-dropdown-option-body--child-active`,this.mergedDisabled&&`${i}-dropdown-option-body--disabled`],onMousemove:this.handleMouseMove,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onClick:this.handleClick},b=f?.(o),m=h("div",Object.assign({class:[`${i}-dropdown-option`,b?.class],"data-dropdown-option":!0},b),h("div",nn(p,v),[h("div",{class:[`${i}-dropdown-option-body__prefix`,l&&`${i}-dropdown-option-body__prefix--show-icon`]},[d?d(o):wt(o.icon)]),h("div",{"data-dropdown-option":!0,class:`${i}-dropdown-option-body__label`},s?s(o):wt((t=o[this.labelField])!==null&&t!==void 0?t:o.title)),h("div",{"data-dropdown-option":!0,class:[`${i}-dropdown-option-body__suffix`,a&&`${i}-dropdown-option-body__suffix--has-submenu`]},this.hasSubmenu?h(e2,null,{default:()=>h(Pv,null)}):null)]),this.hasSubmenu?h(Ed,null,{default:()=>[h(Md,null,{default:()=>h("div",{class:`${i}-dropdown-offset-container`},h(Ad,{show:this.mergedShowSubmenu,placement:this.placement,to:g&&this.popoverBody||void 0,teleportDisabled:!g},{default:()=>h("div",{class:`${i}-dropdown-menu-wrapper`},n?h(pn,{onBeforeEnter:this.handleSubmenuBeforeEnter,onAfterEnter:this.handleSubmenuAfterEnter,name:"fade-in-scale-up-transition",appear:!0},{default:()=>u}):u)}))})]}):null);return c?c({node:m,option:o}):m}}),o2=pe({name:"NDropdownGroup",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null}},render(){const{tmNode:e,parentKey:t,clsPrefix:n}=this,{children:o}=e;return h(nt,null,h(X$,{clsPrefix:n,tmNode:e,key:e.key}),o?.map(r=>{const{rawNode:i}=r;return i.show===!1?null:dg(i)?h(sg,{clsPrefix:n,key:r.key}):r.isGroup?(Zn("dropdown","`group` node is not allowed to be put in `group` node."),null):h(cg,{clsPrefix:n,tmNode:r,parentKey:t,key:r.key})}))}}),r2=pe({name:"DropdownRenderOption",props:{tmNode:{type:Object,required:!0}},render(){const{rawNode:{render:e,props:t}}=this.tmNode;return h("div",t,[e?.()])}}),ug=pe({name:"DropdownMenu",props:{scrollable:Boolean,showArrow:Boolean,arrowStyle:[String,Object],clsPrefix:{type:String,required:!0},tmNodes:{type:Array,default:()=>[]},parentKey:{type:[String,Number],default:null}},setup(e){const{renderIconRef:t,childrenFieldRef:n}=Ee(ma);qe(uc,{showIconRef:O(()=>{const r=t.value;return e.tmNodes.some(i=>{var l;if(i.isGroup)return(l=i.children)===null||l===void 0?void 0:l.some(({rawNode:s})=>r?r(s):s.icon);const{rawNode:a}=i;return r?r(a):a.icon})}),hasSubmenuRef:O(()=>{const{value:r}=n;return e.tmNodes.some(i=>{var l;if(i.isGroup)return(l=i.children)===null||l===void 0?void 0:l.some(({rawNode:s})=>od(s,r));const{rawNode:a}=i;return od(a,r)})})});const o=E(null);return qe(ua,null),qe(ca,null),qe(Ui,o),{bodyRef:o}},render(){const{parentKey:e,clsPrefix:t,scrollable:n}=this,o=this.tmNodes.map(r=>{const{rawNode:i}=r;return i.show===!1?null:n2(i)?h(r2,{tmNode:r,key:r.key}):dg(i)?h(sg,{clsPrefix:t,key:r.key}):t2(i)?h(o2,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key}):h(cg,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key,props:i.props,scrollable:n})});return h("div",{class:[`${t}-dropdown-menu`,n&&`${t}-dropdown-menu--scrollable`],ref:"bodyRef"},n?h(zv,{contentClass:`${t}-dropdown-menu__content`},{default:()=>o}):o,this.showArrow?Bv({clsPrefix:t,arrowStyle:this.arrowStyle,arrowClass:void 0,arrowWrapperClass:void 0,arrowWrapperStyle:void 0}):null)}}),i2=P("dropdown-menu",` + transform-origin: var(--v-transform-origin); + background-color: var(--n-color); + border-radius: var(--n-border-radius); + box-shadow: var(--n-box-shadow); + position: relative; + transition: + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); +`,[Yi(),P("dropdown-option",` + position: relative; + `,[I("a",` + text-decoration: none; + color: inherit; + outline: none; + `,[I("&::before",` + content: ""; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `)]),P("dropdown-option-body",` + display: flex; + cursor: pointer; + position: relative; + height: var(--n-option-height); + line-height: var(--n-option-height); + font-size: var(--n-font-size); + color: var(--n-option-text-color); + transition: color .3s var(--n-bezier); + `,[I("&::before",` + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 4px; + right: 4px; + transition: background-color .3s var(--n-bezier); + border-radius: var(--n-border-radius); + `),dt("disabled",[H("pending",` + color: var(--n-option-text-color-hover); + `,[j("prefix, suffix",` + color: var(--n-option-text-color-hover); + `),I("&::before","background-color: var(--n-option-color-hover);")]),H("active",` + color: var(--n-option-text-color-active); + `,[j("prefix, suffix",` + color: var(--n-option-text-color-active); + `),I("&::before","background-color: var(--n-option-color-active);")]),H("child-active",` + color: var(--n-option-text-color-child-active); + `,[j("prefix, suffix",` + color: var(--n-option-text-color-child-active); + `)])]),H("disabled",` + cursor: not-allowed; + opacity: var(--n-option-opacity-disabled); + `),H("group",` + font-size: calc(var(--n-font-size) - 1px); + color: var(--n-group-header-text-color); + `,[j("prefix",` + width: calc(var(--n-option-prefix-width) / 2); + `,[H("show-icon",` + width: calc(var(--n-option-icon-prefix-width) / 2); + `)])]),j("prefix",` + width: var(--n-option-prefix-width); + display: flex; + justify-content: center; + align-items: center; + color: var(--n-prefix-color); + transition: color .3s var(--n-bezier); + z-index: 1; + `,[H("show-icon",` + width: var(--n-option-icon-prefix-width); + `),P("icon",` + font-size: var(--n-option-icon-size); + `)]),j("label",` + white-space: nowrap; + flex: 1; + z-index: 1; + `),j("suffix",` + box-sizing: border-box; + flex-grow: 0; + flex-shrink: 0; + display: flex; + justify-content: flex-end; + align-items: center; + min-width: var(--n-option-suffix-width); + padding: 0 8px; + transition: color .3s var(--n-bezier); + color: var(--n-suffix-color); + z-index: 1; + `,[H("has-submenu",` + width: var(--n-option-icon-suffix-width); + `),P("icon",` + font-size: var(--n-option-icon-size); + `)]),P("dropdown-menu","pointer-events: all;")]),P("dropdown-offset-container",` + pointer-events: none; + position: absolute; + left: 0; + right: 0; + top: -4px; + bottom: -4px; + `)]),P("dropdown-divider",` + transition: background-color .3s var(--n-bezier); + background-color: var(--n-divider-color); + height: 1px; + margin: 4px 0; + `),P("dropdown-menu-wrapper",` + transform-origin: var(--v-transform-origin); + width: fit-content; + `),I(">",[P("scrollbar",` + height: inherit; + max-height: inherit; + `)]),dt("scrollable",` + padding: var(--n-padding); + `),H("scrollable",[j("content",` + padding: var(--n-padding); + `)])]),l2={animated:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},size:String,inverted:Boolean,placement:{type:String,default:"bottom"},onSelect:[Function,Array],options:{type:Array,default:()=>[]},menuProps:Function,showArrow:Boolean,renderLabel:Function,renderIcon:Function,renderOption:Function,nodeProps:Function,labelField:{type:String,default:"label"},keyField:{type:String,default:"key"},childrenField:{type:String,default:"children"},value:[String,Number]},a2=Object.keys(Nr),s2=Object.assign(Object.assign(Object.assign({},Nr),l2),Be.props),d2=pe({name:"Dropdown",inheritAttrs:!1,props:s2,setup(e){const t=E(!1),n=qt(we(e,"show"),t),o=O(()=>{const{keyField:B,childrenField:D}=e;return ba(e.options,{getKey(K){return K[B]},getDisabled(K){return K.disabled===!0},getIgnored(K){return K.type==="divider"||K.type==="render"},getChildren(K){return K[D]}})}),r=O(()=>o.value.treeNodes),i=E(null),l=E(null),a=E(null),s=O(()=>{var B,D,K;return(K=(D=(B=i.value)!==null&&B!==void 0?B:l.value)!==null&&D!==void 0?D:a.value)!==null&&K!==void 0?K:null}),d=O(()=>o.value.getPath(s.value).keyPath),c=O(()=>o.value.getPath(e.value).keyPath),f=ot(()=>e.keyboard&&n.value);$y({keydown:{ArrowUp:{prevent:!0,handler:C},ArrowRight:{prevent:!0,handler:R},ArrowDown:{prevent:!0,handler:w},ArrowLeft:{prevent:!0,handler:x},Enter:{prevent:!0,handler:k},Escape:S}},f);const{mergedClsPrefixRef:v,inlineThemeDisabled:g,mergedComponentPropsRef:u}=Ye(e),p=O(()=>{var B,D;return e.size||((D=(B=u?.value)===null||B===void 0?void 0:B.Dropdown)===null||D===void 0?void 0:D.size)||"medium"}),b=Be("Dropdown","-dropdown",i2,Zv,e,v);qe(ma,{labelFieldRef:we(e,"labelField"),childrenFieldRef:we(e,"childrenField"),renderLabelRef:we(e,"renderLabel"),renderIconRef:we(e,"renderIcon"),hoverKeyRef:i,keyboardKeyRef:l,lastToggledSubmenuKeyRef:a,pendingKeyPathRef:d,activeKeyPathRef:c,animatedRef:we(e,"animated"),mergedShowRef:n,nodePropsRef:we(e,"nodeProps"),renderOptionRef:we(e,"renderOption"),menuPropsRef:we(e,"menuProps"),doSelect:m,doUpdateShow:y}),tt(n,B=>{!e.animated&&!B&&$()});function m(B,D){const{onSelect:K}=e;K&&me(K,B,D)}function y(B){const{"onUpdate:show":D,onUpdateShow:K}=e;D&&me(D,B),K&&me(K,B),t.value=B}function $(){i.value=null,l.value=null,a.value=null}function S(){y(!1)}function x(){M("left")}function R(){M("right")}function C(){M("up")}function w(){M("down")}function k(){const B=F();B?.isLeaf&&n.value&&(m(B.key,B.rawNode),y(!1))}function F(){var B;const{value:D}=o,{value:K}=s;return!D||K===null?null:(B=D.getNode(K))!==null&&B!==void 0?B:null}function M(B){const{value:D}=s,{value:{getFirstAvailableNode:K}}=o;let N=null;if(D===null){const V=K();V!==null&&(N=V.key)}else{const V=F();if(V){let ie;switch(B){case"down":ie=V.getNext();break;case"up":ie=V.getPrev();break;case"right":ie=V.getChild();break;case"left":ie=V.getParent();break}ie&&(N=ie.key)}}N!==null&&(i.value=null,l.value=N)}const _=O(()=>{const{inverted:B}=e,D=p.value,{common:{cubicBezierEaseInOut:K},self:N}=b.value,{padding:V,dividerColor:ie,borderRadius:he,optionOpacityDisabled:J,[de("optionIconSuffixWidth",D)]:re,[de("optionSuffixWidth",D)]:ye,[de("optionIconPrefixWidth",D)]:Z,[de("optionPrefixWidth",D)]:le,[de("fontSize",D)]:$e,[de("optionHeight",D)]:ze,[de("optionIconSize",D)]:Ae}=N,Te={"--n-bezier":K,"--n-font-size":$e,"--n-padding":V,"--n-border-radius":he,"--n-option-height":ze,"--n-option-prefix-width":le,"--n-option-icon-prefix-width":Z,"--n-option-suffix-width":ye,"--n-option-icon-suffix-width":re,"--n-option-icon-size":Ae,"--n-divider-color":ie,"--n-option-opacity-disabled":J};return B?(Te["--n-color"]=N.colorInverted,Te["--n-option-color-hover"]=N.optionColorHoverInverted,Te["--n-option-color-active"]=N.optionColorActiveInverted,Te["--n-option-text-color"]=N.optionTextColorInverted,Te["--n-option-text-color-hover"]=N.optionTextColorHoverInverted,Te["--n-option-text-color-active"]=N.optionTextColorActiveInverted,Te["--n-option-text-color-child-active"]=N.optionTextColorChildActiveInverted,Te["--n-prefix-color"]=N.prefixColorInverted,Te["--n-suffix-color"]=N.suffixColorInverted,Te["--n-group-header-text-color"]=N.groupHeaderTextColorInverted):(Te["--n-color"]=N.color,Te["--n-option-color-hover"]=N.optionColorHover,Te["--n-option-color-active"]=N.optionColorActive,Te["--n-option-text-color"]=N.optionTextColor,Te["--n-option-text-color-hover"]=N.optionTextColorHover,Te["--n-option-text-color-active"]=N.optionTextColorActive,Te["--n-option-text-color-child-active"]=N.optionTextColorChildActive,Te["--n-prefix-color"]=N.prefixColor,Te["--n-suffix-color"]=N.suffixColor,Te["--n-group-header-text-color"]=N.groupHeaderTextColor),Te}),T=g?vt("dropdown",O(()=>`${p.value[0]}${e.inverted?"i":""}`),_,e):void 0;return{mergedClsPrefix:v,mergedTheme:b,mergedSize:p,tmNodes:r,mergedShow:n,handleAfterLeave:()=>{e.animated&&$()},doUpdateShow:y,cssVars:g?void 0:_,themeClass:T?.themeClass,onRender:T?.onRender}},render(){const e=(o,r,i,l,a)=>{var s;const{mergedClsPrefix:d,menuProps:c}=this;(s=this.onRender)===null||s===void 0||s.call(this);const f=c?.(void 0,this.tmNodes.map(g=>g.rawNode))||{},v={ref:qp(r),class:[o,`${d}-dropdown`,`${d}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:d,tmNodes:this.tmNodes,style:[...i,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:l,onMouseleave:a};return h(ug,nn(this.$attrs,v,f))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return h(Zi,Object.assign({},Eo(this.$props,a2),n),{trigger:()=>{var o,r;return(r=(o=this.$slots).default)===null||r===void 0?void 0:r.call(o)}})}}),fg="_n_all__",hg="_n_none__";function c2(e,t,n,o){return e?r=>{for(const i of e)switch(r){case fg:n(!0);return;case hg:o(!0);return;default:if(typeof i=="object"&&i.key===r){i.onSelect(t.value);return}}}:()=>{}}function u2(e,t){return e?e.map(n=>{switch(n){case"all":return{label:t.checkTableAll,key:fg};case"none":return{label:t.uncheckTableAll,key:hg};default:return n}}):[]}const f2=pe({name:"DataTableSelectionMenu",props:{clsPrefix:{type:String,required:!0}},setup(e){const{props:t,localeRef:n,checkOptionsRef:o,rawPaginatedDataRef:r,doCheckAll:i,doUncheckAll:l}=Ee(En),a=O(()=>c2(o.value,r,i,l)),s=O(()=>u2(o.value,n.value));return()=>{var d,c,f,v;const{clsPrefix:g}=e;return h(d2,{theme:(c=(d=t.theme)===null||d===void 0?void 0:d.peers)===null||c===void 0?void 0:c.Dropdown,themeOverrides:(v=(f=t.themeOverrides)===null||f===void 0?void 0:f.peers)===null||v===void 0?void 0:v.Dropdown,options:s.value,onSelect:a.value},{default:()=>h(kt,{clsPrefix:g,class:`${g}-data-table-check-extra`},{default:()=>h(kv,null)})})}}});function ys(e){return typeof e.title=="function"?e.title(e):e.title}const h2=pe({props:{clsPrefix:{type:String,required:!0},id:{type:String,required:!0},cols:{type:Array,required:!0},width:String},render(){const{clsPrefix:e,id:t,cols:n,width:o}=this;return h("table",{style:{tableLayout:"fixed",width:o},class:`${e}-data-table-table`},h("colgroup",null,n.map(r=>h("col",{key:r.key,style:r.style}))),h("thead",{"data-n-id":t,class:`${e}-data-table-thead`},this.$slots))}}),pg=pe({name:"DataTableHeader",props:{discrete:{type:Boolean,default:!0}},setup(){const{mergedClsPrefixRef:e,scrollXRef:t,fixedColumnLeftMapRef:n,fixedColumnRightMapRef:o,mergedCurrentPageRef:r,allRowsCheckedRef:i,someRowsCheckedRef:l,rowsRef:a,colsRef:s,mergedThemeRef:d,checkOptionsRef:c,mergedSortStateRef:f,componentId:v,mergedTableLayoutRef:g,headerCheckboxDisabledRef:u,virtualScrollHeaderRef:p,headerHeightRef:b,onUnstableColumnResize:m,doUpdateResizableWidth:y,handleTableHeaderScroll:$,deriveNextSorter:S,doUncheckAll:x,doCheckAll:R}=Ee(En),C=E(),w=E({});function k(D){const K=w.value[D];return K?.getBoundingClientRect().width}function F(){i.value?x():R()}function M(D,K){if(yn(D,"dataTableFilter")||yn(D,"dataTableResizable")||!ms(K))return;const N=f.value.find(ie=>ie.columnKey===K.key)||null,V=k$(K,N);S(V)}const _=new Map;function T(D){_.set(D.key,k(D.key))}function B(D,K){const N=_.get(D.key);if(N===void 0)return;const V=N+K,ie=C$(V,D.minWidth,D.maxWidth);m(V,ie,D,k),y(D,ie)}return{cellElsRef:w,componentId:v,mergedSortState:f,mergedClsPrefix:e,scrollX:t,fixedColumnLeftMap:n,fixedColumnRightMap:o,currentPage:r,allRowsChecked:i,someRowsChecked:l,rows:a,cols:s,mergedTheme:d,checkOptions:c,mergedTableLayout:g,headerCheckboxDisabled:u,headerHeight:b,virtualScrollHeader:p,virtualListRef:C,handleCheckboxUpdateChecked:F,handleColHeaderClick:M,handleTableHeaderScroll:$,handleColumnResizeStart:T,handleColumnResize:B}},render(){const{cellElsRef:e,mergedClsPrefix:t,fixedColumnLeftMap:n,fixedColumnRightMap:o,currentPage:r,allRowsChecked:i,someRowsChecked:l,rows:a,cols:s,mergedTheme:d,checkOptions:c,componentId:f,discrete:v,mergedTableLayout:g,headerCheckboxDisabled:u,mergedSortState:p,virtualScrollHeader:b,handleColHeaderClick:m,handleCheckboxUpdateChecked:y,handleColumnResizeStart:$,handleColumnResize:S}=this,x=(k,F,M)=>k.map(({column:_,colIndex:T,colSpan:B,rowSpan:D,isLast:K})=>{var N,V;const ie=Sn(_),{ellipsis:he}=_,J=()=>_.type==="selection"?_.multiple!==!1?h(nt,null,h(lc,{key:r,privateInsideTable:!0,checked:i,indeterminate:l,disabled:u,onUpdateChecked:y}),c?h(f2,{clsPrefix:t}):null):null:h(nt,null,h("div",{class:`${t}-data-table-th__title-wrapper`},h("div",{class:`${t}-data-table-th__title`},he===!0||he&&!he.tooltip?h("div",{class:`${t}-data-table-th__ellipsis`},ys(_)):he&&typeof he=="object"?h(cc,Object.assign({},he,{theme:d.peers.Ellipsis,themeOverrides:d.peerOverrides.Ellipsis}),{default:()=>ys(_)}):ys(_)),ms(_)?h(q$,{column:_}):null),Ef(_)?h(K$,{column:_,options:_.filterOptions}):null,ng(_)?h(U$,{onResizeStart:()=>{$(_)},onResize:le=>{S(_,le)}}):null),re=ie in n,ye=ie in o,Z=F&&!_.fixed?"div":"th";return h(Z,{ref:le=>e[ie]=le,key:ie,style:[F&&!_.fixed?{position:"absolute",left:pt(F(T)),top:0,bottom:0}:{left:pt((N=n[ie])===null||N===void 0?void 0:N.start),right:pt((V=o[ie])===null||V===void 0?void 0:V.start)},{width:pt(_.width),textAlign:_.titleAlign||_.align,height:M}],colspan:B,rowspan:D,"data-col-key":ie,class:[`${t}-data-table-th`,(re||ye)&&`${t}-data-table-th--fixed-${re?"left":"right"}`,{[`${t}-data-table-th--sorting`]:og(_,p),[`${t}-data-table-th--filterable`]:Ef(_),[`${t}-data-table-th--sortable`]:ms(_),[`${t}-data-table-th--selection`]:_.type==="selection",[`${t}-data-table-th--last`]:K},_.className],onClick:_.type!=="selection"&&_.type!=="expand"&&!("children"in _)?le=>{m(le,_)}:void 0},J())});if(b){const{headerHeight:k}=this;let F=0,M=0;return s.forEach(_=>{_.column.fixed==="left"?F++:_.column.fixed==="right"&&M++}),h(Ld,{ref:"virtualListRef",class:`${t}-data-table-base-table-header`,style:{height:pt(k)},onScroll:this.handleTableHeaderScroll,columns:s,itemSize:k,showScrollbar:!1,items:[{}],itemResizable:!1,visibleItemsTag:h2,visibleItemsProps:{clsPrefix:t,id:f,cols:s,width:Gt(this.scrollX)},renderItemWithCols:({startColIndex:_,endColIndex:T,getLeft:B})=>{const D=s.map((N,V)=>({column:N.column,isLast:V===s.length-1,colIndex:N.index,colSpan:1,rowSpan:1})).filter(({column:N},V)=>!!(_<=V&&V<=T||N.fixed)),K=x(D,B,pt(k));return K.splice(F,0,h("th",{colspan:s.length-F-M,style:{pointerEvents:"none",visibility:"hidden",height:0}})),h("tr",{style:{position:"relative"}},K)}},{default:({renderedItemWithCols:_})=>_})}const R=h("thead",{class:`${t}-data-table-thead`,"data-n-id":f},a.map(k=>h("tr",{class:`${t}-data-table-tr`},x(k,null,void 0))));if(!v)return R;const{handleTableHeaderScroll:C,scrollX:w}=this;return h("div",{class:`${t}-data-table-base-table-header`,onScroll:C},h("table",{class:`${t}-data-table-table`,style:{minWidth:Gt(w),tableLayout:g}},h("colgroup",null,s.map(k=>h("col",{key:k.key,style:k.style}))),R))}});function p2(e,t){const n=[];function o(r,i){r.forEach(l=>{l.children&&t.has(l.key)?(n.push({tmNode:l,striped:!1,key:l.key,index:i}),o(l.children,i)):n.push({key:l.key,tmNode:l,striped:!1,index:i})})}return e.forEach(r=>{n.push(r);const{children:i}=r.tmNode;i&&t.has(r.key)&&o(i,r.index)}),n}const v2=pe({props:{clsPrefix:{type:String,required:!0},id:{type:String,required:!0},cols:{type:Array,required:!0},onMouseenter:Function,onMouseleave:Function},render(){const{clsPrefix:e,id:t,cols:n,onMouseenter:o,onMouseleave:r}=this;return h("table",{style:{tableLayout:"fixed"},class:`${e}-data-table-table`,onMouseenter:o,onMouseleave:r},h("colgroup",null,n.map(i=>h("col",{key:i.key,style:i.style}))),h("tbody",{"data-n-id":t,class:`${e}-data-table-tbody`},this.$slots))}}),g2=pe({name:"DataTableBody",props:{onResize:Function,showHeader:Boolean,flexHeight:Boolean,bodyStyle:Object},setup(e){const{slots:t,bodyWidthRef:n,mergedExpandedRowKeysRef:o,mergedClsPrefixRef:r,mergedThemeRef:i,scrollXRef:l,colsRef:a,paginatedDataRef:s,rawPaginatedDataRef:d,fixedColumnLeftMapRef:c,fixedColumnRightMapRef:f,mergedCurrentPageRef:v,rowClassNameRef:g,leftActiveFixedColKeyRef:u,leftActiveFixedChildrenColKeysRef:p,rightActiveFixedColKeyRef:b,rightActiveFixedChildrenColKeysRef:m,renderExpandRef:y,hoverKeyRef:$,summaryRef:S,mergedSortStateRef:x,virtualScrollRef:R,virtualScrollXRef:C,heightForRowRef:w,minRowHeightRef:k,componentId:F,mergedTableLayoutRef:M,childTriggerColIndexRef:_,indentRef:T,rowPropsRef:B,stripedRef:D,loadingRef:K,onLoadRef:N,loadingKeySetRef:V,expandableRef:ie,stickyExpandedRowsRef:he,renderExpandIconRef:J,summaryPlacementRef:re,treeMateRef:ye,scrollbarPropsRef:Z,setHeaderScrollLeft:le,doUpdateExpandedRowKeys:$e,handleTableBodyScroll:ze,doCheck:Ae,doUncheck:Te,renderCell:ne,xScrollableRef:Oe,explicitlyScrollableRef:z}=Ee(En),L=Ee(Fn),ee=E(null),se=E(null),ae=E(null),Q=O(()=>{var Re,te;return(te=(Re=L?.mergedComponentPropsRef.value)===null||Re===void 0?void 0:Re.DataTable)===null||te===void 0?void 0:te.renderEmpty}),ue=ot(()=>s.value.length===0),ve=ot(()=>R.value&&!ue.value);let fe="";const oe=O(()=>new Set(o.value));function q(Re){var te;return(te=ye.value.getNode(Re))===null||te===void 0?void 0:te.rawNode}function G(Re,te,A){const X=q(Re.key);if(!X){Zn("data-table",`fail to get row data with key ${Re.key}`);return}if(A){const be=s.value.findIndex(_e=>_e.key===fe);if(be!==-1){const _e=s.value.findIndex(Fe=>Fe.key===Re.key),xe=Math.min(be,_e),ke=Math.max(be,_e),Ce=[];s.value.slice(xe,ke+1).forEach(Fe=>{Fe.disabled||Ce.push(Fe.key)}),te?Ae(Ce,!1,X):Te(Ce,X),fe=Re.key;return}}te?Ae(Re.key,!1,X):Te(Re.key,X),fe=Re.key}function W(Re){const te=q(Re.key);if(!te){Zn("data-table",`fail to get row data with key ${Re.key}`);return}Ae(Re.key,!0,te)}function Y(){if(ve.value)return Ie();const{value:Re}=ee;return Re?Re.containerRef:null}function Se(Re,te){var A;if(V.value.has(Re))return;const{value:X}=o,be=X.indexOf(Re),_e=Array.from(X);~be?(_e.splice(be,1),$e(_e)):te&&!te.isLeaf&&!te.shallowLoaded?(V.value.add(Re),(A=N.value)===null||A===void 0||A.call(N,te.rawNode).then(()=>{const{value:xe}=o,ke=Array.from(xe);~ke.indexOf(Re)||ke.push(Re),$e(ke)}).finally(()=>{V.value.delete(Re)})):(_e.push(Re),$e(_e))}function Le(){$.value=null}function Ie(){const{value:Re}=se;return Re?.listElRef||null}function De(){const{value:Re}=se;return Re?.itemsElRef||null}function Ge(Re){var te;ze(Re),(te=ee.value)===null||te===void 0||te.sync()}function Xe(Re){var te;const{onResize:A}=e;A&&A(Re),(te=ee.value)===null||te===void 0||te.sync()}const at={getScrollContainer:Y,scrollTo(Re,te){var A,X;R.value?(A=se.value)===null||A===void 0||A.scrollTo(Re,te):(X=ee.value)===null||X===void 0||X.scrollTo(Re,te)}},mt=I([({props:Re})=>{const te=X=>X===null?null:I(`[data-n-id="${Re.componentId}"] [data-col-key="${X}"]::after`,{boxShadow:"var(--n-box-shadow-after)"}),A=X=>X===null?null:I(`[data-n-id="${Re.componentId}"] [data-col-key="${X}"]::before`,{boxShadow:"var(--n-box-shadow-before)"});return I([te(Re.leftActiveFixedColKey),A(Re.rightActiveFixedColKey),Re.leftActiveFixedChildrenColKeys.map(X=>te(X)),Re.rightActiveFixedChildrenColKeys.map(X=>A(X))])}]);let ft=!1;return en(()=>{const{value:Re}=u,{value:te}=p,{value:A}=b,{value:X}=m;if(!ft&&Re===null&&A===null)return;const be={leftActiveFixedColKey:Re,leftActiveFixedChildrenColKeys:te,rightActiveFixedColKey:A,rightActiveFixedChildrenColKeys:X,componentId:F};mt.mount({id:`n-${F}`,force:!0,props:be,anchorMetaName:Hr,parent:L?.styleMountTarget}),ft=!0}),ra(()=>{mt.unmount({id:`n-${F}`,parent:L?.styleMountTarget})}),Object.assign({bodyWidth:n,summaryPlacement:re,dataTableSlots:t,componentId:F,scrollbarInstRef:ee,virtualListRef:se,emptyElRef:ae,summary:S,mergedClsPrefix:r,mergedTheme:i,mergedRenderEmpty:Q,scrollX:l,cols:a,loading:K,shouldDisplayVirtualList:ve,empty:ue,paginatedDataAndInfo:O(()=>{const{value:Re}=D;let te=!1;return{data:s.value.map(Re?(X,be)=>(X.isLeaf||(te=!0),{tmNode:X,key:X.key,striped:be%2===1,index:be}):(X,be)=>(X.isLeaf||(te=!0),{tmNode:X,key:X.key,striped:!1,index:be})),hasChildren:te}}),rawPaginatedData:d,fixedColumnLeftMap:c,fixedColumnRightMap:f,currentPage:v,rowClassName:g,renderExpand:y,mergedExpandedRowKeySet:oe,hoverKey:$,mergedSortState:x,virtualScroll:R,virtualScrollX:C,heightForRow:w,minRowHeight:k,mergedTableLayout:M,childTriggerColIndex:_,indent:T,rowProps:B,loadingKeySet:V,expandable:ie,stickyExpandedRows:he,renderExpandIcon:J,scrollbarProps:Z,setHeaderScrollLeft:le,handleVirtualListScroll:Ge,handleVirtualListResize:Xe,handleMouseleaveTable:Le,virtualListContainer:Ie,virtualListContent:De,handleTableBodyScroll:ze,handleCheckboxUpdateChecked:G,handleRadioUpdateChecked:W,handleUpdateExpanded:Se,renderCell:ne,explicitlyScrollable:z,xScrollable:Oe},at)},render(){const{mergedTheme:e,scrollX:t,mergedClsPrefix:n,explicitlyScrollable:o,xScrollable:r,loadingKeySet:i,onResize:l,setHeaderScrollLeft:a,empty:s,shouldDisplayVirtualList:d}=this,c={minWidth:Gt(t)||"100%"};t&&(c.width="100%");const f=()=>h("div",{class:[`${n}-data-table-empty`,this.loading&&`${n}-data-table-empty--hide`],style:[this.bodyStyle,r?"position: sticky; left: 0; width: var(--n-scrollbar-current-width);":void 0],ref:"emptyElRef"},$n(this.dataTableSlots.empty,()=>{var g;return[((g=this.mergedRenderEmpty)===null||g===void 0?void 0:g.call(this))||h(Ov,{theme:this.mergedTheme.peers.Empty,themeOverrides:this.mergedTheme.peerOverrides.Empty})]})),v=h(bo,Object.assign({},this.scrollbarProps,{ref:"scrollbarInstRef",scrollable:o||r,class:`${n}-data-table-base-table-body`,style:s?"height: initial;":this.bodyStyle,theme:e.peers.Scrollbar,themeOverrides:e.peerOverrides.Scrollbar,contentStyle:c,container:d?this.virtualListContainer:void 0,content:d?this.virtualListContent:void 0,horizontalRailStyle:{zIndex:3},verticalRailStyle:{zIndex:3},internalExposeWidthCssVar:r&&s,xScrollable:r,onScroll:d?void 0:this.handleTableBodyScroll,internalOnUpdateScrollLeft:a,onResize:l}),{default:()=>{if(this.empty&&!this.showHeader&&(this.explicitlyScrollable||this.xScrollable))return f();const g={},u={},{cols:p,paginatedDataAndInfo:b,mergedTheme:m,fixedColumnLeftMap:y,fixedColumnRightMap:$,currentPage:S,rowClassName:x,mergedSortState:R,mergedExpandedRowKeySet:C,stickyExpandedRows:w,componentId:k,childTriggerColIndex:F,expandable:M,rowProps:_,handleMouseleaveTable:T,renderExpand:B,summary:D,handleCheckboxUpdateChecked:K,handleRadioUpdateChecked:N,handleUpdateExpanded:V,heightForRow:ie,minRowHeight:he,virtualScrollX:J}=this,{length:re}=p;let ye;const{data:Z,hasChildren:le}=b,$e=le?p2(Z,C):Z;if(D){const Q=D(this.rawPaginatedData);if(Array.isArray(Q)){const ue=Q.map((ve,fe)=>({isSummaryRow:!0,key:`__n_summary__${fe}`,tmNode:{rawNode:ve,disabled:!0},index:-1}));ye=this.summaryPlacement==="top"?[...ue,...$e]:[...$e,...ue]}else{const ue={isSummaryRow:!0,key:"__n_summary__",tmNode:{rawNode:Q,disabled:!0},index:-1};ye=this.summaryPlacement==="top"?[ue,...$e]:[...$e,ue]}}else ye=$e;const ze=le?{width:pt(this.indent)}:void 0,Ae=[];ye.forEach(Q=>{B&&C.has(Q.key)&&(!M||M(Q.tmNode.rawNode))?Ae.push(Q,{isExpandedRow:!0,key:`${Q.key}-expand`,tmNode:Q.tmNode,index:Q.index}):Ae.push(Q)});const{length:Te}=Ae,ne={};Z.forEach(({tmNode:Q},ue)=>{ne[ue]=Q.key});const Oe=w?this.bodyWidth:null,z=Oe===null?void 0:`${Oe}px`,L=this.virtualScrollX?"div":"td";let ee=0,se=0;J&&p.forEach(Q=>{Q.column.fixed==="left"?ee++:Q.column.fixed==="right"&&se++});const ae=({rowInfo:Q,displayedRowIndex:ue,isVirtual:ve,isVirtualX:fe,startColIndex:oe,endColIndex:q,getLeft:G})=>{const{index:W}=Q;if("isExpandedRow"in Q){const{tmNode:{key:A,rawNode:X}}=Q;return h("tr",{class:`${n}-data-table-tr ${n}-data-table-tr--expanded`,key:`${A}__expand`},h("td",{class:[`${n}-data-table-td`,`${n}-data-table-td--last-col`,ue+1===Te&&`${n}-data-table-td--last-row`],colspan:re},w?h("div",{class:`${n}-data-table-expand`,style:{width:z}},B(X,W)):B(X,W)))}const Y="isSummaryRow"in Q,Se=!Y&&Q.striped,{tmNode:Le,key:Ie}=Q,{rawNode:De}=Le,Ge=C.has(Ie),Xe=_?_(De,W):void 0,at=typeof x=="string"?x:R$(De,W,x),mt=fe?p.filter((A,X)=>!!(oe<=X&&X<=q||A.column.fixed)):p,ft=fe?pt(ie?.(De,W)||he):void 0,Re=mt.map(A=>{var X,be,_e,xe,ke;const Ce=A.index;if(ue in g){const je=g[ue],Ve=je.indexOf(Ce);if(~Ve)return je.splice(Ve,1),null}const{column:Fe}=A,Ze=Sn(A),{rowSpan:Lt,colSpan:Et}=Fe,Dt=Y?((X=Q.tmNode.rawNode[Ze])===null||X===void 0?void 0:X.colSpan)||1:Et?Et(De,W):1,zt=Y?((be=Q.tmNode.rawNode[Ze])===null||be===void 0?void 0:be.rowSpan)||1:Lt?Lt(De,W):1,Ht=Ce+Dt===re,on=ue+zt===Te,Nt=zt>1;if(Nt&&(u[ue]={[Ce]:[]}),Dt>1||Nt)for(let je=ue;je{V(Ie,Q.tmNode)}})]:null,Fe.type==="selection"?Y?null:Fe.multiple===!1?h(I$,{key:S,rowKey:Ie,disabled:Q.tmNode.disabled,onUpdateChecked:()=>{N(Q.tmNode)}}):h(_$,{key:S,rowKey:Ie,disabled:Q.tmNode.disabled,onUpdateChecked:(je,Ve)=>{K(Q.tmNode,je,Ve.shiftKey)}}):Fe.type==="expand"?Y?null:!Fe.expandable||!((ke=Fe.expandable)===null||ke===void 0)&&ke.call(Fe,De)?h(Bf,{clsPrefix:n,rowData:De,expanded:Ge,renderExpandIcon:this.renderExpandIcon,onClick:()=>{V(Ie,null)}}):null:h(N$,{clsPrefix:n,index:W,row:De,column:Fe,isSummary:Y,mergedTheme:m,renderCell:this.renderCell}))});return fe&&ee&&se&&Re.splice(ee,0,h("td",{colspan:p.length-ee-se,style:{pointerEvents:"none",visibility:"hidden",height:0}})),h("tr",Object.assign({},Xe,{onMouseenter:A=>{var X;this.hoverKey=Ie,(X=Xe?.onMouseenter)===null||X===void 0||X.call(Xe,A)},key:Ie,class:[`${n}-data-table-tr`,Y&&`${n}-data-table-tr--summary`,Se&&`${n}-data-table-tr--striped`,Ge&&`${n}-data-table-tr--expanded`,at,Xe?.class],style:[Xe?.style,fe&&{height:ft}]}),Re)};return this.shouldDisplayVirtualList?h(Ld,{ref:"virtualListRef",items:Ae,itemSize:this.minRowHeight,visibleItemsTag:v2,visibleItemsProps:{clsPrefix:n,id:k,cols:p,onMouseleave:T},showScrollbar:!1,onResize:this.handleVirtualListResize,onScroll:this.handleVirtualListScroll,itemsStyle:c,itemResizable:!J,columns:p,renderItemWithCols:J?({itemIndex:Q,item:ue,startColIndex:ve,endColIndex:fe,getLeft:oe})=>ae({displayedRowIndex:Q,isVirtual:!0,isVirtualX:!0,rowInfo:ue,startColIndex:ve,endColIndex:fe,getLeft:oe}):void 0},{default:({item:Q,index:ue,renderedItemWithCols:ve})=>ve||ae({rowInfo:Q,displayedRowIndex:ue,isVirtual:!0,isVirtualX:!1,startColIndex:0,endColIndex:0,getLeft(fe){return 0}})}):h(nt,null,h("table",{class:`${n}-data-table-table`,onMouseleave:T,style:{tableLayout:this.mergedTableLayout}},h("colgroup",null,p.map(Q=>h("col",{key:Q.key,style:Q.style}))),this.showHeader?h(pg,{discrete:!1}):null,this.empty?null:h("tbody",{"data-n-id":k,class:`${n}-data-table-tbody`},Ae.map((Q,ue)=>ae({rowInfo:Q,displayedRowIndex:ue,isVirtual:!1,isVirtualX:!1,startColIndex:-1,endColIndex:-1,getLeft(ve){return-1}})))),this.empty&&this.xScrollable?f():null)}});return this.empty?this.explicitlyScrollable||this.xScrollable?v:h(Kn,{onResize:this.onResize},{default:f}):v}}),b2=pe({name:"MainTable",setup(){const{mergedClsPrefixRef:e,rightFixedColumnsRef:t,leftFixedColumnsRef:n,bodyWidthRef:o,maxHeightRef:r,minHeightRef:i,flexHeightRef:l,virtualScrollHeaderRef:a,syncScrollState:s,scrollXRef:d}=Ee(En),c=E(null),f=E(null),v=E(null),g=E(!(n.value.length||t.value.length)),u=O(()=>({maxHeight:Gt(r.value),minHeight:Gt(i.value)}));function p($){o.value=$.contentRect.width,s(),g.value||(g.value=!0)}function b(){var $;const{value:S}=c;return S?a.value?(($=S.virtualListRef)===null||$===void 0?void 0:$.listElRef)||null:S.$el:null}function m(){const{value:$}=f;return $?$.getScrollContainer():null}const y={getBodyElement:m,getHeaderElement:b,scrollTo($,S){var x;(x=f.value)===null||x===void 0||x.scrollTo($,S)}};return en(()=>{const{value:$}=v;if(!$)return;const S=`${e.value}-data-table-base-table--transition-disabled`;g.value?setTimeout(()=>{$.classList.remove(S)},0):$.classList.add(S)}),Object.assign({maxHeight:r,mergedClsPrefix:e,selfElRef:v,headerInstRef:c,bodyInstRef:f,bodyStyle:u,flexHeight:l,handleBodyResize:p,scrollX:d},y)},render(){const{mergedClsPrefix:e,maxHeight:t,flexHeight:n}=this,o=t===void 0&&!n;return h("div",{class:`${e}-data-table-base-table`,ref:"selfElRef"},o?null:h(pg,{ref:"headerInstRef"}),h(g2,{ref:"bodyInstRef",bodyStyle:this.bodyStyle,showHeader:o,flexHeight:n,onResize:this.handleBodyResize}))}}),If=y2(),m2=I([P("data-table",` + width: 100%; + font-size: var(--n-font-size); + display: flex; + flex-direction: column; + position: relative; + --n-merged-th-color: var(--n-th-color); + --n-merged-td-color: var(--n-td-color); + --n-merged-border-color: var(--n-border-color); + --n-merged-th-color-hover: var(--n-th-color-hover); + --n-merged-th-color-sorting: var(--n-th-color-sorting); + --n-merged-td-color-hover: var(--n-td-color-hover); + --n-merged-td-color-sorting: var(--n-td-color-sorting); + --n-merged-td-color-striped: var(--n-td-color-striped); + `,[P("data-table-wrapper",` + flex-grow: 1; + display: flex; + flex-direction: column; + `),H("flex-height",[I(">",[P("data-table-wrapper",[I(">",[P("data-table-base-table",` + display: flex; + flex-direction: column; + flex-grow: 1; + `,[I(">",[P("data-table-base-table-body","flex-basis: 0;",[I("&:last-child","flex-grow: 1;")])])])])])])]),I(">",[P("data-table-loading-wrapper",` + color: var(--n-loading-color); + font-size: var(--n-loading-size); + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + transition: color .3s var(--n-bezier); + display: flex; + align-items: center; + justify-content: center; + `,[Yi({originalTransform:"translateX(-50%) translateY(-50%)"})])]),P("data-table-expand-placeholder",` + margin-right: 8px; + display: inline-block; + width: 16px; + height: 1px; + `),P("data-table-indent",` + display: inline-block; + height: 1px; + `),P("data-table-expand-trigger",` + display: inline-flex; + margin-right: 8px; + cursor: pointer; + font-size: 16px; + vertical-align: -0.2em; + position: relative; + width: 16px; + height: 16px; + color: var(--n-td-text-color); + transition: color .3s var(--n-bezier); + `,[H("expanded",[P("icon","transform: rotate(90deg);",[an({originalTransform:"rotate(90deg)"})]),P("base-icon","transform: rotate(90deg);",[an({originalTransform:"rotate(90deg)"})])]),P("base-loading",` + color: var(--n-loading-color); + transition: color .3s var(--n-bezier); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `,[an()]),P("icon",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `,[an()]),P("base-icon",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `,[an()])]),P("data-table-thead",` + transition: background-color .3s var(--n-bezier); + background-color: var(--n-merged-th-color); + `),P("data-table-tr",` + position: relative; + box-sizing: border-box; + background-clip: padding-box; + transition: background-color .3s var(--n-bezier); + `,[P("data-table-expand",` + position: sticky; + left: 0; + overflow: hidden; + margin: calc(var(--n-th-padding) * -1); + padding: var(--n-th-padding); + box-sizing: border-box; + `),H("striped","background-color: var(--n-merged-td-color-striped);",[P("data-table-td","background-color: var(--n-merged-td-color-striped);")]),dt("summary",[I("&:hover","background-color: var(--n-merged-td-color-hover);",[I(">",[P("data-table-td","background-color: var(--n-merged-td-color-hover);")])])])]),P("data-table-th",` + padding: var(--n-th-padding); + position: relative; + text-align: start; + box-sizing: border-box; + background-color: var(--n-merged-th-color); + border-color: var(--n-merged-border-color); + border-bottom: 1px solid var(--n-merged-border-color); + color: var(--n-th-text-color); + transition: + border-color .3s var(--n-bezier), + color .3s var(--n-bezier), + background-color .3s var(--n-bezier); + font-weight: var(--n-th-font-weight); + `,[H("filterable",` + padding-right: 36px; + `,[H("sortable",` + padding-right: calc(var(--n-th-padding) + 36px); + `)]),If,H("selection",` + padding: 0; + text-align: center; + line-height: 0; + z-index: 3; + `),j("title-wrapper",` + display: flex; + align-items: center; + flex-wrap: nowrap; + max-width: 100%; + `,[j("title",` + flex: 1; + min-width: 0; + `)]),j("ellipsis",` + display: inline-block; + vertical-align: bottom; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + `),H("hover",` + background-color: var(--n-merged-th-color-hover); + `),H("sorting",` + background-color: var(--n-merged-th-color-sorting); + `),H("sortable",` + cursor: pointer; + `,[j("ellipsis",` + max-width: calc(100% - 18px); + `),I("&:hover",` + background-color: var(--n-merged-th-color-hover); + `)]),P("data-table-sorter",` + height: var(--n-sorter-size); + width: var(--n-sorter-size); + margin-left: 4px; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + vertical-align: -0.2em; + color: var(--n-th-icon-color); + transition: color .3s var(--n-bezier); + `,[P("base-icon","transition: transform .3s var(--n-bezier)"),H("desc",[P("base-icon",` + transform: rotate(0deg); + `)]),H("asc",[P("base-icon",` + transform: rotate(-180deg); + `)]),H("asc, desc",` + color: var(--n-th-icon-color-active); + `)]),P("data-table-resize-button",` + width: var(--n-resizable-container-size); + position: absolute; + top: 0; + right: calc(var(--n-resizable-container-size) / 2); + bottom: 0; + cursor: col-resize; + user-select: none; + `,[I("&::after",` + width: var(--n-resizable-size); + height: 50%; + position: absolute; + top: 50%; + left: calc(var(--n-resizable-container-size) / 2); + bottom: 0; + background-color: var(--n-merged-border-color); + transform: translateY(-50%); + transition: background-color .3s var(--n-bezier); + z-index: 1; + content: ''; + `),H("active",[I("&::after",` + background-color: var(--n-th-icon-color-active); + `)]),I("&:hover::after",` + background-color: var(--n-th-icon-color-active); + `)]),P("data-table-filter",` + position: absolute; + z-index: auto; + right: 0; + width: 36px; + top: 0; + bottom: 0; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + font-size: var(--n-filter-size); + color: var(--n-th-icon-color); + `,[I("&:hover",` + background-color: var(--n-th-button-color-hover); + `),H("show",` + background-color: var(--n-th-button-color-hover); + `),H("active",` + background-color: var(--n-th-button-color-hover); + color: var(--n-th-icon-color-active); + `)])]),P("data-table-td",` + padding: var(--n-td-padding); + text-align: start; + box-sizing: border-box; + border: none; + background-color: var(--n-merged-td-color); + color: var(--n-td-text-color); + border-bottom: 1px solid var(--n-merged-border-color); + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `,[H("expand",[P("data-table-expand-trigger",` + margin-right: 0; + `)]),H("last-row",` + border-bottom: 0 solid var(--n-merged-border-color); + `,[I("&::after",` + bottom: 0 !important; + `),I("&::before",` + bottom: 0 !important; + `)]),H("summary",` + background-color: var(--n-merged-th-color); + `),H("hover",` + background-color: var(--n-merged-td-color-hover); + `),H("sorting",` + background-color: var(--n-merged-td-color-sorting); + `),j("ellipsis",` + display: inline-block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + vertical-align: bottom; + max-width: calc(100% - var(--indent-offset, -1.5) * 16px - 24px); + `),H("selection, expand",` + text-align: center; + padding: 0; + line-height: 0; + `),If]),P("data-table-empty",` + box-sizing: border-box; + padding: var(--n-empty-padding); + flex-grow: 1; + flex-shrink: 0; + opacity: 1; + display: flex; + align-items: center; + justify-content: center; + transition: opacity .3s var(--n-bezier); + `,[H("hide",` + opacity: 0; + `)]),j("pagination",` + margin: var(--n-pagination-margin); + display: flex; + justify-content: flex-end; + `),P("data-table-wrapper",` + position: relative; + opacity: 1; + transition: opacity .3s var(--n-bezier), border-color .3s var(--n-bezier); + border-top-left-radius: var(--n-border-radius); + border-top-right-radius: var(--n-border-radius); + line-height: var(--n-line-height); + `),H("loading",[P("data-table-wrapper",` + opacity: var(--n-opacity-loading); + pointer-events: none; + `)]),H("single-column",[P("data-table-td",` + border-bottom: 0 solid var(--n-merged-border-color); + `,[I("&::after, &::before",` + bottom: 0 !important; + `)])]),dt("single-line",[P("data-table-th",` + border-right: 1px solid var(--n-merged-border-color); + `,[H("last",` + border-right: 0 solid var(--n-merged-border-color); + `)]),P("data-table-td",` + border-right: 1px solid var(--n-merged-border-color); + `,[H("last-col",` + border-right: 0 solid var(--n-merged-border-color); + `)])]),H("bordered",[P("data-table-wrapper",` + border: 1px solid var(--n-merged-border-color); + border-bottom-left-radius: var(--n-border-radius); + border-bottom-right-radius: var(--n-border-radius); + overflow: hidden; + `)]),P("data-table-base-table",[H("transition-disabled",[P("data-table-th",[I("&::after, &::before","transition: none;")]),P("data-table-td",[I("&::after, &::before","transition: none;")])])]),H("bottom-bordered",[P("data-table-td",[H("last-row",` + border-bottom: 1px solid var(--n-merged-border-color); + `)])]),P("data-table-table",` + font-variant-numeric: tabular-nums; + width: 100%; + word-break: break-word; + transition: background-color .3s var(--n-bezier); + border-collapse: separate; + border-spacing: 0; + background-color: var(--n-merged-td-color); + `),P("data-table-base-table-header",` + border-top-left-radius: calc(var(--n-border-radius) - 1px); + border-top-right-radius: calc(var(--n-border-radius) - 1px); + z-index: 3; + overflow: scroll; + flex-shrink: 0; + transition: border-color .3s var(--n-bezier); + scrollbar-width: none; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + display: none; + width: 0; + height: 0; + `)]),P("data-table-check-extra",` + transition: color .3s var(--n-bezier); + color: var(--n-th-icon-color); + position: absolute; + font-size: 14px; + right: -4px; + top: 50%; + transform: translateY(-50%); + z-index: 1; + `)]),P("data-table-filter-menu",[P("scrollbar",` + max-height: 240px; + `),j("group",` + display: flex; + flex-direction: column; + padding: 12px 12px 0 12px; + `,[P("checkbox",` + margin-bottom: 12px; + margin-right: 0; + `),P("radio",` + margin-bottom: 12px; + margin-right: 0; + `)]),j("action",` + padding: var(--n-action-padding); + display: flex; + flex-wrap: nowrap; + justify-content: space-evenly; + border-top: 1px solid var(--n-action-divider-color); + `,[P("button",[I("&:not(:last-child)",` + margin: var(--n-action-button-margin); + `),I("&:last-child",` + margin-right: 0; + `)])]),P("divider",` + margin: 0 !important; + `)]),sa(P("data-table",` + --n-merged-th-color: var(--n-th-color-modal); + --n-merged-td-color: var(--n-td-color-modal); + --n-merged-border-color: var(--n-border-color-modal); + --n-merged-th-color-hover: var(--n-th-color-hover-modal); + --n-merged-td-color-hover: var(--n-td-color-hover-modal); + --n-merged-th-color-sorting: var(--n-th-color-hover-modal); + --n-merged-td-color-sorting: var(--n-td-color-hover-modal); + --n-merged-td-color-striped: var(--n-td-color-striped-modal); + `)),$d(P("data-table",` + --n-merged-th-color: var(--n-th-color-popover); + --n-merged-td-color: var(--n-td-color-popover); + --n-merged-border-color: var(--n-border-color-popover); + --n-merged-th-color-hover: var(--n-th-color-hover-popover); + --n-merged-td-color-hover: var(--n-td-color-hover-popover); + --n-merged-th-color-sorting: var(--n-th-color-hover-popover); + --n-merged-td-color-sorting: var(--n-td-color-hover-popover); + --n-merged-td-color-striped: var(--n-td-color-striped-popover); + `))]);function y2(){return[H("fixed-left",` + left: 0; + position: sticky; + z-index: 2; + `,[I("&::after",` + pointer-events: none; + content: ""; + width: 36px; + display: inline-block; + position: absolute; + top: 0; + bottom: -1px; + transition: box-shadow .2s var(--n-bezier); + right: -36px; + `)]),H("fixed-right",` + right: 0; + position: sticky; + z-index: 1; + `,[I("&::before",` + pointer-events: none; + content: ""; + width: 36px; + display: inline-block; + position: absolute; + top: 0; + bottom: -1px; + transition: box-shadow .2s var(--n-bezier); + left: -36px; + `)])]}function x2(e,t){const{paginatedDataRef:n,treeMateRef:o,selectionColumnRef:r}=t,i=E(e.defaultCheckedRowKeys),l=O(()=>{var x;const{checkedRowKeys:R}=e,C=R===void 0?i.value:R;return((x=r.value)===null||x===void 0?void 0:x.multiple)===!1?{checkedKeys:C.slice(0,1),indeterminateKeys:[]}:o.value.getCheckedKeys(C,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded})}),a=O(()=>l.value.checkedKeys),s=O(()=>l.value.indeterminateKeys),d=O(()=>new Set(a.value)),c=O(()=>new Set(s.value)),f=O(()=>{const{value:x}=d;return n.value.reduce((R,C)=>{const{key:w,disabled:k}=C;return R+(!k&&x.has(w)?1:0)},0)}),v=O(()=>n.value.filter(x=>x.disabled).length),g=O(()=>{const{length:x}=n.value,{value:R}=c;return f.value>0&&f.valueR.has(C.key))}),u=O(()=>{const{length:x}=n.value;return f.value!==0&&f.value===x-v.value}),p=O(()=>n.value.length===0);function b(x,R,C){const{"onUpdate:checkedRowKeys":w,onUpdateCheckedRowKeys:k,onCheckedRowKeysChange:F}=e,M=[],{value:{getNode:_}}=o;x.forEach(T=>{var B;const D=(B=_(T))===null||B===void 0?void 0:B.rawNode;M.push(D)}),w&&me(w,x,M,{row:R,action:C}),k&&me(k,x,M,{row:R,action:C}),F&&me(F,x,M,{row:R,action:C}),i.value=x}function m(x,R=!1,C){if(!e.loading){if(R){b(Array.isArray(x)?x.slice(0,1):[x],C,"check");return}b(o.value.check(x,a.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,C,"check")}}function y(x,R){e.loading||b(o.value.uncheck(x,a.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,R,"uncheck")}function $(x=!1){const{value:R}=r;if(!R||e.loading)return;const C=[];(x?o.value.treeNodes:n.value).forEach(w=>{w.disabled||C.push(w.key)}),b(o.value.check(C,a.value,{cascade:!0,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,void 0,"checkAll")}function S(x=!1){const{value:R}=r;if(!R||e.loading)return;const C=[];(x?o.value.treeNodes:n.value).forEach(w=>{w.disabled||C.push(w.key)}),b(o.value.uncheck(C,a.value,{cascade:!0,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,void 0,"uncheckAll")}return{mergedCheckedRowKeySetRef:d,mergedCheckedRowKeysRef:a,mergedInderminateRowKeySetRef:c,someRowsCheckedRef:g,allRowsCheckedRef:u,headerCheckboxDisabledRef:p,doUpdateCheckedRowKeys:b,doCheckAll:$,doUncheckAll:S,doCheck:m,doUncheck:y}}function w2(e,t){const n=ot(()=>{for(const d of e.columns)if(d.type==="expand")return d.renderExpand}),o=ot(()=>{let d;for(const c of e.columns)if(c.type==="expand"){d=c.expandable;break}return d}),r=E(e.defaultExpandAll?n?.value?(()=>{const d=[];return t.value.treeNodes.forEach(c=>{var f;!((f=o.value)===null||f===void 0)&&f.call(o,c.rawNode)&&d.push(c.key)}),d})():t.value.getNonLeafKeys():e.defaultExpandedRowKeys),i=we(e,"expandedRowKeys"),l=we(e,"stickyExpandedRows"),a=qt(i,r);function s(d){const{onUpdateExpandedRowKeys:c,"onUpdate:expandedRowKeys":f}=e;c&&me(c,d),f&&me(f,d),r.value=d}return{stickyExpandedRowsRef:l,mergedExpandedRowKeysRef:a,renderExpandRef:n,expandableRef:o,doUpdateExpandedRowKeys:s}}function C2(e,t){const n=[],o=[],r=[],i=new WeakMap;let l=-1,a=0,s=!1,d=0;function c(v,g){g>l&&(n[g]=[],l=g),v.forEach(u=>{if("children"in u)c(u.children,g+1);else{const p="key"in u?u.key:void 0;o.push({key:Sn(u),style:S$(u,p!==void 0?Gt(t(p)):void 0),column:u,index:d++,width:u.width===void 0?128:Number(u.width)}),a+=1,s||(s=!!u.ellipsis),r.push(u)}})}c(e,0),d=0;function f(v,g){let u=0;v.forEach(p=>{var b;if("children"in p){const m=d,y={column:p,colIndex:d,colSpan:0,rowSpan:1,isLast:!1};f(p.children,g+1),p.children.forEach($=>{var S,x;y.colSpan+=(x=(S=i.get($))===null||S===void 0?void 0:S.colSpan)!==null&&x!==void 0?x:0}),m+y.colSpan===a&&(y.isLast=!0),i.set(p,y),n[g].push(y)}else{if(d1&&(u=d+m);const y=d+m===a,$={column:p,colSpan:m,colIndex:d,rowSpan:l-g+1,isLast:y};i.set(p,$),n[g].push($),d+=1}})}return f(e,0),{hasEllipsis:s,rows:n,cols:o,dataRelatedCols:r}}function S2(e,t){const n=O(()=>C2(e.columns,t));return{rowsRef:O(()=>n.value.rows),colsRef:O(()=>n.value.cols),hasEllipsisRef:O(()=>n.value.hasEllipsis),dataRelatedColsRef:O(()=>n.value.dataRelatedCols)}}function R2(){const e=E({});function t(r){return e.value[r]}function n(r,i){ng(r)&&"key"in r&&(e.value[r.key]=i)}function o(){e.value={}}return{getResizableWidth:t,doUpdateResizableWidth:n,clearResizableWidth:o}}function k2(e,{mainTableInstRef:t,mergedCurrentPageRef:n,bodyWidthRef:o,maxHeightRef:r,mergedTableLayoutRef:i}){const l=O(()=>e.scrollX!==void 0||r.value!==void 0||e.flexHeight),a=O(()=>{const T=!l.value&&i.value==="auto";return e.scrollX!==void 0||T});let s=0;const d=E(),c=E(null),f=E([]),v=E(null),g=E([]),u=O(()=>Gt(e.scrollX)),p=O(()=>e.columns.filter(T=>T.fixed==="left")),b=O(()=>e.columns.filter(T=>T.fixed==="right")),m=O(()=>{const T={};let B=0;function D(K){K.forEach(N=>{const V={start:B,end:0};T[Sn(N)]=V,"children"in N?(D(N.children),V.end=B):(B+=Ff(N)||0,V.end=B)})}return D(p.value),T}),y=O(()=>{const T={};let B=0;function D(K){for(let N=K.length-1;N>=0;--N){const V=K[N],ie={start:B,end:0};T[Sn(V)]=ie,"children"in V?(D(V.children),ie.end=B):(B+=Ff(V)||0,ie.end=B)}}return D(b.value),T});function $(){var T,B;const{value:D}=p;let K=0;const{value:N}=m;let V=null;for(let ie=0;ie(((T=N[he])===null||T===void 0?void 0:T.start)||0)-K)V=he,K=((B=N[he])===null||B===void 0?void 0:B.end)||0;else break}c.value=V}function S(){f.value=[];let T=e.columns.find(B=>Sn(B)===c.value);for(;T&&"children"in T;){const B=T.children.length;if(B===0)break;const D=T.children[B-1];f.value.push(Sn(D)),T=D}}function x(){var T,B;const{value:D}=b,K=Number(e.scrollX),{value:N}=o;if(N===null)return;let V=0,ie=null;const{value:he}=y;for(let J=D.length-1;J>=0;--J){const re=Sn(D[J]);if(Math.round(s+(((T=he[re])===null||T===void 0?void 0:T.start)||0)+N-V)Sn(B)===v.value);for(;T&&"children"in T&&T.children.length;){const B=T.children[0];g.value.push(Sn(B)),T=B}}function C(){const T=t.value?t.value.getHeaderElement():null,B=t.value?t.value.getBodyElement():null;return{header:T,body:B}}function w(){const{body:T}=C();T&&(T.scrollTop=0)}function k(){d.value!=="body"?Ai(M):d.value=void 0}function F(T){var B;(B=e.onScroll)===null||B===void 0||B.call(e,T),d.value!=="head"?Ai(M):d.value=void 0}function M(){const{header:T,body:B}=C();if(!B)return;const{value:D}=o;if(D!==null){if(T){const K=s-T.scrollLeft;d.value=K!==0?"head":"body",d.value==="head"?(s=T.scrollLeft,B.scrollLeft=s):(s=B.scrollLeft,T.scrollLeft=s)}else s=B.scrollLeft;$(),S(),x(),R()}}function _(T){const{header:B}=C();B&&(B.scrollLeft=T,M())}return tt(n,()=>{w()}),{styleScrollXRef:u,fixedColumnLeftMapRef:m,fixedColumnRightMapRef:y,leftFixedColumnsRef:p,rightFixedColumnsRef:b,leftActiveFixedColKeyRef:c,leftActiveFixedChildrenColKeysRef:f,rightActiveFixedColKeyRef:v,rightActiveFixedChildrenColKeysRef:g,syncScrollState:M,handleTableBodyScroll:F,handleTableHeaderScroll:k,setHeaderScrollLeft:_,explicitlyScrollableRef:l,xScrollableRef:a}}function vl(e){return typeof e=="object"&&typeof e.multiple=="number"?e.multiple:!1}function P2(e,t){return t&&(e===void 0||e==="default"||typeof e=="object"&&e.compare==="default")?$2(t):typeof e=="function"?e:e&&typeof e=="object"&&e.compare&&e.compare!=="default"?e.compare:!1}function $2(e){return(t,n)=>{const o=t[e],r=n[e];return o==null?r==null?0:-1:r==null?1:typeof o=="number"&&typeof r=="number"?o-r:typeof o=="string"&&typeof r=="string"?o.localeCompare(r):0}}function _2(e,{dataRelatedColsRef:t,filteredDataRef:n}){const o=[];t.value.forEach(g=>{var u;g.sorter!==void 0&&v(o,{columnKey:g.key,sorter:g.sorter,order:(u=g.defaultSortOrder)!==null&&u!==void 0?u:!1})});const r=E(o),i=O(()=>{const g=t.value.filter(b=>b.type!=="selection"&&b.sorter!==void 0&&(b.sortOrder==="ascend"||b.sortOrder==="descend"||b.sortOrder===!1)),u=g.filter(b=>b.sortOrder!==!1);if(u.length)return u.map(b=>({columnKey:b.key,order:b.sortOrder,sorter:b.sorter}));if(g.length)return[];const{value:p}=r;return Array.isArray(p)?p:p?[p]:[]}),l=O(()=>{const g=i.value.slice().sort((u,p)=>{const b=vl(u.sorter)||0;return(vl(p.sorter)||0)-b});return g.length?n.value.slice().sort((p,b)=>{let m=0;return g.some(y=>{const{columnKey:$,sorter:S,order:x}=y,R=P2(S,$);return R&&x&&(m=R(p.rawNode,b.rawNode),m!==0)?(m=m*w$(x),!0):!1}),m}):n.value});function a(g){let u=i.value.slice();return g&&vl(g.sorter)!==!1?(u=u.filter(p=>vl(p.sorter)!==!1),v(u,g),u):g||null}function s(g){const u=a(g);d(u)}function d(g){const{"onUpdate:sorter":u,onUpdateSorter:p,onSorterChange:b}=e;u&&me(u,g),p&&me(p,g),b&&me(b,g),r.value=g}function c(g,u="ascend"){if(!g)f();else{const p=t.value.find(m=>m.type!=="selection"&&m.type!=="expand"&&m.key===g);if(!p?.sorter)return;const b=p.sorter;s({columnKey:g,sorter:b,order:u})}}function f(){d(null)}function v(g,u){const p=g.findIndex(b=>u?.columnKey&&b.columnKey===u.columnKey);p!==void 0&&p>=0?g[p]=u:g.push(u)}return{clearSorter:f,sort:c,sortedDataRef:l,mergedSortStateRef:i,deriveNextSorter:s}}function z2(e,{dataRelatedColsRef:t}){const n=O(()=>{const J=re=>{for(let ye=0;ye{const{childrenKey:J}=e;return ba(e.data,{ignoreEmptyChildren:!0,getKey:e.rowKey,getChildren:re=>re[J],getDisabled:re=>{var ye,Z;return!!(!((Z=(ye=n.value)===null||ye===void 0?void 0:ye.disabled)===null||Z===void 0)&&Z.call(ye,re))}})}),r=ot(()=>{const{columns:J}=e,{length:re}=J;let ye=null;for(let Z=0;Z{const J=t.value.filter(Z=>Z.filterOptionValues!==void 0||Z.filterOptionValue!==void 0),re={};return J.forEach(Z=>{var le;Z.type==="selection"||Z.type==="expand"||(Z.filterOptionValues===void 0?re[Z.key]=(le=Z.filterOptionValue)!==null&&le!==void 0?le:null:re[Z.key]=Z.filterOptionValues)}),Object.assign(Of(i.value),re)}),c=O(()=>{const J=d.value,{columns:re}=e;function ye($e){return(ze,Ae)=>!!~String(Ae[$e]).indexOf(String(ze))}const{value:{treeNodes:Z}}=o,le=[];return re.forEach($e=>{$e.type==="selection"||$e.type==="expand"||"children"in $e||le.push([$e.key,$e])}),Z?Z.filter($e=>{const{rawNode:ze}=$e;for(const[Ae,Te]of le){let ne=J[Ae];if(ne==null||(Array.isArray(ne)||(ne=[ne]),!ne.length))continue;const Oe=Te.filter==="default"?ye(Ae):Te.filter;if(Te&&typeof Oe=="function")if(Te.filterMode==="and"){if(ne.some(z=>!Oe(z,ze)))return!1}else{if(ne.some(z=>Oe(z,ze)))continue;return!1}}return!0}):[]}),{sortedDataRef:f,deriveNextSorter:v,mergedSortStateRef:g,sort:u,clearSorter:p}=_2(e,{dataRelatedColsRef:t,filteredDataRef:c});t.value.forEach(J=>{var re;if(J.filter){const ye=J.defaultFilterOptionValues;J.filterMultiple?i.value[J.key]=ye||[]:ye!==void 0?i.value[J.key]=ye===null?[]:ye:i.value[J.key]=(re=J.defaultFilterOptionValue)!==null&&re!==void 0?re:null}});const b=O(()=>{const{pagination:J}=e;if(J!==!1)return J.page}),m=O(()=>{const{pagination:J}=e;if(J!==!1)return J.pageSize}),y=qt(b,a),$=qt(m,s),S=ot(()=>{const J=y.value;return e.remote?J:Math.max(1,Math.min(Math.ceil(c.value.length/$.value),J))}),x=O(()=>{const{pagination:J}=e;if(J){const{pageCount:re}=J;if(re!==void 0)return re}}),R=O(()=>{if(e.remote)return o.value.treeNodes;if(!e.pagination)return f.value;const J=$.value,re=(S.value-1)*J;return f.value.slice(re,re+J)}),C=O(()=>R.value.map(J=>J.rawNode));function w(J){const{pagination:re}=e;if(re){const{onChange:ye,"onUpdate:page":Z,onUpdatePage:le}=re;ye&&me(ye,J),le&&me(le,J),Z&&me(Z,J),_(J)}}function k(J){const{pagination:re}=e;if(re){const{onPageSizeChange:ye,"onUpdate:pageSize":Z,onUpdatePageSize:le}=re;ye&&me(ye,J),le&&me(le,J),Z&&me(Z,J),T(J)}}const F=O(()=>{if(e.remote){const{pagination:J}=e;if(J){const{itemCount:re}=J;if(re!==void 0)return re}return}return c.value.length}),M=O(()=>Object.assign(Object.assign({},e.pagination),{onChange:void 0,onUpdatePage:void 0,onUpdatePageSize:void 0,onPageSizeChange:void 0,"onUpdate:page":w,"onUpdate:pageSize":k,page:S.value,pageSize:$.value,pageCount:F.value===void 0?x.value:void 0,itemCount:F.value}));function _(J){const{"onUpdate:page":re,onPageChange:ye,onUpdatePage:Z}=e;Z&&me(Z,J),re&&me(re,J),ye&&me(ye,J),a.value=J}function T(J){const{"onUpdate:pageSize":re,onPageSizeChange:ye,onUpdatePageSize:Z}=e;ye&&me(ye,J),Z&&me(Z,J),re&&me(re,J),s.value=J}function B(J,re){const{onUpdateFilters:ye,"onUpdate:filters":Z,onFiltersChange:le}=e;ye&&me(ye,J,re),Z&&me(Z,J,re),le&&me(le,J,re),i.value=J}function D(J,re,ye,Z){var le;(le=e.onUnstableColumnResize)===null||le===void 0||le.call(e,J,re,ye,Z)}function K(J){_(J)}function N(){V()}function V(){ie({})}function ie(J){he(J)}function he(J){J?J&&(i.value=Of(J)):i.value={}}return{treeMateRef:o,mergedCurrentPageRef:S,mergedPaginationRef:M,paginatedDataRef:R,rawPaginatedDataRef:C,mergedFilterStateRef:d,mergedSortStateRef:g,hoverKeyRef:E(null),selectionColumnRef:n,childTriggerColIndexRef:r,doUpdateFilters:B,deriveNextSorter:v,doUpdatePageSize:T,doUpdatePage:_,onUnstableColumnResize:D,filter:he,filters:ie,clearFilter:N,clearFilters:V,clearSorter:p,page:K,sort:u}}const fc=pe({name:"DataTable",alias:["AdvancedTable"],props:y$,slots:Object,setup(e,{slots:t}){const{mergedBorderedRef:n,mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:i,mergedComponentPropsRef:l}=Ye(e),a=Bt("DataTable",i,o),s=O(()=>{var xe,ke;return e.size||((ke=(xe=l?.value)===null||xe===void 0?void 0:xe.DataTable)===null||ke===void 0?void 0:ke.size)||"medium"}),d=O(()=>{const{bottomBordered:xe}=e;return n.value?!1:xe!==void 0?xe:!0}),c=Be("DataTable","-data-table",m2,m$,e,o),f=E(null),v=E(null),{getResizableWidth:g,clearResizableWidth:u,doUpdateResizableWidth:p}=R2(),{rowsRef:b,colsRef:m,dataRelatedColsRef:y,hasEllipsisRef:$}=S2(e,g),{treeMateRef:S,mergedCurrentPageRef:x,paginatedDataRef:R,rawPaginatedDataRef:C,selectionColumnRef:w,hoverKeyRef:k,mergedPaginationRef:F,mergedFilterStateRef:M,mergedSortStateRef:_,childTriggerColIndexRef:T,doUpdatePage:B,doUpdateFilters:D,onUnstableColumnResize:K,deriveNextSorter:N,filter:V,filters:ie,clearFilter:he,clearFilters:J,clearSorter:re,page:ye,sort:Z}=z2(e,{dataRelatedColsRef:y}),le=xe=>{const{fileName:ke="data.csv",keepOriginalData:Ce=!1}=xe||{},Fe=Ce?e.data:C.value,Ze=$$(e.columns,Fe,e.getCsvCell,e.getCsvHeader),Lt=new Blob([Ze],{type:"text/csv;charset=utf-8"}),Et=URL.createObjectURL(Lt);Rx(Et,ke.endsWith(".csv")?ke:`${ke}.csv`),URL.revokeObjectURL(Et)},{doCheckAll:$e,doUncheckAll:ze,doCheck:Ae,doUncheck:Te,headerCheckboxDisabledRef:ne,someRowsCheckedRef:Oe,allRowsCheckedRef:z,mergedCheckedRowKeySetRef:L,mergedInderminateRowKeySetRef:ee}=x2(e,{selectionColumnRef:w,treeMateRef:S,paginatedDataRef:R}),{stickyExpandedRowsRef:se,mergedExpandedRowKeysRef:ae,renderExpandRef:Q,expandableRef:ue,doUpdateExpandedRowKeys:ve}=w2(e,S),fe=we(e,"maxHeight"),oe=O(()=>e.virtualScroll||e.flexHeight||e.maxHeight!==void 0||$.value?"fixed":e.tableLayout),{handleTableBodyScroll:q,handleTableHeaderScroll:G,syncScrollState:W,setHeaderScrollLeft:Y,leftActiveFixedColKeyRef:Se,leftActiveFixedChildrenColKeysRef:Le,rightActiveFixedColKeyRef:Ie,rightActiveFixedChildrenColKeysRef:De,leftFixedColumnsRef:Ge,rightFixedColumnsRef:Xe,fixedColumnLeftMapRef:at,fixedColumnRightMapRef:mt,xScrollableRef:ft,explicitlyScrollableRef:Re}=k2(e,{bodyWidthRef:f,mainTableInstRef:v,mergedCurrentPageRef:x,maxHeightRef:fe,mergedTableLayoutRef:oe}),{localeRef:te}=Xi("DataTable");qe(En,{xScrollableRef:ft,explicitlyScrollableRef:Re,props:e,treeMateRef:S,renderExpandIconRef:we(e,"renderExpandIcon"),loadingKeySetRef:E(new Set),slots:t,indentRef:we(e,"indent"),childTriggerColIndexRef:T,bodyWidthRef:f,componentId:ar(),hoverKeyRef:k,mergedClsPrefixRef:o,mergedThemeRef:c,scrollXRef:O(()=>e.scrollX),rowsRef:b,colsRef:m,paginatedDataRef:R,leftActiveFixedColKeyRef:Se,leftActiveFixedChildrenColKeysRef:Le,rightActiveFixedColKeyRef:Ie,rightActiveFixedChildrenColKeysRef:De,leftFixedColumnsRef:Ge,rightFixedColumnsRef:Xe,fixedColumnLeftMapRef:at,fixedColumnRightMapRef:mt,mergedCurrentPageRef:x,someRowsCheckedRef:Oe,allRowsCheckedRef:z,mergedSortStateRef:_,mergedFilterStateRef:M,loadingRef:we(e,"loading"),rowClassNameRef:we(e,"rowClassName"),mergedCheckedRowKeySetRef:L,mergedExpandedRowKeysRef:ae,mergedInderminateRowKeySetRef:ee,localeRef:te,expandableRef:ue,stickyExpandedRowsRef:se,rowKeyRef:we(e,"rowKey"),renderExpandRef:Q,summaryRef:we(e,"summary"),virtualScrollRef:we(e,"virtualScroll"),virtualScrollXRef:we(e,"virtualScrollX"),heightForRowRef:we(e,"heightForRow"),minRowHeightRef:we(e,"minRowHeight"),virtualScrollHeaderRef:we(e,"virtualScrollHeader"),headerHeightRef:we(e,"headerHeight"),rowPropsRef:we(e,"rowProps"),stripedRef:we(e,"striped"),checkOptionsRef:O(()=>{const{value:xe}=w;return xe?.options}),rawPaginatedDataRef:C,filterMenuCssVarsRef:O(()=>{const{self:{actionDividerColor:xe,actionPadding:ke,actionButtonMargin:Ce}}=c.value;return{"--n-action-padding":ke,"--n-action-button-margin":Ce,"--n-action-divider-color":xe}}),onLoadRef:we(e,"onLoad"),mergedTableLayoutRef:oe,maxHeightRef:fe,minHeightRef:we(e,"minHeight"),flexHeightRef:we(e,"flexHeight"),headerCheckboxDisabledRef:ne,paginationBehaviorOnFilterRef:we(e,"paginationBehaviorOnFilter"),summaryPlacementRef:we(e,"summaryPlacement"),filterIconPopoverPropsRef:we(e,"filterIconPopoverProps"),scrollbarPropsRef:we(e,"scrollbarProps"),syncScrollState:W,doUpdatePage:B,doUpdateFilters:D,getResizableWidth:g,onUnstableColumnResize:K,clearResizableWidth:u,doUpdateResizableWidth:p,deriveNextSorter:N,doCheck:Ae,doUncheck:Te,doCheckAll:$e,doUncheckAll:ze,doUpdateExpandedRowKeys:ve,handleTableHeaderScroll:G,handleTableBodyScroll:q,setHeaderScrollLeft:Y,renderCell:we(e,"renderCell")});const A={filter:V,filters:ie,clearFilters:J,clearSorter:re,page:ye,sort:Z,clearFilter:he,downloadCsv:le,scrollTo:(xe,ke)=>{var Ce;(Ce=v.value)===null||Ce===void 0||Ce.scrollTo(xe,ke)}},X=O(()=>{const xe=s.value,{common:{cubicBezierEaseInOut:ke},self:{borderColor:Ce,tdColorHover:Fe,tdColorSorting:Ze,tdColorSortingModal:Lt,tdColorSortingPopover:Et,thColorSorting:Dt,thColorSortingModal:zt,thColorSortingPopover:Ht,thColor:on,thColorHover:Nt,tdColor:Xt,tdTextColor:Mt,thTextColor:U,thFontWeight:ce,thButtonColorHover:Me,thIconColor:je,thIconColorActive:Ve,filterSize:Je,borderRadius:rn,lineHeight:ln,tdColorModal:Cn,thColorModal:eo,borderColorModal:to,thColorHoverModal:Wo,tdColorHoverModal:qr,borderColorPopover:Xr,thColorPopover:Yr,tdColorPopover:Zr,tdColorHoverPopover:mo,thColorHoverPopover:yo,paginationMargin:Sa,emptyPadding:Ra,boxShadowAfter:ka,boxShadowBefore:Pa,sorterSize:$a,resizableContainerSize:_a,resizableSize:za,loadingColor:Ta,loadingSize:Fa,opacityLoading:Oa,tdColorStriped:Ea,tdColorStripedModal:Ma,tdColorStripedPopover:Ba,[de("fontSize",xe)]:Aa,[de("thPadding",xe)]:Ia,[de("tdPadding",xe)]:La}}=c.value;return{"--n-font-size":Aa,"--n-th-padding":Ia,"--n-td-padding":La,"--n-bezier":ke,"--n-border-radius":rn,"--n-line-height":ln,"--n-border-color":Ce,"--n-border-color-modal":to,"--n-border-color-popover":Xr,"--n-th-color":on,"--n-th-color-hover":Nt,"--n-th-color-modal":eo,"--n-th-color-hover-modal":Wo,"--n-th-color-popover":Yr,"--n-th-color-hover-popover":yo,"--n-td-color":Xt,"--n-td-color-hover":Fe,"--n-td-color-modal":Cn,"--n-td-color-hover-modal":qr,"--n-td-color-popover":Zr,"--n-td-color-hover-popover":mo,"--n-th-text-color":U,"--n-td-text-color":Mt,"--n-th-font-weight":ce,"--n-th-button-color-hover":Me,"--n-th-icon-color":je,"--n-th-icon-color-active":Ve,"--n-filter-size":Je,"--n-pagination-margin":Sa,"--n-empty-padding":Ra,"--n-box-shadow-before":Pa,"--n-box-shadow-after":ka,"--n-sorter-size":$a,"--n-resizable-container-size":_a,"--n-resizable-size":za,"--n-loading-size":Fa,"--n-loading-color":Ta,"--n-opacity-loading":Oa,"--n-td-color-striped":Ea,"--n-td-color-striped-modal":Ma,"--n-td-color-striped-popover":Ba,"--n-td-color-sorting":Ze,"--n-td-color-sorting-modal":Lt,"--n-td-color-sorting-popover":Et,"--n-th-color-sorting":Dt,"--n-th-color-sorting-modal":zt,"--n-th-color-sorting-popover":Ht}}),be=r?vt("data-table",O(()=>s.value[0]),X,e):void 0,_e=O(()=>{if(!e.pagination)return!1;if(e.paginateSinglePage)return!0;const xe=F.value,{pageCount:ke}=xe;return ke!==void 0?ke>1:xe.itemCount&&xe.pageSize&&xe.itemCount>xe.pageSize});return Object.assign({mainTableInstRef:v,mergedClsPrefix:o,rtlEnabled:a,mergedTheme:c,paginatedData:R,mergedBordered:n,mergedBottomBordered:d,mergedPagination:F,mergedShowPagination:_e,cssVars:r?void 0:X,themeClass:be?.themeClass,onRender:be?.onRender},A)},render(){const{mergedClsPrefix:e,themeClass:t,onRender:n,$slots:o,spinProps:r}=this;return n?.(),h("div",{class:[`${e}-data-table`,this.rtlEnabled&&`${e}-data-table--rtl`,t,{[`${e}-data-table--bordered`]:this.mergedBordered,[`${e}-data-table--bottom-bordered`]:this.mergedBottomBordered,[`${e}-data-table--single-line`]:this.singleLine,[`${e}-data-table--single-column`]:this.singleColumn,[`${e}-data-table--loading`]:this.loading,[`${e}-data-table--flex-height`]:this.flexHeight}],style:this.cssVars},h("div",{class:`${e}-data-table-wrapper`},h(b2,{ref:"mainTableInstRef"})),this.mergedShowPagination?h("div",{class:`${e}-data-table__pagination`},h(d$,Object.assign({theme:this.mergedTheme.peers.Pagination,themeOverrides:this.mergedTheme.peerOverrides.Pagination,disabled:this.loading},this.mergedPagination))):null,h(pn,{name:"fade-in-scale-up-transition"},{default:()=>this.loading?h("div",{class:`${e}-data-table-loading-wrapper`},$n(o.loading,()=>[h(gr,Object.assign({clsPrefix:e,strokeWidth:20},r))])):null}))}}),vg="n-dialog-provider",gg="n-dialog-api",T2="n-dialog-reactive-list";function F2(){const e=Ee(gg,null);return e===null&&sr("use-dialog","No outer founded."),e}const O2={titleFontSize:"18px",padding:"16px 28px 20px 28px",iconSize:"28px",actionSpace:"12px",contentMargin:"8px 0 16px 0",iconMargin:"0 4px 0 0",iconMarginIconTop:"4px 0 8px 0",closeSize:"22px",closeIconSize:"18px",closeMargin:"20px 26px 0 0",closeMarginIconTop:"10px 16px 0 0"};function E2(e){const{textColor1:t,textColor2:n,modalColor:o,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeColorHover:a,closeColorPressed:s,infoColor:d,successColor:c,warningColor:f,errorColor:v,primaryColor:g,dividerColor:u,borderRadius:p,fontWeightStrong:b,lineHeight:m,fontSize:y}=e;return Object.assign(Object.assign({},O2),{fontSize:y,lineHeight:m,border:`1px solid ${u}`,titleTextColor:t,textColor:n,color:o,closeColorHover:a,closeColorPressed:s,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeBorderRadius:p,iconColor:g,iconColorInfo:d,iconColorSuccess:c,iconColorWarning:f,iconColorError:v,borderRadius:p,titleFontWeight:b})}const bg={name:"Dialog",common:gt,peers:{Button:rc},self:E2},ya={icon:Function,type:{type:String,default:"default"},title:[String,Function],closable:{type:Boolean,default:!0},negativeText:String,positiveText:String,positiveButtonProps:Object,negativeButtonProps:Object,content:[String,Function],action:Function,showIcon:{type:Boolean,default:!0},loading:Boolean,bordered:Boolean,iconPlacement:String,titleClass:[String,Array],titleStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],actionClass:[String,Array],actionStyle:[String,Object],onPositiveClick:Function,onNegativeClick:Function,onClose:Function,closeFocusable:Boolean},mg=Gi(ya),M2=I([P("dialog",` + --n-icon-margin: var(--n-icon-margin-top) var(--n-icon-margin-right) var(--n-icon-margin-bottom) var(--n-icon-margin-left); + word-break: break-word; + line-height: var(--n-line-height); + position: relative; + background: var(--n-color); + color: var(--n-text-color); + box-sizing: border-box; + margin: auto; + border-radius: var(--n-border-radius); + padding: var(--n-padding); + transition: + border-color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `,[j("icon",` + color: var(--n-icon-color); + `),H("bordered",` + border: var(--n-border); + `),H("icon-top",[j("close",` + margin: var(--n-close-margin); + `),j("icon",` + margin: var(--n-icon-margin); + `),j("content",` + text-align: center; + `),j("title",` + justify-content: center; + `),j("action",` + justify-content: center; + `)]),H("icon-left",[j("icon",` + margin: var(--n-icon-margin); + `),H("closable",[j("title",` + padding-right: calc(var(--n-close-size) + 6px); + `)])]),j("close",` + position: absolute; + right: 0; + top: 0; + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + z-index: 1; + `),j("content",` + font-size: var(--n-font-size); + margin: var(--n-content-margin); + position: relative; + word-break: break-word; + `,[H("last","margin-bottom: 0;")]),j("action",` + display: flex; + justify-content: flex-end; + `,[I("> *:not(:last-child)",` + margin-right: var(--n-action-space); + `)]),j("icon",` + font-size: var(--n-icon-size); + transition: color .3s var(--n-bezier); + `),j("title",` + transition: color .3s var(--n-bezier); + display: flex; + align-items: center; + font-size: var(--n-title-font-size); + font-weight: var(--n-title-font-weight); + color: var(--n-title-text-color); + `),P("dialog-icon-container",` + display: flex; + justify-content: center; + `)]),sa(P("dialog",` + width: 446px; + max-width: calc(100vw - 32px); + `)),P("dialog",[mp(` + width: 446px; + max-width: calc(100vw - 32px); + `)])]),B2={default:()=>h(Wl,null),info:()=>h(Wl,null),success:()=>h(Jd,null),warning:()=>h(Qd,null),error:()=>h(Zd,null)},yg=pe({name:"Dialog",alias:["NimbusConfirmCard","Confirm"],props:Object.assign(Object.assign({},Be.props),ya),slots:Object,setup(e){const{mergedComponentPropsRef:t,mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedRtlRef:r}=Ye(e),i=Bt("Dialog",r,n),l=O(()=>{var g,u;const{iconPlacement:p}=e;return p||((u=(g=t?.value)===null||g===void 0?void 0:g.Dialog)===null||u===void 0?void 0:u.iconPlacement)||"left"});function a(g){const{onPositiveClick:u}=e;u&&u(g)}function s(g){const{onNegativeClick:u}=e;u&&u(g)}function d(){const{onClose:g}=e;g&&g()}const c=Be("Dialog","-dialog",M2,bg,e,n),f=O(()=>{const{type:g}=e,u=l.value,{common:{cubicBezierEaseInOut:p},self:{fontSize:b,lineHeight:m,border:y,titleTextColor:$,textColor:S,color:x,closeBorderRadius:R,closeColorHover:C,closeColorPressed:w,closeIconColor:k,closeIconColorHover:F,closeIconColorPressed:M,closeIconSize:_,borderRadius:T,titleFontWeight:B,titleFontSize:D,padding:K,iconSize:N,actionSpace:V,contentMargin:ie,closeSize:he,[u==="top"?"iconMarginIconTop":"iconMargin"]:J,[u==="top"?"closeMarginIconTop":"closeMargin"]:re,[de("iconColor",g)]:ye}}=c.value,Z=Ft(J);return{"--n-font-size":b,"--n-icon-color":ye,"--n-bezier":p,"--n-close-margin":re,"--n-icon-margin-top":Z.top,"--n-icon-margin-right":Z.right,"--n-icon-margin-bottom":Z.bottom,"--n-icon-margin-left":Z.left,"--n-icon-size":N,"--n-close-size":he,"--n-close-icon-size":_,"--n-close-border-radius":R,"--n-close-color-hover":C,"--n-close-color-pressed":w,"--n-close-icon-color":k,"--n-close-icon-color-hover":F,"--n-close-icon-color-pressed":M,"--n-color":x,"--n-text-color":S,"--n-border-radius":T,"--n-padding":K,"--n-line-height":m,"--n-border":y,"--n-content-margin":ie,"--n-title-font-size":D,"--n-title-font-weight":B,"--n-title-text-color":$,"--n-action-space":V}}),v=o?vt("dialog",O(()=>`${e.type[0]}${l.value[0]}`),f,e):void 0;return{mergedClsPrefix:n,rtlEnabled:i,mergedIconPlacement:l,mergedTheme:c,handlePositiveClick:a,handleNegativeClick:s,handleCloseClick:d,cssVars:o?void 0:f,themeClass:v?.themeClass,onRender:v?.onRender}},render(){var e;const{bordered:t,mergedIconPlacement:n,cssVars:o,closable:r,showIcon:i,title:l,content:a,action:s,negativeText:d,positiveText:c,positiveButtonProps:f,negativeButtonProps:v,handlePositiveClick:g,handleNegativeClick:u,mergedTheme:p,loading:b,type:m,mergedClsPrefix:y}=this;(e=this.onRender)===null||e===void 0||e.call(this);const $=i?h(kt,{clsPrefix:y,class:`${y}-dialog__icon`},{default:()=>lt(this.$slots.icon,x=>x||(this.icon?wt(this.icon):B2[this.type]()))}):null,S=lt(this.$slots.action,x=>x||c||d||s?h("div",{class:[`${y}-dialog__action`,this.actionClass],style:this.actionStyle},x||(s?[wt(s)]:[this.negativeText&&h(It,Object.assign({theme:p.peers.Button,themeOverrides:p.peerOverrides.Button,ghost:!0,size:"small",onClick:u},v),{default:()=>wt(this.negativeText)}),this.positiveText&&h(It,Object.assign({theme:p.peers.Button,themeOverrides:p.peerOverrides.Button,size:"small",type:m==="default"?"primary":m,disabled:b,loading:b,onClick:g},f),{default:()=>wt(this.positiveText)})])):null);return h("div",{class:[`${y}-dialog`,this.themeClass,this.closable&&`${y}-dialog--closable`,`${y}-dialog--icon-${n}`,t&&`${y}-dialog--bordered`,this.rtlEnabled&&`${y}-dialog--rtl`],style:o,role:"dialog"},r?lt(this.$slots.close,x=>{const R=[`${y}-dialog__close`,this.rtlEnabled&&`${y}-dialog--rtl`];return x?h("div",{class:R},x):h(Kr,{focusable:this.closeFocusable,clsPrefix:y,class:R,onClick:this.handleCloseClick})}):null,i&&n==="top"?h("div",{class:`${y}-dialog-icon-container`},$):null,h("div",{class:[`${y}-dialog__title`,this.titleClass],style:this.titleStyle},i&&n==="left"?$:null,$n(this.$slots.header,()=>[wt(l)])),h("div",{class:[`${y}-dialog__content`,S?"":`${y}-dialog__content--last`,this.contentClass],style:this.contentStyle},$n(this.$slots.default,()=>[wt(a)])),S)}});function A2(e){const{modalColor:t,textColor2:n,boxShadow3:o}=e;return{color:t,textColor:n,boxShadow:o}}const I2={name:"Modal",common:gt,peers:{Scrollbar:jo,Dialog:bg,Card:Wv},self:A2},L2="n-modal-provider",xg="n-modal-api",D2="n-modal-reactive-list";function H2(){const e=Ee(xg,null);return e===null&&sr("use-modal","No outer founded."),e}const rd="n-draggable";function N2(e,t){let n;const o=O(()=>e.value!==!1),r=O(()=>o.value?rd:""),i=O(()=>{const s=e.value;return s===!0||s===!1?!0:s?s.bounds!=="none":!0});function l(s){const d=s.querySelector(`.${rd}`);if(!d||!r.value)return;let c=0,f=0,v=0,g=0,u=0,p=0,b,m=null,y=null;function $(C){C.preventDefault(),b=C;const{x:w,y:k,right:F,bottom:M}=s.getBoundingClientRect();f=w,g=k,c=window.innerWidth-F,v=window.innerHeight-M;const{left:_,top:T}=s.style;u=+T.slice(0,-2),p=+_.slice(0,-2)}function S(){y&&(s.style.top=`${y.y}px`,s.style.left=`${y.x}px`,y=null),m=null}function x(C){if(!b)return;const{clientX:w,clientY:k}=b;let F=C.clientX-w,M=C.clientY-k;i.value&&(F>c?F=c:-F>f&&(F=-f),M>v?M=v:-M>g&&(M=-g));const _=F+p,T=M+u;y={x:_,y:T},m||(m=requestAnimationFrame(S))}function R(){b=void 0,m&&(cancelAnimationFrame(m),m=null),y&&(s.style.top=`${y.y}px`,s.style.left=`${y.x}px`,y=null),t.onEnd(s)}ct("mousedown",d,$),ct("mousemove",window,x),ct("mouseup",window,R),n=()=>{m&&cancelAnimationFrame(m),et("mousedown",d,$),et("mousemove",window,x),et("mouseup",window,R)}}function a(){n&&(n(),n=void 0)}return ra(a),{stopDrag:a,startDrag:l,draggableRef:o,draggableClassRef:r}}const hc=Object.assign(Object.assign({},ic),ya),j2=Gi(hc),W2=pe({name:"ModalBody",inheritAttrs:!1,slots:Object,props:Object.assign(Object.assign({show:{type:Boolean,required:!0},preset:String,displayDirective:{type:String,required:!0},trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},blockScroll:Boolean,draggable:{type:[Boolean,Object],default:!1},maskHidden:Boolean},hc),{renderMask:Function,onClickoutside:Function,onBeforeLeave:{type:Function,required:!0},onAfterLeave:{type:Function,required:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0},onClose:{type:Function,required:!0},onAfterEnter:Function,onEsc:Function}),setup(e){const t=E(null),n=E(null),o=E(e.show),r=E(null),i=E(null),l=Ee($p);let a=null;tt(we(e,"show"),w=>{w&&(a=l.getMousePosition())},{immediate:!0});const{stopDrag:s,startDrag:d,draggableRef:c,draggableClassRef:f}=N2(we(e,"draggable"),{onEnd:w=>{p(w)}}),v=O(()=>Ar([e.titleClass,f.value])),g=O(()=>Ar([e.headerClass,f.value]));tt(we(e,"show"),w=>{w&&(o.value=!0)}),Fy(O(()=>e.blockScroll&&o.value));function u(){if(l.transformOriginRef.value==="center")return"";const{value:w}=r,{value:k}=i;if(w===null||k===null)return"";if(n.value){const F=n.value.containerScrollTop;return`${w}px ${k+F}px`}return""}function p(w){if(l.transformOriginRef.value==="center"||!a||!n.value)return;const k=n.value.containerScrollTop,{offsetLeft:F,offsetTop:M}=w,_=a.y,T=a.x;r.value=-(F-T),i.value=-(M-_-k),w.style.transformOrigin=u()}function b(w){Rt(()=>{p(w)})}function m(w){w.style.transformOrigin=u(),e.onBeforeLeave()}function y(w){const k=w;c.value&&d(k),e.onAfterEnter&&e.onAfterEnter(k)}function $(){o.value=!1,r.value=null,i.value=null,s(),e.onAfterLeave()}function S(){const{onClose:w}=e;w&&w()}function x(){e.onNegativeClick()}function R(){e.onPositiveClick()}const C=E(null);return tt(C,w=>{w&&Rt(()=>{const k=w.el;k&&t.value!==k&&(t.value=k)})}),qe(ua,t),qe(ca,null),qe(Ui,null),{mergedTheme:l.mergedThemeRef,appear:l.appearRef,isMounted:l.isMountedRef,mergedClsPrefix:l.mergedClsPrefixRef,bodyRef:t,scrollbarRef:n,draggableClass:f,displayed:o,childNodeRef:C,cardHeaderClass:g,dialogTitleClass:v,handlePositiveClick:R,handleNegativeClick:x,handleCloseClick:S,handleAfterEnter:y,handleAfterLeave:$,handleBeforeLeave:m,handleEnter:b}},render(){const{$slots:e,$attrs:t,handleEnter:n,handleAfterEnter:o,handleAfterLeave:r,handleBeforeLeave:i,preset:l,mergedClsPrefix:a}=this;let s=null;if(!l){if(s=Tx("default",e.default,{draggableClass:this.draggableClass}),!s){Zn("modal","default slot is empty");return}s=hn(s),s.props=nn({class:`${a}-modal`},t,s.props||{})}return this.displayDirective==="show"||this.displayed||this.show?qn(h("div",{role:"none",class:[`${a}-modal-body-wrapper`,this.maskHidden&&`${a}-modal-body-wrapper--mask-hidden`]},h(bo,{ref:"scrollbarRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:`${a}-modal-scroll-content`},{default:()=>{var d;return[(d=this.renderMask)===null||d===void 0?void 0:d.call(this),h(Kp,{disabled:!this.trapFocus||this.maskHidden,active:this.show,onEsc:this.onEsc,autoFocus:this.autoFocus},{default:()=>{var c;return h(pn,{name:"fade-in-scale-up-transition",appear:(c=this.appear)!==null&&c!==void 0?c:this.isMounted,onEnter:n,onAfterEnter:o,onAfterLeave:r,onBeforeLeave:i},{default:()=>{const f=[[Fo,this.show]],{onClickoutside:v}=this;return v&&f.push([Ii,this.onClickoutside,void 0,{capture:!0}]),qn(this.preset==="confirm"||this.preset==="dialog"?h(yg,Object.assign({},this.$attrs,{class:[`${a}-modal`,this.$attrs.class],ref:"bodyRef",theme:this.mergedTheme.peers.Dialog,themeOverrides:this.mergedTheme.peerOverrides.Dialog},Eo(this.$props,mg),{titleClass:this.dialogTitleClass,"aria-modal":"true"}),e):this.preset==="card"?h(co,Object.assign({},this.$attrs,{ref:"bodyRef",class:[`${a}-modal`,this.$attrs.class],theme:this.mergedTheme.peers.Card,themeOverrides:this.mergedTheme.peerOverrides.Card},Eo(this.$props,DP),{headerClass:this.cardHeaderClass,"aria-modal":"true",role:"dialog"}),e):this.childNodeRef=s,f)}})}})]}})),[[Fo,this.displayDirective==="if"||this.displayed||this.show]]):null}}),V2=I([P("modal-container",` + position: fixed; + left: 0; + top: 0; + height: 0; + width: 0; + display: flex; + `),P("modal-mask",` + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: rgba(0, 0, 0, .4); + `,[ec({enterDuration:".25s",leaveDuration:".25s",enterCubicBezier:"var(--n-bezier-ease-out)",leaveCubicBezier:"var(--n-bezier-ease-out)"})]),P("modal-body-wrapper",` + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: visible; + `,[P("modal-scroll-content",` + min-height: 100%; + display: flex; + position: relative; + `),H("mask-hidden","pointer-events: none;",[P("modal-scroll-content",[I("> *",` + pointer-events: all; + `)])])]),P("modal",` + position: relative; + align-self: center; + color: var(--n-text-color); + margin: auto; + box-shadow: var(--n-box-shadow); + `,[Yi({duration:".25s",enterScale:".5"}),I(`.${rd}`,` + cursor: move; + user-select: none; + `)])]),wg=Object.assign(Object.assign(Object.assign(Object.assign({},Be.props),{show:Boolean,showMask:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},preset:String,to:[String,Object],displayDirective:{type:String,default:"if"},transformOrigin:{type:String,default:"mouse"},zIndex:Number,autoFocus:{type:Boolean,default:!0},trapFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0}}),hc),{draggable:[Boolean,Object],onEsc:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onBeforeLeave:Function,onAfterLeave:Function,onClose:Function,onPositiveClick:Function,onNegativeClick:Function,onMaskClick:Function,internalDialog:Boolean,internalModal:Boolean,internalAppear:{type:Boolean,default:void 0},overlayStyle:[String,Object],onBeforeHide:Function,onAfterHide:Function,onHide:Function,unstableShowMask:{type:Boolean,default:void 0}}),xa=pe({name:"Modal",inheritAttrs:!1,props:wg,slots:Object,setup(e){const t=E(null),{mergedClsPrefixRef:n,namespaceRef:o,inlineThemeDisabled:r}=Ye(e),i=Be("Modal","-modal",V2,I2,e,n),l=Td(64),a=zd(),s=jr(),d=e.internalDialog?Ee(vg,null):null,c=e.internalModal?Ee(_y,null):null,f=Ty();function v(R){const{onUpdateShow:C,"onUpdate:show":w,onHide:k}=e;C&&me(C,R),w&&me(w,R),k&&!R&&k(R)}function g(){const{onClose:R}=e;R?Promise.resolve(R()).then(C=>{C!==!1&&v(!1)}):v(!1)}function u(){const{onPositiveClick:R}=e;R?Promise.resolve(R()).then(C=>{C!==!1&&v(!1)}):v(!1)}function p(){const{onNegativeClick:R}=e;R?Promise.resolve(R()).then(C=>{C!==!1&&v(!1)}):v(!1)}function b(){const{onBeforeLeave:R,onBeforeHide:C}=e;R&&me(R),C&&C()}function m(){const{onAfterLeave:R,onAfterHide:C}=e;R&&me(R),C&&C()}function y(R){var C;const{onMaskClick:w}=e;w&&w(R),e.maskClosable&&!((C=t.value)===null||C===void 0)&&C.contains(Dr(R))&&v(!1)}function $(R){var C;(C=e.onEsc)===null||C===void 0||C.call(e),e.show&&e.closeOnEsc&&$x(R)&&(f.value||v(!1))}qe($p,{getMousePosition:()=>{const R=d||c;if(R){const{clickedRef:C,clickedPositionRef:w}=R;if(C.value&&w.value)return w.value}return l.value?a.value:null},mergedClsPrefixRef:n,mergedThemeRef:i,isMountedRef:s,appearRef:we(e,"internalAppear"),transformOriginRef:we(e,"transformOrigin")});const S=O(()=>{const{common:{cubicBezierEaseOut:R},self:{boxShadow:C,color:w,textColor:k}}=i.value;return{"--n-bezier-ease-out":R,"--n-box-shadow":C,"--n-color":w,"--n-text-color":k}}),x=r?vt("theme-class",void 0,S,e):void 0;return{mergedClsPrefix:n,namespace:o,isMounted:s,containerRef:t,presetProps:O(()=>Eo(e,j2)),handleEsc:$,handleAfterLeave:m,handleClickoutside:y,handleBeforeLeave:b,doUpdateShow:v,handleNegativeClick:p,handlePositiveClick:u,handleCloseClick:g,cssVars:r?void 0:S,themeClass:x?.themeClass,onRender:x?.onRender}},render(){const{mergedClsPrefix:e}=this;return h(Ep,{to:this.to,show:this.show},{default:()=>{var t;(t=this.onRender)===null||t===void 0||t.call(this);const{showMask:n}=this;return qn(h("div",{role:"none",ref:"containerRef",class:[`${e}-modal-container`,this.themeClass,this.namespace],style:this.cssVars},h(W2,Object.assign({style:this.overlayStyle},this.$attrs,{ref:"bodyWrapper",displayDirective:this.displayDirective,show:this.show,preset:this.preset,autoFocus:this.autoFocus,trapFocus:this.trapFocus,draggable:this.draggable,blockScroll:this.blockScroll,maskHidden:!n},this.presetProps,{onEsc:this.handleEsc,onClose:this.handleCloseClick,onNegativeClick:this.handleNegativeClick,onPositiveClick:this.handlePositiveClick,onBeforeLeave:this.handleBeforeLeave,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave,onClickoutside:n?void 0:this.handleClickoutside,renderMask:n?()=>{var o;return h(pn,{name:"fade-in-transition",key:"mask",appear:(o=this.internalAppear)!==null&&o!==void 0?o:this.isMounted},{default:()=>this.show?h("div",{"aria-hidden":!0,ref:"containerRef",class:`${e}-modal-mask`,onClick:this.handleClickoutside}):null})}:void 0}),this.$slots)),[[Bd,{zIndex:this.zIndex,enabled:this.show}]])}})}}),K2=Object.assign(Object.assign({},ya),{onAfterEnter:Function,onAfterLeave:Function,transformOrigin:String,blockScroll:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},internalStyle:[String,Object],maskClosable:{type:Boolean,default:!0},zIndex:Number,onPositiveClick:Function,onNegativeClick:Function,onClose:Function,onMaskClick:Function,draggable:[Boolean,Object]}),U2=pe({name:"DialogEnvironment",props:Object.assign(Object.assign({},K2),{internalKey:{type:String,required:!0},to:[String,Object],onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const t=E(!0);function n(){const{onInternalAfterLeave:c,internalKey:f,onAfterLeave:v}=e;c&&c(f),v&&v()}function o(c){const{onPositiveClick:f}=e;f?Promise.resolve(f(c)).then(v=>{v!==!1&&s()}):s()}function r(c){const{onNegativeClick:f}=e;f?Promise.resolve(f(c)).then(v=>{v!==!1&&s()}):s()}function i(){const{onClose:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function l(c){const{onMaskClick:f,maskClosable:v}=e;f&&(f(c),v&&s())}function a(){const{onEsc:c}=e;c&&c()}function s(){t.value=!1}function d(c){t.value=c}return{show:t,hide:s,handleUpdateShow:d,handleAfterLeave:n,handleCloseClick:i,handleNegativeClick:r,handlePositiveClick:o,handleMaskClick:l,handleEsc:a}},render(){const{handlePositiveClick:e,handleUpdateShow:t,handleNegativeClick:n,handleCloseClick:o,handleAfterLeave:r,handleMaskClick:i,handleEsc:l,to:a,zIndex:s,maskClosable:d,show:c}=this;return h(xa,{show:c,onUpdateShow:t,onMaskClick:i,onEsc:l,to:a,zIndex:s,maskClosable:d,onAfterEnter:this.onAfterEnter,onAfterLeave:r,closeOnEsc:this.closeOnEsc,blockScroll:this.blockScroll,autoFocus:this.autoFocus,transformOrigin:this.transformOrigin,draggable:this.draggable,internalAppear:!0,internalDialog:!0},{default:({draggableClass:f})=>h(yg,Object.assign({},Eo(this.$props,mg),{titleClass:Ar([this.titleClass,f]),style:this.internalStyle,onClose:o,onNegativeClick:n,onPositiveClick:e}))})}}),G2={injectionKey:String,to:[String,Object]},q2=pe({name:"DialogProvider",props:G2,setup(){const e=E([]),t={};function n(a={}){const s=ar(),d=_n(Object.assign(Object.assign({},a),{key:s,destroy:()=>{var c;(c=t[`n-dialog-${s}`])===null||c===void 0||c.hide()}}));return e.value.push(d),d}const o=["info","success","warning","error"].map(a=>s=>n(Object.assign(Object.assign({},s),{type:a})));function r(a){const{value:s}=e;s.splice(s.findIndex(d=>d.key===a),1)}function i(){Object.values(t).forEach(a=>{a?.hide()})}const l={create:n,destroyAll:i,info:o[0],success:o[1],warning:o[2],error:o[3]};return qe(gg,l),qe(vg,{clickedRef:Td(64),clickedPositionRef:zd()}),qe(T2,e),Object.assign(Object.assign({},l),{dialogList:e,dialogInstRefs:t,handleAfterLeave:r})},render(){var e,t;return h(nt,null,[this.dialogList.map(n=>h(U2,dr(n,["destroy","style"],{internalStyle:n.style,to:this.to,ref:o=>{o===null?delete this.dialogInstRefs[`n-dialog-${n.key}`]:this.dialogInstRefs[`n-dialog-${n.key}`]=o},internalKey:n.key,onInternalAfterLeave:this.handleAfterLeave}))),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)])}}),Cg="n-loading-bar",Sg="n-loading-bar-api";function X2(e){const{primaryColor:t,errorColor:n}=e;return{colorError:n,colorLoading:t,height:"2px"}}const Y2={common:gt,self:X2},Z2=P("loading-bar-container",` + z-index: 5999; + position: fixed; + top: 0; + left: 0; + right: 0; + height: 2px; +`,[ec({enterDuration:"0.3s",leaveDuration:"0.8s"}),P("loading-bar",` + width: 100%; + transition: + max-width 4s linear, + background .2s linear; + height: var(--n-height); + `,[H("starting",` + background: var(--n-color-loading); + `),H("finishing",` + background: var(--n-color-loading); + transition: + max-width .2s linear, + background .2s linear; + `),H("error",` + background: var(--n-color-error); + transition: + max-width .2s linear, + background .2s linear; + `)])]);var gl=function(e,t,n,o){function r(i){return i instanceof n?i:new n(function(l){l(i)})}return new(n||(n=Promise))(function(i,l){function a(c){try{d(o.next(c))}catch(f){l(f)}}function s(c){try{d(o.throw(c))}catch(f){l(f)}}function d(c){c.done?i(c.value):r(c.value).then(a,s)}d((o=o.apply(e,t||[])).next())})};function bl(e,t){return`${t}-loading-bar ${t}-loading-bar--${e}`}const J2=pe({name:"LoadingBar",props:{containerClass:String,containerStyle:[String,Object]},setup(){const{inlineThemeDisabled:e}=Ye(),{props:t,mergedClsPrefixRef:n}=Ee(Cg),o=E(null),r=E(!1),i=E(!1),l=E(!1),a=E(!1);let s=!1;const d=E(!1),c=O(()=>{const{loadingBarStyle:x}=t;return x?x[d.value?"error":"loading"]:""});function f(){return gl(this,void 0,void 0,function*(){r.value=!1,l.value=!1,s=!1,d.value=!1,a.value=!0,yield Rt(),a.value=!1})}function v(){return gl(this,arguments,void 0,function*(x=0,R=80,C="starting"){if(i.value=!0,yield f(),s)return;l.value=!0,yield Rt();const w=o.value;w&&(w.style.maxWidth=`${x}%`,w.style.transition="none",w.offsetWidth,w.className=bl(C,n.value),w.style.transition="",w.style.maxWidth=`${R}%`)})}function g(){return gl(this,void 0,void 0,function*(){if(s||d.value)return;i.value&&(yield Rt()),s=!0;const x=o.value;x&&(x.className=bl("finishing",n.value),x.style.maxWidth="100%",x.offsetWidth,l.value=!1)})}function u(){if(!(s||d.value))if(!l.value)v(100,100,"error").then(()=>{d.value=!0;const x=o.value;x&&(x.className=bl("error",n.value),x.offsetWidth,l.value=!1)});else{d.value=!0;const x=o.value;if(!x)return;x.className=bl("error",n.value),x.style.maxWidth="100%",x.offsetWidth,l.value=!1}}function p(){r.value=!0}function b(){r.value=!1}function m(){return gl(this,void 0,void 0,function*(){yield f()})}const y=Be("LoadingBar","-loading-bar",Z2,Y2,t,n),$=O(()=>{const{self:{height:x,colorError:R,colorLoading:C}}=y.value;return{"--n-height":x,"--n-color-loading":C,"--n-color-error":R}}),S=e?vt("loading-bar",void 0,$,t):void 0;return{mergedClsPrefix:n,loadingBarRef:o,started:i,loading:l,entering:r,transitionDisabled:a,start:v,error:u,finish:g,handleEnter:p,handleAfterEnter:b,handleAfterLeave:m,mergedLoadingBarStyle:c,cssVars:e?void 0:$,themeClass:S?.themeClass,onRender:S?.onRender}},render(){if(!this.started)return null;const{mergedClsPrefix:e}=this;return h(pn,{name:"fade-in-transition",appear:!0,onEnter:this.handleEnter,onAfterEnter:this.handleAfterEnter,onAfterLeave:this.handleAfterLeave,css:!this.transitionDisabled},{default:()=>{var t;return(t=this.onRender)===null||t===void 0||t.call(this),qn(h("div",{class:[`${e}-loading-bar-container`,this.themeClass,this.containerClass],style:this.containerStyle},h("div",{ref:"loadingBarRef",class:[`${e}-loading-bar`],style:[this.cssVars,this.mergedLoadingBarStyle]})),[[Fo,this.loading||!this.loading&&this.entering]])}})}}),Q2=Object.assign(Object.assign({},Be.props),{to:{type:[String,Object,Boolean],default:void 0},containerClass:String,containerStyle:[String,Object],loadingBarStyle:{type:Object}}),e_=pe({name:"LoadingBarProvider",props:Q2,setup(e){const t=jr(),n=E(null),o={start(){var i;t.value?(i=n.value)===null||i===void 0||i.start():Rt(()=>{var l;(l=n.value)===null||l===void 0||l.start()})},error(){var i;t.value?(i=n.value)===null||i===void 0||i.error():Rt(()=>{var l;(l=n.value)===null||l===void 0||l.error()})},finish(){var i;t.value?(i=n.value)===null||i===void 0||i.finish():Rt(()=>{var l;(l=n.value)===null||l===void 0||l.finish()})}},{mergedClsPrefixRef:r}=Ye(e);return qe(Sg,o),qe(Cg,{props:e,mergedClsPrefixRef:r}),Object.assign(o,{loadingBarRef:n})},render(){var e,t;return h(nt,null,h(ea,{disabled:this.to===!1,to:this.to||"body"},h(J2,{ref:"loadingBarRef",containerStyle:this.containerStyle,containerClass:this.containerClass})),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});function t_(){const e=Ee(Sg,null);return e===null&&sr("use-loading-bar","No outer founded."),e}const Rg="n-message-api",kg="n-message-provider",n_={margin:"0 0 8px 0",padding:"10px 20px",maxWidth:"720px",minWidth:"420px",iconMargin:"0 10px 0 0",closeMargin:"0 0 0 10px",closeSize:"20px",closeIconSize:"16px",iconSize:"20px",fontSize:"14px"};function o_(e){const{textColor2:t,closeIconColor:n,closeIconColorHover:o,closeIconColorPressed:r,infoColor:i,successColor:l,errorColor:a,warningColor:s,popoverColor:d,boxShadow2:c,primaryColor:f,lineHeight:v,borderRadius:g,closeColorHover:u,closeColorPressed:p}=e;return Object.assign(Object.assign({},n_),{closeBorderRadius:g,textColor:t,textColorInfo:t,textColorSuccess:t,textColorError:t,textColorWarning:t,textColorLoading:t,color:d,colorInfo:d,colorSuccess:d,colorError:d,colorWarning:d,colorLoading:d,boxShadow:c,boxShadowInfo:c,boxShadowSuccess:c,boxShadowError:c,boxShadowWarning:c,boxShadowLoading:c,iconColor:t,iconColorInfo:i,iconColorSuccess:l,iconColorWarning:s,iconColorError:a,iconColorLoading:f,closeColorHover:u,closeColorPressed:p,closeIconColor:n,closeIconColorHover:o,closeIconColorPressed:r,closeColorHoverInfo:u,closeColorPressedInfo:p,closeIconColorInfo:n,closeIconColorHoverInfo:o,closeIconColorPressedInfo:r,closeColorHoverSuccess:u,closeColorPressedSuccess:p,closeIconColorSuccess:n,closeIconColorHoverSuccess:o,closeIconColorPressedSuccess:r,closeColorHoverError:u,closeColorPressedError:p,closeIconColorError:n,closeIconColorHoverError:o,closeIconColorPressedError:r,closeColorHoverWarning:u,closeColorPressedWarning:p,closeIconColorWarning:n,closeIconColorHoverWarning:o,closeIconColorPressedWarning:r,closeColorHoverLoading:u,closeColorPressedLoading:p,closeIconColorLoading:n,closeIconColorHoverLoading:o,closeIconColorPressedLoading:r,loadingColor:f,lineHeight:v,borderRadius:g,border:"0"})}const r_={common:gt,self:o_},Pg={icon:Function,type:{type:String,default:"info"},content:[String,Number,Function],showIcon:{type:Boolean,default:!0},closable:Boolean,keepAliveOnHover:Boolean,spinProps:Object,onClose:Function,onMouseenter:Function,onMouseleave:Function},i_=I([P("message-wrapper",` + margin: var(--n-margin); + z-index: 0; + transform-origin: top center; + display: flex; + `,[xP({overflow:"visible",originalTransition:"transform .3s var(--n-bezier)",enterToProps:{transform:"scale(1)"},leaveToProps:{transform:"scale(0.85)"}})]),P("message",` + box-sizing: border-box; + display: flex; + align-items: center; + transition: + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + transform .3s var(--n-bezier), + margin-bottom .3s var(--n-bezier); + padding: var(--n-padding); + border-radius: var(--n-border-radius); + border: var(--n-border); + flex-wrap: nowrap; + overflow: hidden; + max-width: var(--n-max-width); + color: var(--n-text-color); + background-color: var(--n-color); + box-shadow: var(--n-box-shadow); + `,[j("content",` + display: inline-block; + line-height: var(--n-line-height); + font-size: var(--n-font-size); + `),j("icon",` + position: relative; + margin: var(--n-icon-margin); + height: var(--n-icon-size); + width: var(--n-icon-size); + font-size: var(--n-icon-size); + flex-shrink: 0; + `,[["default","info","success","warning","error","loading"].map(e=>H(`${e}-type`,[I("> *",` + color: var(--n-icon-color-${e}); + transition: color .3s var(--n-bezier); + `)])),I("> *",` + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + `,[an()])]),j("close",` + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + flex-shrink: 0; + `,[I("&:hover",` + color: var(--n-close-icon-color-hover); + `),I("&:active",` + color: var(--n-close-icon-color-pressed); + `)])]),P("message-container",` + z-index: 6000; + position: fixed; + height: 0; + overflow: visible; + display: flex; + flex-direction: column; + align-items: center; + `,[H("top",` + top: 12px; + left: 0; + right: 0; + `),H("top-left",` + top: 12px; + left: 12px; + right: 0; + align-items: flex-start; + `),H("top-right",` + top: 12px; + left: 0; + right: 12px; + align-items: flex-end; + `),H("bottom",` + bottom: 4px; + left: 0; + right: 0; + justify-content: flex-end; + `),H("bottom-left",` + bottom: 4px; + left: 12px; + right: 0; + justify-content: flex-end; + align-items: flex-start; + `),H("bottom-right",` + bottom: 4px; + left: 0; + right: 12px; + justify-content: flex-end; + align-items: flex-end; + `)])]),l_={info:()=>h(Wl,null),success:()=>h(Jd,null),warning:()=>h(Qd,null),error:()=>h(Zd,null),default:()=>null},a_=pe({name:"Message",props:Object.assign(Object.assign({},Pg),{render:Function}),setup(e){const{inlineThemeDisabled:t,mergedRtlRef:n}=Ye(e),{props:o,mergedClsPrefixRef:r}=Ee(kg),i=Bt("Message",n,r),l=Be("Message","-message",i_,r_,o,r),a=O(()=>{const{type:d}=e,{common:{cubicBezierEaseInOut:c},self:{padding:f,margin:v,maxWidth:g,iconMargin:u,closeMargin:p,closeSize:b,iconSize:m,fontSize:y,lineHeight:$,borderRadius:S,border:x,iconColorInfo:R,iconColorSuccess:C,iconColorWarning:w,iconColorError:k,iconColorLoading:F,closeIconSize:M,closeBorderRadius:_,[de("textColor",d)]:T,[de("boxShadow",d)]:B,[de("color",d)]:D,[de("closeColorHover",d)]:K,[de("closeColorPressed",d)]:N,[de("closeIconColor",d)]:V,[de("closeIconColorPressed",d)]:ie,[de("closeIconColorHover",d)]:he}}=l.value;return{"--n-bezier":c,"--n-margin":v,"--n-padding":f,"--n-max-width":g,"--n-font-size":y,"--n-icon-margin":u,"--n-icon-size":m,"--n-close-icon-size":M,"--n-close-border-radius":_,"--n-close-size":b,"--n-close-margin":p,"--n-text-color":T,"--n-color":D,"--n-box-shadow":B,"--n-icon-color-info":R,"--n-icon-color-success":C,"--n-icon-color-warning":w,"--n-icon-color-error":k,"--n-icon-color-loading":F,"--n-close-color-hover":K,"--n-close-color-pressed":N,"--n-close-icon-color":V,"--n-close-icon-color-pressed":ie,"--n-close-icon-color-hover":he,"--n-line-height":$,"--n-border-radius":S,"--n-border":x}}),s=t?vt("message",O(()=>e.type[0]),a,{}):void 0;return{mergedClsPrefix:r,rtlEnabled:i,messageProviderProps:o,handleClose(){var d;(d=e.onClose)===null||d===void 0||d.call(e)},cssVars:t?void 0:a,themeClass:s?.themeClass,onRender:s?.onRender,placement:o.placement}},render(){const{render:e,type:t,closable:n,content:o,mergedClsPrefix:r,cssVars:i,themeClass:l,onRender:a,icon:s,handleClose:d,showIcon:c}=this;a?.();let f;return h("div",{class:[`${r}-message-wrapper`,l],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:[{alignItems:this.placement.startsWith("top")?"flex-start":"flex-end"},i]},e?e(this.$props):h("div",{class:[`${r}-message ${r}-message--${t}-type`,this.rtlEnabled&&`${r}-message--rtl`]},(f=s_(s,t,r,this.spinProps))&&c?h("div",{class:`${r}-message__icon ${r}-message__icon--${t}-type`},h(vr,null,{default:()=>f})):null,h("div",{class:`${r}-message__content`},wt(o)),n?h(Kr,{clsPrefix:r,class:`${r}-message__close`,onClick:d,absolute:!0}):null))}});function s_(e,t,n,o){if(typeof e=="function")return e();{const r=t==="loading"?h(gr,Object.assign({clsPrefix:n,strokeWidth:24,scale:.85},o)):l_[t]();return r?h(kt,{clsPrefix:n,key:t},{default:()=>r}):null}}const d_=pe({name:"MessageEnvironment",props:Object.assign(Object.assign({},Pg),{duration:{type:Number,default:3e3},onAfterLeave:Function,onLeave:Function,internalKey:{type:String,required:!0},onInternalAfterLeave:Function,onHide:Function,onAfterHide:Function}),setup(e){let t=null;const n=E(!0);Ct(()=>{o()});function o(){const{duration:c}=e;c&&(t=window.setTimeout(l,c))}function r(c){c.currentTarget===c.target&&t!==null&&(window.clearTimeout(t),t=null)}function i(c){c.currentTarget===c.target&&o()}function l(){const{onHide:c}=e;n.value=!1,t&&(window.clearTimeout(t),t=null),c&&c()}function a(){const{onClose:c}=e;c&&c(),l()}function s(){const{onAfterLeave:c,onInternalAfterLeave:f,onAfterHide:v,internalKey:g}=e;c&&c(),f&&f(g),v&&v()}function d(){l()}return{show:n,hide:l,handleClose:a,handleAfterLeave:s,handleMouseleave:i,handleMouseenter:r,deactivate:d}},render(){return h($v,{appear:!0,onAfterLeave:this.handleAfterLeave,onLeave:this.onLeave},{default:()=>[this.show?h(a_,{content:this.content,type:this.type,icon:this.icon,showIcon:this.showIcon,closable:this.closable,spinProps:this.spinProps,onClose:this.handleClose,onMouseenter:this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.keepAliveOnHover?this.handleMouseleave:void 0}):null]})}}),c_=Object.assign(Object.assign({},Be.props),{to:[String,Object],duration:{type:Number,default:3e3},keepAliveOnHover:Boolean,max:Number,placement:{type:String,default:"top"},closable:Boolean,containerClass:String,containerStyle:[String,Object]}),u_=pe({name:"MessageProvider",props:c_,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=E([]),o=E({}),r={create(s,d){return i(s,Object.assign({type:"default"},d))},info(s,d){return i(s,Object.assign(Object.assign({},d),{type:"info"}))},success(s,d){return i(s,Object.assign(Object.assign({},d),{type:"success"}))},warning(s,d){return i(s,Object.assign(Object.assign({},d),{type:"warning"}))},error(s,d){return i(s,Object.assign(Object.assign({},d),{type:"error"}))},loading(s,d){return i(s,Object.assign(Object.assign({},d),{type:"loading"}))},destroyAll:a};qe(kg,{props:e,mergedClsPrefixRef:t}),qe(Rg,r);function i(s,d){const c=ar(),f=_n(Object.assign(Object.assign({},d),{content:s,key:c,destroy:()=>{var g;(g=o.value[c])===null||g===void 0||g.hide()}})),{max:v}=e;return v&&n.value.length>=v&&n.value.shift(),n.value.push(f),f}function l(s){n.value.splice(n.value.findIndex(d=>d.key===s),1),delete o.value[s]}function a(){Object.values(o.value).forEach(s=>{s.hide()})}return Object.assign({mergedClsPrefix:t,messageRefs:o,messageList:n,handleAfterLeave:l},r)},render(){var e,t,n;return h(nt,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),this.messageList.length?h(ea,{to:(n=this.to)!==null&&n!==void 0?n:"body"},h("div",{class:[`${this.mergedClsPrefix}-message-container`,`${this.mergedClsPrefix}-message-container--${this.placement}`,this.containerClass],key:"message-container",style:this.containerStyle},this.messageList.map(o=>h(d_,Object.assign({ref:r=>{r&&(this.messageRefs[o.key]=r)},internalKey:o.key,onInternalAfterLeave:this.handleAfterLeave},dr(o,["destroy"],void 0),{duration:o.duration===void 0?this.duration:o.duration,keepAliveOnHover:o.keepAliveOnHover===void 0?this.keepAliveOnHover:o.keepAliveOnHover,closable:o.closable===void 0?this.closable:o.closable}))))):null)}});function f_(){const e=Ee(Rg,null);return e===null&&sr("use-message","No outer founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),e}const h_=pe({name:"ModalEnvironment",props:Object.assign(Object.assign({},wg),{internalKey:{type:String,required:!0},onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const t=E(!0);function n(){const{onInternalAfterLeave:c,internalKey:f,onAfterLeave:v}=e;c&&c(f),v&&v()}function o(){const{onPositiveClick:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function r(){const{onNegativeClick:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function i(){const{onClose:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function l(c){const{onMaskClick:f,maskClosable:v}=e;f&&(f(c),v&&s())}function a(){const{onEsc:c}=e;c&&c()}function s(){t.value=!1}function d(c){t.value=c}return{show:t,hide:s,handleUpdateShow:d,handleAfterLeave:n,handleCloseClick:i,handleNegativeClick:r,handlePositiveClick:o,handleMaskClick:l,handleEsc:a}},render(){const{handleUpdateShow:e,handleAfterLeave:t,handleMaskClick:n,handleEsc:o,show:r}=this;return h(xa,Object.assign({},this.$props,{show:r,onUpdateShow:e,onMaskClick:n,onEsc:o,onAfterLeave:t,internalAppear:!0,internalModal:!0}),this.$slots)}}),p_={to:[String,Object]},v_=pe({name:"ModalProvider",props:p_,setup(){const e=E([]),t={};function n(l={}){const a=ar(),s=_n(Object.assign(Object.assign({},l),{key:a,destroy:()=>{var d;(d=t[`n-modal-${a}`])===null||d===void 0||d.hide()}}));return e.value.push(s),s}function o(l){const{value:a}=e;a.splice(a.findIndex(s=>s.key===l),1)}function r(){Object.values(t).forEach(l=>{l?.hide()})}const i={create:n,destroyAll:r};return qe(xg,i),qe(L2,{clickedRef:Td(64),clickedPositionRef:zd()}),qe(D2,e),Object.assign(Object.assign({},i),{modalList:e,modalInstRefs:t,handleAfterLeave:o})},render(){var e,t;return h(nt,null,[this.modalList.map(n=>{var o;return h(h_,dr(n,["destroy","render"],{to:(o=n.to)!==null&&o!==void 0?o:this.to,ref:r=>{r===null?delete this.modalInstRefs[`n-modal-${n.key}`]:this.modalInstRefs[`n-modal-${n.key}`]=r},internalKey:n.key,onInternalAfterLeave:this.handleAfterLeave}),{default:n.render})}),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)])}}),g_={closeMargin:"16px 12px",closeSize:"20px",closeIconSize:"16px",width:"365px",padding:"16px",titleFontSize:"16px",metaFontSize:"12px",descriptionFontSize:"12px"};function b_(e){const{textColor2:t,successColor:n,infoColor:o,warningColor:r,errorColor:i,popoverColor:l,closeIconColor:a,closeIconColorHover:s,closeIconColorPressed:d,closeColorHover:c,closeColorPressed:f,textColor1:v,textColor3:g,borderRadius:u,fontWeightStrong:p,boxShadow2:b,lineHeight:m,fontSize:y}=e;return Object.assign(Object.assign({},g_),{borderRadius:u,lineHeight:m,fontSize:y,headerFontWeight:p,iconColor:t,iconColorSuccess:n,iconColorInfo:o,iconColorWarning:r,iconColorError:i,color:l,textColor:t,closeIconColor:a,closeIconColorHover:s,closeIconColorPressed:d,closeBorderRadius:u,closeColorHover:c,closeColorPressed:f,headerTextColor:v,descriptionTextColor:g,actionTextColor:t,boxShadow:b})}const m_={name:"Notification",common:gt,peers:{Scrollbar:jo},self:b_},wa="n-notification-provider",y_=pe({name:"NotificationContainer",props:{scrollable:{type:Boolean,required:!0},placement:{type:String,required:!0}},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:t,wipTransitionCountRef:n}=Ee(wa),o=E(null);return en(()=>{var r,i;n.value>0?(r=o?.value)===null||r===void 0||r.classList.add("transitioning"):(i=o?.value)===null||i===void 0||i.classList.remove("transitioning")}),{selfRef:o,mergedTheme:e,mergedClsPrefix:t,transitioning:n}},render(){const{$slots:e,scrollable:t,mergedClsPrefix:n,mergedTheme:o,placement:r}=this;return h("div",{ref:"selfRef",class:[`${n}-notification-container`,t&&`${n}-notification-container--scrollable`,`${n}-notification-container--${r}`]},t?h(bo,{theme:o.peers.Scrollbar,themeOverrides:o.peerOverrides.Scrollbar,contentStyle:{overflow:"hidden"}},e):e)}}),x_={info:()=>h(Wl,null),success:()=>h(Jd,null),warning:()=>h(Qd,null),error:()=>h(Zd,null),default:()=>null},pc={closable:{type:Boolean,default:!0},type:{type:String,default:"default"},avatar:Function,title:[String,Function],description:[String,Function],content:[String,Function],meta:[String,Function],action:[String,Function],onClose:{type:Function,required:!0},keepAliveOnHover:Boolean,onMouseenter:Function,onMouseleave:Function},w_=Gi(pc),C_=pe({name:"Notification",props:pc,setup(e){const{mergedClsPrefixRef:t,mergedThemeRef:n,props:o}=Ee(wa),{inlineThemeDisabled:r,mergedRtlRef:i}=Ye(),l=Bt("Notification",i,t),a=O(()=>{const{type:d}=e,{self:{color:c,textColor:f,closeIconColor:v,closeIconColorHover:g,closeIconColorPressed:u,headerTextColor:p,descriptionTextColor:b,actionTextColor:m,borderRadius:y,headerFontWeight:$,boxShadow:S,lineHeight:x,fontSize:R,closeMargin:C,closeSize:w,width:k,padding:F,closeIconSize:M,closeBorderRadius:_,closeColorHover:T,closeColorPressed:B,titleFontSize:D,metaFontSize:K,descriptionFontSize:N,[de("iconColor",d)]:V},common:{cubicBezierEaseOut:ie,cubicBezierEaseIn:he,cubicBezierEaseInOut:J}}=n.value,{left:re,right:ye,top:Z,bottom:le}=Ft(F);return{"--n-color":c,"--n-font-size":R,"--n-text-color":f,"--n-description-text-color":b,"--n-action-text-color":m,"--n-title-text-color":p,"--n-title-font-weight":$,"--n-bezier":J,"--n-bezier-ease-out":ie,"--n-bezier-ease-in":he,"--n-border-radius":y,"--n-box-shadow":S,"--n-close-border-radius":_,"--n-close-color-hover":T,"--n-close-color-pressed":B,"--n-close-icon-color":v,"--n-close-icon-color-hover":g,"--n-close-icon-color-pressed":u,"--n-line-height":x,"--n-icon-color":V,"--n-close-margin":C,"--n-close-size":w,"--n-close-icon-size":M,"--n-width":k,"--n-padding-left":re,"--n-padding-right":ye,"--n-padding-top":Z,"--n-padding-bottom":le,"--n-title-font-size":D,"--n-meta-font-size":K,"--n-description-font-size":N}}),s=r?vt("notification",O(()=>e.type[0]),a,o):void 0;return{mergedClsPrefix:t,showAvatar:O(()=>e.avatar||e.type!=="default"),handleCloseClick(){e.onClose()},rtlEnabled:l,cssVars:r?void 0:a,themeClass:s?.themeClass,onRender:s?.onRender}},render(){var e;const{mergedClsPrefix:t}=this;return(e=this.onRender)===null||e===void 0||e.call(this),h("div",{class:[`${t}-notification-wrapper`,this.themeClass],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:this.cssVars},h("div",{class:[`${t}-notification`,this.rtlEnabled&&`${t}-notification--rtl`,this.themeClass,{[`${t}-notification--closable`]:this.closable,[`${t}-notification--show-avatar`]:this.showAvatar}],style:this.cssVars},this.showAvatar?h("div",{class:`${t}-notification__avatar`},this.avatar?wt(this.avatar):this.type!=="default"?h(kt,{clsPrefix:t},{default:()=>x_[this.type]()}):null):null,this.closable?h(Kr,{clsPrefix:t,class:`${t}-notification__close`,onClick:this.handleCloseClick}):null,h("div",{ref:"bodyRef",class:`${t}-notification-main`},this.title?h("div",{class:`${t}-notification-main__header`},wt(this.title)):null,this.description?h("div",{class:`${t}-notification-main__description`},wt(this.description)):null,this.content?h("pre",{class:`${t}-notification-main__content`},wt(this.content)):null,this.meta||this.action?h("div",{class:`${t}-notification-main-footer`},this.meta?h("div",{class:`${t}-notification-main-footer__meta`},wt(this.meta)):null,this.action?h("div",{class:`${t}-notification-main-footer__action`},wt(this.action)):null):null)))}}),S_=Object.assign(Object.assign({},pc),{duration:Number,onClose:Function,onLeave:Function,onAfterEnter:Function,onAfterLeave:Function,onHide:Function,onAfterShow:Function,onAfterHide:Function}),R_=pe({name:"NotificationEnvironment",props:Object.assign(Object.assign({},S_),{internalKey:{type:String,required:!0},onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const{wipTransitionCountRef:t}=Ee(wa),n=E(!0);let o=null;function r(){n.value=!1,o&&window.clearTimeout(o)}function i(u){t.value++,Rt(()=>{u.style.height=`${u.offsetHeight}px`,u.style.maxHeight="0",u.style.transition="none",u.offsetHeight,u.style.transition="",u.style.maxHeight=u.style.height})}function l(u){t.value--,u.style.height="",u.style.maxHeight="";const{onAfterEnter:p,onAfterShow:b}=e;p&&p(),b&&b()}function a(u){t.value++,u.style.maxHeight=`${u.offsetHeight}px`,u.style.height=`${u.offsetHeight}px`,u.offsetHeight}function s(u){const{onHide:p}=e;p&&p(),u.style.maxHeight="0",u.offsetHeight}function d(){t.value--;const{onAfterLeave:u,onInternalAfterLeave:p,onAfterHide:b,internalKey:m}=e;u&&u(),p(m),b&&b()}function c(){const{duration:u}=e;u&&(o=window.setTimeout(r,u))}function f(u){u.currentTarget===u.target&&o!==null&&(window.clearTimeout(o),o=null)}function v(u){u.currentTarget===u.target&&c()}function g(){const{onClose:u}=e;u?Promise.resolve(u()).then(p=>{p!==!1&&r()}):r()}return Ct(()=>{e.duration&&(o=window.setTimeout(r,e.duration))}),{show:n,hide:r,handleClose:g,handleAfterLeave:d,handleLeave:s,handleBeforeLeave:a,handleAfterEnter:l,handleBeforeEnter:i,handleMouseenter:f,handleMouseleave:v}},render(){return h(pn,{name:"notification-transition",appear:!0,onBeforeEnter:this.handleBeforeEnter,onAfterEnter:this.handleAfterEnter,onBeforeLeave:this.handleBeforeLeave,onLeave:this.handleLeave,onAfterLeave:this.handleAfterLeave},{default:()=>this.show?h(C_,Object.assign({},Eo(this.$props,w_),{onClose:this.handleClose,onMouseenter:this.duration&&this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.duration&&this.keepAliveOnHover?this.handleMouseleave:void 0})):null})}}),k_=I([P("notification-container",` + z-index: 4000; + position: fixed; + overflow: visible; + display: flex; + flex-direction: column; + align-items: flex-end; + `,[I(">",[P("scrollbar",` + width: initial; + overflow: visible; + height: -moz-fit-content !important; + height: fit-content !important; + max-height: 100vh !important; + `,[I(">",[P("scrollbar-container",` + height: -moz-fit-content !important; + height: fit-content !important; + max-height: 100vh !important; + `,[P("scrollbar-content",` + padding-top: 12px; + padding-bottom: 33px; + `)])])])]),H("top, top-right, top-left",` + top: 12px; + `,[I("&.transitioning >",[P("scrollbar",[I(">",[P("scrollbar-container",` + min-height: 100vh !important; + `)])])])]),H("bottom, bottom-right, bottom-left",` + bottom: 12px; + `,[I(">",[P("scrollbar",[I(">",[P("scrollbar-container",[P("scrollbar-content",` + padding-bottom: 12px; + `)])])])]),P("notification-wrapper",` + display: flex; + align-items: flex-end; + margin-bottom: 0; + margin-top: 12px; + `)]),H("top, bottom",` + left: 50%; + transform: translateX(-50%); + `,[P("notification-wrapper",[I("&.notification-transition-enter-from, &.notification-transition-leave-to",` + transform: scale(0.85); + `),I("&.notification-transition-leave-from, &.notification-transition-enter-to",` + transform: scale(1); + `)])]),H("top",[P("notification-wrapper",` + transform-origin: top center; + `)]),H("bottom",[P("notification-wrapper",` + transform-origin: bottom center; + `)]),H("top-right, bottom-right",[P("notification",` + margin-left: 28px; + margin-right: 16px; + `)]),H("top-left, bottom-left",[P("notification",` + margin-left: 16px; + margin-right: 28px; + `)]),H("top-right",` + right: 0; + `,[ml("top-right")]),H("top-left",` + left: 0; + `,[ml("top-left")]),H("bottom-right",` + right: 0; + `,[ml("bottom-right")]),H("bottom-left",` + left: 0; + `,[ml("bottom-left")]),H("scrollable",[H("top-right",` + top: 0; + `),H("top-left",` + top: 0; + `),H("bottom-right",` + bottom: 0; + `),H("bottom-left",` + bottom: 0; + `)]),P("notification-wrapper",` + margin-bottom: 12px; + `,[I("&.notification-transition-enter-from, &.notification-transition-leave-to",` + opacity: 0; + margin-top: 0 !important; + margin-bottom: 0 !important; + `),I("&.notification-transition-leave-from, &.notification-transition-enter-to",` + opacity: 1; + `),I("&.notification-transition-leave-active",` + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + transform .3s var(--n-bezier-ease-in), + max-height .3s var(--n-bezier), + margin-top .3s linear, + margin-bottom .3s linear, + box-shadow .3s var(--n-bezier); + `),I("&.notification-transition-enter-active",` + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + transform .3s var(--n-bezier-ease-out), + max-height .3s var(--n-bezier), + margin-top .3s linear, + margin-bottom .3s linear, + box-shadow .3s var(--n-bezier); + `)]),P("notification",` + background-color: var(--n-color); + color: var(--n-text-color); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + font-family: inherit; + font-size: var(--n-font-size); + font-weight: 400; + position: relative; + display: flex; + overflow: hidden; + flex-shrink: 0; + padding-left: var(--n-padding-left); + padding-right: var(--n-padding-right); + width: var(--n-width); + max-width: calc(100vw - 16px - 16px); + border-radius: var(--n-border-radius); + box-shadow: var(--n-box-shadow); + box-sizing: border-box; + opacity: 1; + `,[j("avatar",[P("icon",` + color: var(--n-icon-color); + `),P("base-icon",` + color: var(--n-icon-color); + `)]),H("show-avatar",[P("notification-main",` + margin-left: 40px; + width: calc(100% - 40px); + `)]),H("closable",[P("notification-main",[I("> *:first-child",` + padding-right: 20px; + `)]),j("close",` + position: absolute; + top: 0; + right: 0; + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `)]),j("avatar",` + position: absolute; + top: var(--n-padding-top); + left: var(--n-padding-left); + width: 28px; + height: 28px; + font-size: 28px; + display: flex; + align-items: center; + justify-content: center; + `,[P("icon","transition: color .3s var(--n-bezier);")]),P("notification-main",` + padding-top: var(--n-padding-top); + padding-bottom: var(--n-padding-bottom); + box-sizing: border-box; + display: flex; + flex-direction: column; + margin-left: 8px; + width: calc(100% - 8px); + `,[P("notification-main-footer",` + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 12px; + `,[j("meta",` + font-size: var(--n-meta-font-size); + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-description-text-color); + `),j("action",` + cursor: pointer; + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-action-text-color); + `)]),j("header",` + font-weight: var(--n-title-font-weight); + font-size: var(--n-title-font-size); + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-title-text-color); + `),j("description",` + margin-top: 8px; + font-size: var(--n-description-font-size); + white-space: pre-wrap; + word-wrap: break-word; + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-description-text-color); + `),j("content",` + line-height: var(--n-line-height); + margin: 12px 0 0 0; + font-family: inherit; + white-space: pre-wrap; + word-wrap: break-word; + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-text-color); + `,[I("&:first-child","margin: 0;")])])])])]);function ml(e){const n=e.split("-")[1]==="left"?"calc(-100%)":"calc(100%)";return P("notification-wrapper",[I("&.notification-transition-enter-from, &.notification-transition-leave-to",` + transform: translate(${n}, 0); + `),I("&.notification-transition-leave-from, &.notification-transition-enter-to",` + transform: translate(0, 0); + `)])}const $g="n-notification-api",P_=Object.assign(Object.assign({},Be.props),{containerClass:String,containerStyle:[String,Object],to:[String,Object],scrollable:{type:Boolean,default:!0},max:Number,placement:{type:String,default:"top-right"},keepAliveOnHover:Boolean}),$_=pe({name:"NotificationProvider",props:P_,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=E([]),o={},r=new Set;function i(g){const u=ar(),p=()=>{r.add(u),o[u]&&o[u].hide()},b=_n(Object.assign(Object.assign({},g),{key:u,destroy:p,hide:p,deactivate:p})),{max:m}=e;if(m&&n.value.length-r.size>=m){let y=!1,$=0;for(const S of n.value){if(!r.has(S.key)){o[S.key]&&(S.destroy(),y=!0);break}$++}y||n.value.splice($,1)}return n.value.push(b),b}const l=["info","success","warning","error"].map(g=>u=>i(Object.assign(Object.assign({},u),{type:g})));function a(g){r.delete(g),n.value.splice(n.value.findIndex(u=>u.key===g),1)}const s=Be("Notification","-notification",k_,m_,e,t),d={create:i,info:l[0],success:l[1],warning:l[2],error:l[3],open:f,destroyAll:v},c=E(0);qe($g,d),qe(wa,{props:e,mergedClsPrefixRef:t,mergedThemeRef:s,wipTransitionCountRef:c});function f(g){return i(g)}function v(){Object.values(n.value).forEach(g=>{g.hide()})}return Object.assign({mergedClsPrefix:t,notificationList:n,notificationRefs:o,handleAfterLeave:a},d)},render(){var e,t,n;const{placement:o}=this;return h(nt,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),this.notificationList.length?h(ea,{to:(n=this.to)!==null&&n!==void 0?n:"body"},h(y_,{class:this.containerClass,style:this.containerStyle,scrollable:this.scrollable&&o!=="top"&&o!=="bottom",placement:o},{default:()=>this.notificationList.map(r=>h(R_,Object.assign({ref:i=>{const l=r.key;i===null?delete this.notificationRefs[l]:this.notificationRefs[l]=i}},dr(r,["destroy","hide","deactivate"]),{internalKey:r.key,onInternalAfterLeave:this.handleAfterLeave,keepAliveOnHover:r.keepAliveOnHover===void 0?this.keepAliveOnHover:r.keepAliveOnHover})))})):null)}});function __(){const e=Ee($g,null);return e===null&&sr("use-notification","No outer `n-notification-provider` found."),e}const z_=pe({name:"InjectionExtractor",props:{onSetup:Function},setup(e,{slots:t}){var n;return(n=e.onSetup)===null||n===void 0||n.call(e),()=>{var o;return(o=t.default)===null||o===void 0?void 0:o.call(t)}}}),T_={message:f_,notification:__,loadingBar:t_,dialog:F2,modal:H2};function F_({providersAndProps:e,configProviderProps:t}){let n=up(r);const o={app:n};function r(){return h(Uv,ge(t),{default:()=>e.map(({type:a,Provider:s,props:d})=>h(s,ge(d),{default:()=>h(z_,{onSetup:()=>o[a]=T_[a]()})}))})}let i;return Do&&(i=document.createElement("div"),document.body.appendChild(i),n.mount(i)),Object.assign({unmount:()=>{var a;if(n===null||i===null){Zn("discrete","unmount call no need because discrete app has been unmounted");return}n.unmount(),(a=i.parentNode)===null||a===void 0||a.removeChild(i),i=null,n=null}},o)}function O_(e,{configProviderProps:t,messageProviderProps:n,dialogProviderProps:o,notificationProviderProps:r,loadingBarProviderProps:i,modalProviderProps:l}={}){const a=[];return e.forEach(d=>{switch(d){case"message":a.push({type:d,Provider:u_,props:n});break;case"notification":a.push({type:d,Provider:$_,props:r});break;case"dialog":a.push({type:d,Provider:q2,props:o});break;case"loadingBar":a.push({type:d,Provider:e_,props:i});break;case"modal":a.push({type:d,Provider:v_,props:l})}}),F_({providersAndProps:a,configProviderProps:t})}const E_={gapSmall:"4px 8px",gapMedium:"8px 12px",gapLarge:"12px 16px"};function M_(){return E_}const B_={self:M_};let xs;function A_(){if(!Do)return!0;if(xs===void 0){const e=document.createElement("div");e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e);const t=e.scrollHeight===1;return document.body.removeChild(e),xs=t}return xs}const I_=Object.assign(Object.assign({},Be.props),{align:String,justify:{type:String,default:"start"},inline:Boolean,vertical:Boolean,reverse:Boolean,size:[String,Number,Array],wrapItem:{type:Boolean,default:!0},itemClass:String,itemStyle:[String,Object],wrap:{type:Boolean,default:!0},internalUseGap:{type:Boolean,default:void 0}}),vc=pe({name:"Space",props:I_,setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n,mergedComponentPropsRef:o}=Ye(e),r=O(()=>{var a,s;return e.size||((s=(a=o?.value)===null||a===void 0?void 0:a.Space)===null||s===void 0?void 0:s.size)||"medium"}),i=Be("Space","-space",void 0,B_,e,t),l=Bt("Space",n,t);return{useGap:A_(),rtlEnabled:l,mergedClsPrefix:t,margin:O(()=>{const a=r.value;if(Array.isArray(a))return{horizontal:a[0],vertical:a[1]};if(typeof a=="number")return{horizontal:a,vertical:a};const{self:{[de("gap",a)]:s}}=i.value,{row:d,col:c}=ey(s);return{horizontal:Pt(c),vertical:Pt(d)}})}},render(){const{vertical:e,reverse:t,align:n,inline:o,justify:r,itemClass:i,itemStyle:l,margin:a,wrap:s,mergedClsPrefix:d,rtlEnabled:c,useGap:f,wrapItem:v,internalUseGap:g}=this,u=Un(Dd(this),!1);if(!u.length)return null;const p=`${a.horizontal}px`,b=`${a.horizontal/2}px`,m=`${a.vertical}px`,y=`${a.vertical/2}px`,$=u.length-1,S=r.startsWith("space-");return h("div",{role:"none",class:[`${d}-space`,c&&`${d}-space--rtl`],style:{display:o?"inline-flex":"flex",flexDirection:e&&!t?"column":e&&t?"column-reverse":!e&&t?"row-reverse":"row",justifyContent:["start","end"].includes(r)?`flex-${r}`:r,flexWrap:!s||e?"nowrap":"wrap",marginTop:f||e?"":`-${y}`,marginBottom:f||e?"":`-${y}`,alignItems:n,gap:f?`${a.vertical}px ${a.horizontal}px`:""}},!v&&(f||g)?u:u.map((x,R)=>x.type===$t?x:h("div",{role:"none",class:i,style:[l,{maxWidth:"100%"},f?"":e?{marginBottom:R!==$?m:""}:c?{marginLeft:S?r==="space-between"&&R===$?"":b:R!==$?p:"",marginRight:S?r==="space-between"&&R===0?"":b:"",paddingTop:y,paddingBottom:y}:{marginRight:S?r==="space-between"&&R===$?"":b:R!==$?p:"",marginLeft:S?r==="space-between"&&R===0?"":b:"",paddingTop:y,paddingBottom:y}]},x)))}});function L_(e){const{baseColor:t,textColor2:n,bodyColor:o,cardColor:r,dividerColor:i,actionColor:l,scrollbarColor:a,scrollbarColorHover:s,invertedColor:d}=e;return{textColor:n,textColorInverted:"#FFF",color:o,colorEmbedded:l,headerColor:r,headerColorInverted:d,footerColor:l,footerColorInverted:d,headerBorderColor:i,headerBorderColorInverted:d,footerBorderColor:i,footerBorderColorInverted:d,siderBorderColor:i,siderBorderColorInverted:d,siderColor:r,siderColorInverted:d,siderToggleButtonBorder:`1px solid ${i}`,siderToggleButtonColor:t,siderToggleButtonIconColor:n,siderToggleButtonIconColorInverted:n,siderToggleBarColor:rt(o,a),siderToggleBarColorHover:rt(o,s),__invertScrollbar:"true"}}const _g={name:"Layout",common:gt,peers:{Scrollbar:jo},self:L_},D_={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};function H_(e){const{primaryColor:t,opacityDisabled:n,borderRadius:o,textColor3:r}=e;return Object.assign(Object.assign({},D_),{iconColor:r,textColor:"white",loadingColor:t,opacityDisabled:n,railColor:"rgba(0, 0, 0, .14)",railColorActive:t,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:o,railBorderRadiusMedium:o,railBorderRadiusLarge:o,buttonBorderRadiusSmall:o,buttonBorderRadiusMedium:o,buttonBorderRadiusLarge:o,boxShadowFocus:`0 0 0 2px ${Ue(t,{alpha:.2})}`})}const N_={common:gt,self:H_},j_={tabFontSizeSmall:"14px",tabFontSizeMedium:"14px",tabFontSizeLarge:"16px",tabGapSmallLine:"36px",tabGapMediumLine:"36px",tabGapLargeLine:"36px",tabGapSmallLineVertical:"8px",tabGapMediumLineVertical:"8px",tabGapLargeLineVertical:"8px",tabPaddingSmallLine:"6px 0",tabPaddingMediumLine:"10px 0",tabPaddingLargeLine:"14px 0",tabPaddingVerticalSmallLine:"6px 12px",tabPaddingVerticalMediumLine:"8px 16px",tabPaddingVerticalLargeLine:"10px 20px",tabGapSmallBar:"36px",tabGapMediumBar:"36px",tabGapLargeBar:"36px",tabGapSmallBarVertical:"8px",tabGapMediumBarVertical:"8px",tabGapLargeBarVertical:"8px",tabPaddingSmallBar:"4px 0",tabPaddingMediumBar:"6px 0",tabPaddingLargeBar:"10px 0",tabPaddingVerticalSmallBar:"6px 12px",tabPaddingVerticalMediumBar:"8px 16px",tabPaddingVerticalLargeBar:"10px 20px",tabGapSmallCard:"4px",tabGapMediumCard:"4px",tabGapLargeCard:"4px",tabGapSmallCardVertical:"4px",tabGapMediumCardVertical:"4px",tabGapLargeCardVertical:"4px",tabPaddingSmallCard:"8px 16px",tabPaddingMediumCard:"10px 20px",tabPaddingLargeCard:"12px 24px",tabPaddingSmallSegment:"4px 0",tabPaddingMediumSegment:"6px 0",tabPaddingLargeSegment:"8px 0",tabPaddingVerticalLargeSegment:"0 8px",tabPaddingVerticalSmallCard:"8px 12px",tabPaddingVerticalMediumCard:"10px 16px",tabPaddingVerticalLargeCard:"12px 20px",tabPaddingVerticalSmallSegment:"0 4px",tabPaddingVerticalMediumSegment:"0 6px",tabGapSmallSegment:"0",tabGapMediumSegment:"0",tabGapLargeSegment:"0",tabGapSmallSegmentVertical:"0",tabGapMediumSegmentVertical:"0",tabGapLargeSegmentVertical:"0",panePaddingSmall:"8px 0 0 0",panePaddingMedium:"12px 0 0 0",panePaddingLarge:"16px 0 0 0",closeSize:"18px",closeIconSize:"14px"};function W_(e){const{textColor2:t,primaryColor:n,textColorDisabled:o,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeColorHover:a,closeColorPressed:s,tabColor:d,baseColor:c,dividerColor:f,fontWeight:v,textColor1:g,borderRadius:u,fontSize:p,fontWeightStrong:b}=e;return Object.assign(Object.assign({},j_),{colorSegment:d,tabFontSizeCard:p,tabTextColorLine:g,tabTextColorActiveLine:n,tabTextColorHoverLine:n,tabTextColorDisabledLine:o,tabTextColorSegment:g,tabTextColorActiveSegment:t,tabTextColorHoverSegment:t,tabTextColorDisabledSegment:o,tabTextColorBar:g,tabTextColorActiveBar:n,tabTextColorHoverBar:n,tabTextColorDisabledBar:o,tabTextColorCard:g,tabTextColorHoverCard:g,tabTextColorActiveCard:n,tabTextColorDisabledCard:o,barColor:n,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeColorHover:a,closeColorPressed:s,closeBorderRadius:u,tabColor:d,tabColorSegment:c,tabBorderColor:f,tabFontWeightActive:v,tabFontWeight:v,tabBorderRadius:u,paneTextColor:t,fontWeightStrong:b})}const V_={common:gt,self:W_},Lf=1,zg="n-grid",Tg=1,K_={span:{type:[Number,String],default:Tg},offset:{type:[Number,String],default:0},suffix:Boolean,privateOffset:Number,privateSpan:Number,privateColStart:Number,privateShow:{type:Boolean,default:!0}},bn=pe({__GRID_ITEM__:!0,name:"GridItem",alias:["Gi"],props:K_,setup(){const{isSsrRef:e,xGapRef:t,itemStyleRef:n,overflowRef:o,layoutShiftDisabledRef:r}=Ee(zg),i=Lo();return{overflow:o,itemStyle:n,layoutShiftDisabled:r,mergedXGap:O(()=>pt(t.value||0)),deriveStyle:()=>{e.value;const{privateSpan:l=Tg,privateShow:a=!0,privateColStart:s=void 0,privateOffset:d=0}=i.vnode.props,{value:c}=t,f=pt(c||0);return{display:a?"":"none",gridColumn:`${s??`span ${l}`} / span ${l}`,marginLeft:d?`calc((100% - (${l} - 1) * ${f}) / ${l} * ${d} + ${f} * ${d})`:""}}}},render(){var e,t;if(this.layoutShiftDisabled){const{span:n,offset:o,mergedXGap:r}=this;return h("div",{style:{gridColumn:`span ${n} / span ${n}`,marginLeft:o?`calc((100% - (${n} - 1) * ${r}) / ${n} * ${o} + ${r} * ${o})`:""}},this.$slots)}return h("div",{style:[this.itemStyle,this.deriveStyle()]},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e,{overflow:this.overflow}))}}),U_={xs:0,s:640,m:1024,l:1280,xl:1536,xxl:1920},Fg=24,ws="__ssr__",G_={layoutShiftDisabled:Boolean,responsive:{type:[String,Boolean],default:"self"},cols:{type:[Number,String],default:Fg},itemResponsive:Boolean,collapsed:Boolean,collapsedRows:{type:Number,default:1},itemStyle:[Object,String],xGap:{type:[Number,String],default:0},yGap:{type:[Number,String],default:0}},id=pe({name:"Grid",inheritAttrs:!1,props:G_,setup(e){const{mergedClsPrefixRef:t,mergedBreakpointsRef:n}=Ye(e),o=/^\d+$/,r=E(void 0),i=Py(n?.value||U_),l=ot(()=>!!(e.itemResponsive||!o.test(e.cols.toString())||!o.test(e.xGap.toString())||!o.test(e.yGap.toString()))),a=O(()=>{if(l.value)return e.responsive==="self"?r.value:i.value}),s=ot(()=>{var m;return(m=Number(xr(e.cols.toString(),a.value)))!==null&&m!==void 0?m:Fg}),d=ot(()=>xr(e.xGap.toString(),a.value)),c=ot(()=>xr(e.yGap.toString(),a.value)),f=m=>{r.value=m.contentRect.width},v=m=>{Ai(f,m)},g=E(!1),u=O(()=>{if(e.responsive==="self")return v}),p=E(!1),b=E();return Ct(()=>{const{value:m}=b;m&&m.hasAttribute(ws)&&(m.removeAttribute(ws),p.value=!0)}),qe(zg,{layoutShiftDisabledRef:we(e,"layoutShiftDisabled"),isSsrRef:p,itemStyleRef:we(e,"itemStyle"),xGapRef:d,overflowRef:g}),{isSsr:!Do,contentEl:b,mergedClsPrefix:t,style:O(()=>e.layoutShiftDisabled?{width:"100%",display:"grid",gridTemplateColumns:`repeat(${e.cols}, minmax(0, 1fr))`,columnGap:pt(e.xGap),rowGap:pt(e.yGap)}:{width:"100%",display:"grid",gridTemplateColumns:`repeat(${s.value}, minmax(0, 1fr))`,columnGap:pt(d.value),rowGap:pt(c.value)}),isResponsive:l,responsiveQuery:a,responsiveCols:s,handleResize:u,overflow:g}},render(){if(this.layoutShiftDisabled)return h("div",nn({ref:"contentEl",class:`${this.mergedClsPrefix}-grid`,style:this.style},this.$attrs),this.$slots);const e=()=>{var t,n,o,r,i,l,a;this.overflow=!1;const s=Un(Dd(this)),d=[],{collapsed:c,collapsedRows:f,responsiveCols:v,responsiveQuery:g}=this;s.forEach(y=>{var $,S,x,R,C;if((($=y?.type)===null||$===void 0?void 0:$.__GRID_ITEM__)!==!0)return;if(Fx(y)){const F=hn(y);F.props?F.props.privateShow=!1:F.props={privateShow:!1},d.push({child:F,rawChildSpan:0});return}y.dirs=((S=y.dirs)===null||S===void 0?void 0:S.filter(({dir:F})=>F!==Fo))||null,((x=y.dirs)===null||x===void 0?void 0:x.length)===0&&(y.dirs=null);const w=hn(y),k=Number((C=xr((R=w.props)===null||R===void 0?void 0:R.span,g))!==null&&C!==void 0?C:Lf);k!==0&&d.push({child:w,rawChildSpan:k})});let u=0;const p=(t=d[d.length-1])===null||t===void 0?void 0:t.child;if(p?.props){const y=(n=p.props)===null||n===void 0?void 0:n.suffix;y!==void 0&&y!==!1&&(u=Number((r=xr((o=p.props)===null||o===void 0?void 0:o.span,g))!==null&&r!==void 0?r:Lf),p.props.privateSpan=u,p.props.privateColStart=v+1-u,p.props.privateShow=(i=p.props.privateShow)!==null&&i!==void 0?i:!0)}let b=0,m=!1;for(const{child:y,rawChildSpan:$}of d){if(m&&(this.overflow=!0),!m){const S=Number((a=xr((l=y.props)===null||l===void 0?void 0:l.offset,g))!==null&&a!==void 0?a:0),x=Math.min($+S,v);if(y.props?(y.props.privateSpan=x,y.props.privateOffset=S):y.props={privateSpan:x,privateOffset:S},c){const R=b%v;x+R>v&&(b+=v-R),x+b+u>f*v?m=!0:b+=x}}m&&(y.props?y.props.privateShow!==!0&&(y.props.privateShow=!1):y.props={privateShow:!1})}return h("div",nn({ref:"contentEl",class:`${this.mergedClsPrefix}-grid`,style:this.style,[ws]:this.isSsr||void 0},this.$attrs),d.map(({child:y})=>y))};return this.isResponsive&&this.responsive==="self"?h(Kn,{onResize:this.handleResize},{default:e}):e()}}),Og={type:String,default:"static"},q_=P("layout",` + color: var(--n-text-color); + background-color: var(--n-color); + box-sizing: border-box; + position: relative; + z-index: auto; + flex: auto; + overflow: hidden; + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); +`,[P("layout-scroll-container",` + overflow-x: hidden; + box-sizing: border-box; + height: 100%; + `),H("absolute-positioned",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `)]),X_={embedded:Boolean,position:Og,nativeScrollbar:{type:Boolean,default:!0},scrollbarProps:Object,onScroll:Function,contentClass:String,contentStyle:{type:[String,Object],default:""},hasSider:Boolean,siderPlacement:{type:String,default:"left"}},Y_="n-layout";function Eg(e){return pe({name:e?"LayoutContent":"Layout",props:Object.assign(Object.assign({},Be.props),X_),setup(t){const n=E(null),o=E(null),{mergedClsPrefixRef:r,inlineThemeDisabled:i}=Ye(t),l=Be("Layout","-layout",q_,_g,t,r);function a(p,b){if(t.nativeScrollbar){const{value:m}=n;m&&(b===void 0?m.scrollTo(p):m.scrollTo(p,b))}else{const{value:m}=o;m&&m.scrollTo(p,b)}}qe(Y_,t);let s=0,d=0;const c=p=>{var b;const m=p.target;s=m.scrollLeft,d=m.scrollTop,(b=t.onScroll)===null||b===void 0||b.call(t,p)};zp(()=>{if(t.nativeScrollbar){const p=n.value;p&&(p.scrollTop=d,p.scrollLeft=s)}});const f={display:"flex",flexWrap:"nowrap",width:"100%",flexDirection:"row"},v={scrollTo:a},g=O(()=>{const{common:{cubicBezierEaseInOut:p},self:b}=l.value;return{"--n-bezier":p,"--n-color":t.embedded?b.colorEmbedded:b.color,"--n-text-color":b.textColor}}),u=i?vt("layout",O(()=>t.embedded?"e":""),g,t):void 0;return Object.assign({mergedClsPrefix:r,scrollableElRef:n,scrollbarInstRef:o,hasSiderStyle:f,mergedTheme:l,handleNativeElScroll:c,cssVars:i?void 0:g,themeClass:u?.themeClass,onRender:u?.onRender},v)},render(){var t;const{mergedClsPrefix:n,hasSider:o}=this;(t=this.onRender)===null||t===void 0||t.call(this);const r=o?this.hasSiderStyle:void 0,i=[this.themeClass,e&&`${n}-layout-content`,`${n}-layout`,`${n}-layout--${this.position}-positioned`];return h("div",{class:i,style:this.cssVars},this.nativeScrollbar?h("div",{ref:"scrollableElRef",class:[`${n}-layout-scroll-container`,this.contentClass],style:[this.contentStyle,r],onScroll:this.handleNativeElScroll},this.$slots):h(bo,Object.assign({},this.scrollbarProps,{onScroll:this.onScroll,ref:"scrollbarInstRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:this.contentClass,contentStyle:[this.contentStyle,r]}),this.$slots))}})}const Z_=Eg(!1),J_=Eg(!0),Q_=P("layout-header",` + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + box-sizing: border-box; + width: 100%; + background-color: var(--n-color); + color: var(--n-text-color); +`,[H("absolute-positioned",` + position: absolute; + left: 0; + right: 0; + top: 0; + `),H("bordered",` + border-bottom: solid 1px var(--n-border-color); + `)]),ez={position:Og,inverted:Boolean,bordered:{type:Boolean,default:!1}},tz=pe({name:"LayoutHeader",props:Object.assign(Object.assign({},Be.props),ez),setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ye(e),o=Be("Layout","-layout-header",Q_,_g,e,t),r=O(()=>{const{common:{cubicBezierEaseInOut:l},self:a}=o.value,s={"--n-bezier":l};return e.inverted?(s["--n-color"]=a.headerColorInverted,s["--n-text-color"]=a.textColorInverted,s["--n-border-color"]=a.headerBorderColorInverted):(s["--n-color"]=a.headerColor,s["--n-text-color"]=a.textColor,s["--n-border-color"]=a.headerBorderColor),s}),i=n?vt("layout-header",O(()=>e.inverted?"a":"b"),r,e):void 0;return{mergedClsPrefix:t,cssVars:n?void 0:r,themeClass:i?.themeClass,onRender:i?.onRender}},render(){var e;const{mergedClsPrefix:t}=this;return(e=this.onRender)===null||e===void 0||e.call(this),h("div",{class:[`${t}-layout-header`,this.themeClass,this.position&&`${t}-layout-header--${this.position}-positioned`,this.bordered&&`${t}-layout-header--bordered`],style:this.cssVars},this.$slots)}}),nz=P("switch",` + height: var(--n-height); + min-width: var(--n-width); + vertical-align: middle; + user-select: none; + -webkit-user-select: none; + display: inline-flex; + outline: none; + justify-content: center; + align-items: center; +`,[j("children-placeholder",` + height: var(--n-rail-height); + display: flex; + flex-direction: column; + overflow: hidden; + pointer-events: none; + visibility: hidden; + `),j("rail-placeholder",` + display: flex; + flex-wrap: none; + `),j("button-placeholder",` + width: calc(1.75 * var(--n-rail-height)); + height: var(--n-rail-height); + `),P("base-loading",` + position: absolute; + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); + font-size: calc(var(--n-button-width) - 4px); + color: var(--n-loading-color); + transition: color .3s var(--n-bezier); + `,[an({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),j("checked, unchecked",` + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + box-sizing: border-box; + position: absolute; + white-space: nowrap; + top: 0; + bottom: 0; + display: flex; + align-items: center; + line-height: 1; + `),j("checked",` + right: 0; + padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset)); + `),j("unchecked",` + left: 0; + justify-content: flex-end; + padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset)); + `),I("&:focus",[j("rail",` + box-shadow: var(--n-box-shadow-focus); + `)]),H("round",[j("rail","border-radius: calc(var(--n-rail-height) / 2);",[j("button","border-radius: calc(var(--n-button-height) / 2);")])]),dt("disabled",[dt("icon",[H("rubber-band",[H("pressed",[j("rail",[j("button","max-width: var(--n-button-width-pressed);")])]),j("rail",[I("&:active",[j("button","max-width: var(--n-button-width-pressed);")])]),H("active",[H("pressed",[j("rail",[j("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),j("rail",[I("&:active",[j("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),H("active",[j("rail",[j("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),j("rail",` + overflow: hidden; + height: var(--n-rail-height); + min-width: var(--n-rail-width); + border-radius: var(--n-rail-border-radius); + cursor: pointer; + position: relative; + transition: + opacity .3s var(--n-bezier), + background .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + background-color: var(--n-rail-color); + `,[j("button-icon",` + color: var(--n-icon-color); + transition: color .3s var(--n-bezier); + font-size: calc(var(--n-button-height) - 4px); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + line-height: 1; + `,[an()]),j("button",` + align-items: center; + top: var(--n-offset); + left: var(--n-offset); + height: var(--n-button-height); + width: var(--n-button-width-pressed); + max-width: var(--n-button-width); + border-radius: var(--n-button-border-radius); + background-color: var(--n-button-color); + box-shadow: var(--n-button-box-shadow); + box-sizing: border-box; + cursor: inherit; + content: ""; + position: absolute; + transition: + background-color .3s var(--n-bezier), + left .3s var(--n-bezier), + opacity .3s var(--n-bezier), + max-width .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + `)]),H("active",[j("rail","background-color: var(--n-rail-color-active);")]),H("loading",[j("rail",` + cursor: wait; + `)]),H("disabled",[j("rail",` + cursor: not-allowed; + opacity: .5; + `)])]),oz=Object.assign(Object.assign({},Be.props),{size:String,value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},spinProps:Object,onChange:[Function,Array]});let si;const Cs=pe({name:"Switch",props:oz,slots:Object,setup(e){si===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?si=CSS.supports("width","max(1px)"):si=!1:si=!0);const{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedComponentPropsRef:o}=Ye(e),r=Be("Switch","-switch",nz,N_,e,t),i=No(e,{mergedSize(k){var F,M;if(e.size!==void 0)return e.size;if(k)return k.mergedSize.value;const _=(M=(F=o?.value)===null||F===void 0?void 0:F.Switch)===null||M===void 0?void 0:M.size;return _||"medium"}}),{mergedSizeRef:l,mergedDisabledRef:a}=i,s=E(e.defaultValue),c=qt(we(e,"value"),s),f=O(()=>c.value===e.checkedValue),v=E(!1),g=E(!1),u=O(()=>{const{railStyle:k}=e;if(k)return k({focused:g.value,checked:f.value})});function p(k){const{"onUpdate:value":F,onChange:M,onUpdateValue:_}=e,{nTriggerFormInput:T,nTriggerFormChange:B}=i;F&&me(F,k),_&&me(_,k),M&&me(M,k),s.value=k,T(),B()}function b(){const{nTriggerFormFocus:k}=i;k()}function m(){const{nTriggerFormBlur:k}=i;k()}function y(){e.loading||a.value||(c.value!==e.checkedValue?p(e.checkedValue):p(e.uncheckedValue))}function $(){g.value=!0,b()}function S(){g.value=!1,m(),v.value=!1}function x(k){e.loading||a.value||k.key===" "&&(c.value!==e.checkedValue?p(e.checkedValue):p(e.uncheckedValue),v.value=!1)}function R(k){e.loading||a.value||k.key===" "&&(k.preventDefault(),v.value=!0)}const C=O(()=>{const{value:k}=l,{self:{opacityDisabled:F,railColor:M,railColorActive:_,buttonBoxShadow:T,buttonColor:B,boxShadowFocus:D,loadingColor:K,textColor:N,iconColor:V,[de("buttonHeight",k)]:ie,[de("buttonWidth",k)]:he,[de("buttonWidthPressed",k)]:J,[de("railHeight",k)]:re,[de("railWidth",k)]:ye,[de("railBorderRadius",k)]:Z,[de("buttonBorderRadius",k)]:le},common:{cubicBezierEaseInOut:$e}}=r.value;let ze,Ae,Te;return si?(ze=`calc((${re} - ${ie}) / 2)`,Ae=`max(${re}, ${ie})`,Te=`max(${ye}, calc(${ye} + ${ie} - ${re}))`):(ze=pt((Pt(re)-Pt(ie))/2),Ae=pt(Math.max(Pt(re),Pt(ie))),Te=Pt(re)>Pt(ie)?ye:pt(Pt(ye)+Pt(ie)-Pt(re))),{"--n-bezier":$e,"--n-button-border-radius":le,"--n-button-box-shadow":T,"--n-button-color":B,"--n-button-width":he,"--n-button-width-pressed":J,"--n-button-height":ie,"--n-height":Ae,"--n-offset":ze,"--n-opacity-disabled":F,"--n-rail-border-radius":Z,"--n-rail-color":M,"--n-rail-color-active":_,"--n-rail-height":re,"--n-rail-width":ye,"--n-width":Te,"--n-box-shadow-focus":D,"--n-loading-color":K,"--n-text-color":N,"--n-icon-color":V}}),w=n?vt("switch",O(()=>l.value[0]),C,e):void 0;return{handleClick:y,handleBlur:S,handleFocus:$,handleKeyup:x,handleKeydown:R,mergedRailStyle:u,pressed:v,mergedClsPrefix:t,mergedValue:c,checked:f,mergedDisabled:a,cssVars:n?void 0:C,themeClass:w?.themeClass,onRender:w?.onRender}},render(){const{mergedClsPrefix:e,mergedDisabled:t,checked:n,mergedRailStyle:o,onRender:r,$slots:i}=this;r?.();const{checked:l,unchecked:a,icon:s,"checked-icon":d,"unchecked-icon":c}=i,f=!(Mr(s)&&Mr(d)&&Mr(c));return h("div",{role:"switch","aria-checked":n,class:[`${e}-switch`,this.themeClass,f&&`${e}-switch--icon`,n&&`${e}-switch--active`,t&&`${e}-switch--disabled`,this.round&&`${e}-switch--round`,this.loading&&`${e}-switch--loading`,this.pressed&&`${e}-switch--pressed`,this.rubberBand&&`${e}-switch--rubber-band`],tabindex:this.mergedDisabled?void 0:0,style:this.cssVars,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},h("div",{class:`${e}-switch__rail`,"aria-hidden":"true",style:o},lt(l,v=>lt(a,g=>v||g?h("div",{"aria-hidden":!0,class:`${e}-switch__children-placeholder`},h("div",{class:`${e}-switch__rail-placeholder`},h("div",{class:`${e}-switch__button-placeholder`}),v),h("div",{class:`${e}-switch__rail-placeholder`},h("div",{class:`${e}-switch__button-placeholder`}),g)):null)),h("div",{class:`${e}-switch__button`},lt(s,v=>lt(d,g=>lt(c,u=>h(vr,null,{default:()=>this.loading?h(gr,Object.assign({key:"loading",clsPrefix:e,strokeWidth:20},this.spinProps)):this.checked&&(g||v)?h("div",{class:`${e}-switch__button-icon`,key:g?"checked-icon":"icon"},g||v):!this.checked&&(u||v)?h("div",{class:`${e}-switch__button-icon`,key:u?"unchecked-icon":"icon"},u||v):null})))),lt(l,v=>v&&h("div",{key:"checked",class:`${e}-switch__checked`},v)),lt(a,v=>v&&h("div",{key:"unchecked",class:`${e}-switch__unchecked`},v)))))}}),gc="n-tabs",Mg={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:"if"},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},yl=pe({__TAB_PANE__:!0,name:"TabPane",alias:["TabPanel"],props:Mg,slots:Object,setup(e){const t=Ee(gc,null);return t||sr("tab-pane","`n-tab-pane` must be placed inside `n-tabs`."),{style:t.paneStyleRef,class:t.paneClassRef,mergedClsPrefix:t.mergedClsPrefixRef}},render(){return h("div",{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),rz=Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},dr(Mg,["displayDirective"])),ld=pe({__TAB__:!0,inheritAttrs:!1,name:"Tab",props:rz,setup(e){const{mergedClsPrefixRef:t,valueRef:n,typeRef:o,closableRef:r,tabStyleRef:i,addTabStyleRef:l,tabClassRef:a,addTabClassRef:s,tabChangeIdRef:d,onBeforeLeaveRef:c,triggerRef:f,handleAdd:v,activateTab:g,handleClose:u}=Ee(gc);return{trigger:f,mergedClosable:O(()=>{if(e.internalAddable)return!1;const{closable:p}=e;return p===void 0?r.value:p}),style:i,addStyle:l,tabClass:a,addTabClass:s,clsPrefix:t,value:n,type:o,handleClose(p){p.stopPropagation(),!e.disabled&&u(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable){v();return}const{name:p}=e,b=++d.id;if(p!==n.value){const{value:m}=c;m?Promise.resolve(m(e.name,n.value)).then(y=>{y&&d.id===b&&g(p)}):g(p)}}}},render(){const{internalAddable:e,clsPrefix:t,name:n,disabled:o,label:r,tab:i,value:l,mergedClosable:a,trigger:s,$slots:{default:d}}=this,c=r??i;return h("div",{class:`${t}-tabs-tab-wrapper`},this.internalLeftPadded?h("div",{class:`${t}-tabs-tab-pad`}):null,h("div",Object.assign({key:n,"data-name":n,"data-disabled":o?!0:void 0},nn({class:[`${t}-tabs-tab`,l===n&&`${t}-tabs-tab--active`,o&&`${t}-tabs-tab--disabled`,a&&`${t}-tabs-tab--closable`,e&&`${t}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:s==="click"?this.activateTab:void 0,onMouseenter:s==="hover"?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),h("span",{class:`${t}-tabs-tab__label`},e?h(nt,null,h("div",{class:`${t}-tabs-tab__height-placeholder`}," "),h(kt,{clsPrefix:t},{default:()=>h(ZR,null)})):d?d():typeof c=="object"?c:wt(c??n)),a&&this.type==="card"?h(Kr,{clsPrefix:t,class:`${t}-tabs-tab__close`,onClick:this.handleClose,disabled:o}):null))}}),iz=P("tabs",` + box-sizing: border-box; + width: 100%; + display: flex; + flex-direction: column; + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier); +`,[H("segment-type",[P("tabs-rail",[I("&.transition-disabled",[P("tabs-capsule",` + transition: none; + `)])])]),H("top",[P("tab-pane",` + padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left); + `)]),H("left",[P("tab-pane",` + padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top); + `)]),H("left, right",` + flex-direction: row; + `,[P("tabs-bar",` + width: 2px; + right: 0; + transition: + top .2s var(--n-bezier), + max-height .2s var(--n-bezier), + background-color .3s var(--n-bezier); + `),P("tabs-tab",` + padding: var(--n-tab-padding-vertical); + `)]),H("right",` + flex-direction: row-reverse; + `,[P("tab-pane",` + padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom); + `),P("tabs-bar",` + left: 0; + `)]),H("bottom",` + flex-direction: column-reverse; + justify-content: flex-end; + `,[P("tab-pane",` + padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left); + `),P("tabs-bar",` + top: 0; + `)]),P("tabs-rail",` + position: relative; + padding: 3px; + border-radius: var(--n-tab-border-radius); + width: 100%; + background-color: var(--n-color-segment); + transition: background-color .3s var(--n-bezier); + display: flex; + align-items: center; + `,[P("tabs-capsule",` + border-radius: var(--n-tab-border-radius); + position: absolute; + pointer-events: none; + background-color: var(--n-tab-color-segment); + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08); + transition: transform 0.3s var(--n-bezier); + `),P("tabs-tab-wrapper",` + flex-basis: 0; + flex-grow: 1; + display: flex; + align-items: center; + justify-content: center; + `,[P("tabs-tab",` + overflow: hidden; + border-radius: var(--n-tab-border-radius); + width: 100%; + display: flex; + align-items: center; + justify-content: center; + `,[H("active",` + font-weight: var(--n-font-weight-strong); + color: var(--n-tab-text-color-active); + `),I("&:hover",` + color: var(--n-tab-text-color-hover); + `)])])]),H("flex",[P("tabs-nav",` + width: 100%; + position: relative; + `,[P("tabs-wrapper",` + width: 100%; + `,[P("tabs-tab",` + margin-right: 0; + `)])])]),P("tabs-nav",` + box-sizing: border-box; + line-height: 1.5; + display: flex; + transition: border-color .3s var(--n-bezier); + `,[j("prefix, suffix",` + display: flex; + align-items: center; + `),j("prefix","padding-right: 16px;"),j("suffix","padding-left: 16px;")]),H("top, bottom",[I(">",[P("tabs-nav",[P("tabs-nav-scroll-wrapper",[I("&::before",` + top: 0; + bottom: 0; + left: 0; + width: 20px; + `),I("&::after",` + top: 0; + bottom: 0; + right: 0; + width: 20px; + `),H("shadow-start",[I("&::before",` + box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12); + `)]),H("shadow-end",[I("&::after",` + box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12); + `)])])])])]),H("left, right",[P("tabs-nav-scroll-content",` + flex-direction: column; + `),I(">",[P("tabs-nav",[P("tabs-nav-scroll-wrapper",[I("&::before",` + top: 0; + left: 0; + right: 0; + height: 20px; + `),I("&::after",` + bottom: 0; + left: 0; + right: 0; + height: 20px; + `),H("shadow-start",[I("&::before",` + box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12); + `)]),H("shadow-end",[I("&::after",` + box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12); + `)])])])])]),P("tabs-nav-scroll-wrapper",` + flex: 1; + position: relative; + overflow: hidden; + `,[P("tabs-nav-y-scroll",` + height: 100%; + width: 100%; + overflow-y: auto; + scrollbar-width: none; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + width: 0; + height: 0; + display: none; + `)]),I("&::before, &::after",` + transition: box-shadow .3s var(--n-bezier); + pointer-events: none; + content: ""; + position: absolute; + z-index: 1; + `)]),P("tabs-nav-scroll-content",` + display: flex; + position: relative; + min-width: 100%; + min-height: 100%; + width: fit-content; + box-sizing: border-box; + `),P("tabs-wrapper",` + display: inline-flex; + flex-wrap: nowrap; + position: relative; + `),P("tabs-tab-wrapper",` + display: flex; + flex-wrap: nowrap; + flex-shrink: 0; + flex-grow: 0; + `),P("tabs-tab",` + cursor: pointer; + white-space: nowrap; + flex-wrap: nowrap; + display: inline-flex; + align-items: center; + color: var(--n-tab-text-color); + font-size: var(--n-tab-font-size); + background-clip: padding-box; + padding: var(--n-tab-padding); + transition: + box-shadow .3s var(--n-bezier), + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `,[H("disabled",{cursor:"not-allowed"}),j("close",` + margin-left: 6px; + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `),j("label",` + display: flex; + align-items: center; + z-index: 1; + `)]),P("tabs-bar",` + position: absolute; + bottom: 0; + height: 2px; + border-radius: 1px; + background-color: var(--n-bar-color); + transition: + left .2s var(--n-bezier), + max-width .2s var(--n-bezier), + opacity .3s var(--n-bezier), + background-color .3s var(--n-bezier); + `,[I("&.transition-disabled",` + transition: none; + `),H("disabled",` + background-color: var(--n-tab-text-color-disabled) + `)]),P("tabs-pane-wrapper",` + position: relative; + overflow: hidden; + transition: max-height .2s var(--n-bezier); + `),P("tab-pane",` + color: var(--n-pane-text-color); + width: 100%; + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + opacity .2s var(--n-bezier); + left: 0; + right: 0; + top: 0; + `,[I("&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active",` + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + transform .2s var(--n-bezier), + opacity .2s var(--n-bezier); + `),I("&.next-transition-leave-active, &.prev-transition-leave-active",` + position: absolute; + `),I("&.next-transition-enter-from, &.prev-transition-leave-to",` + transform: translateX(32px); + opacity: 0; + `),I("&.next-transition-leave-to, &.prev-transition-enter-from",` + transform: translateX(-32px); + opacity: 0; + `),I("&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to",` + transform: translateX(0); + opacity: 1; + `)]),P("tabs-tab-pad",` + box-sizing: border-box; + width: var(--n-tab-gap); + flex-grow: 0; + flex-shrink: 0; + `),H("line-type, bar-type",[P("tabs-tab",` + font-weight: var(--n-tab-font-weight); + box-sizing: border-box; + vertical-align: bottom; + `,[I("&:hover",{color:"var(--n-tab-text-color-hover)"}),H("active",` + color: var(--n-tab-text-color-active); + font-weight: var(--n-tab-font-weight-active); + `),H("disabled",{color:"var(--n-tab-text-color-disabled)"})])]),P("tabs-nav",[H("line-type",[H("top",[j("prefix, suffix",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + bottom: -1px; + `)]),H("left",[j("prefix, suffix",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + right: -1px; + `)]),H("right",[j("prefix, suffix",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + left: -1px; + `)]),H("bottom",[j("prefix, suffix",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + top: -1px; + `)]),j("prefix, suffix",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-nav-scroll-content",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-bar",` + border-radius: 0; + `)]),H("card-type",[j("prefix, suffix",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-pad",` + flex-grow: 1; + transition: border-color .3s var(--n-bezier); + `),P("tabs-tab-pad",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-tab",` + font-weight: var(--n-tab-font-weight); + border: 1px solid var(--n-tab-border-color); + background-color: var(--n-tab-color); + box-sizing: border-box; + position: relative; + vertical-align: bottom; + display: flex; + justify-content: space-between; + font-size: var(--n-tab-font-size); + color: var(--n-tab-text-color); + `,[H("addable",` + padding-left: 8px; + padding-right: 8px; + font-size: 16px; + justify-content: center; + `,[j("height-placeholder",` + width: 0; + font-size: var(--n-tab-font-size); + `),dt("disabled",[I("&:hover",` + color: var(--n-tab-text-color-hover); + `)])]),H("closable","padding-right: 8px;"),H("active",` + background-color: #0000; + font-weight: var(--n-tab-font-weight-active); + color: var(--n-tab-text-color-active); + `),H("disabled","color: var(--n-tab-text-color-disabled);")])]),H("left, right",` + flex-direction: column; + `,[j("prefix, suffix",` + padding: var(--n-tab-padding-vertical); + `),P("tabs-wrapper",` + flex-direction: column; + `),P("tabs-tab-wrapper",` + flex-direction: column; + `,[P("tabs-tab-pad",` + height: var(--n-tab-gap-vertical); + width: 100%; + `)])]),H("top",[H("card-type",[P("tabs-scroll-padding","border-bottom: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-top-left-radius: var(--n-tab-border-radius); + border-top-right-radius: var(--n-tab-border-radius); + `,[H("active",` + border-bottom: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-bottom: 1px solid var(--n-tab-border-color); + `)])]),H("left",[H("card-type",[P("tabs-scroll-padding","border-right: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-top-left-radius: var(--n-tab-border-radius); + border-bottom-left-radius: var(--n-tab-border-radius); + `,[H("active",` + border-right: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-right: 1px solid var(--n-tab-border-color); + `)])]),H("right",[H("card-type",[P("tabs-scroll-padding","border-left: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-top-right-radius: var(--n-tab-border-radius); + border-bottom-right-radius: var(--n-tab-border-radius); + `,[H("active",` + border-left: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-left: 1px solid var(--n-tab-border-color); + `)])]),H("bottom",[H("card-type",[P("tabs-scroll-padding","border-top: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-bottom-left-radius: var(--n-tab-border-radius); + border-bottom-right-radius: var(--n-tab-border-radius); + `,[H("active",` + border-top: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-top: 1px solid var(--n-tab-border-color); + `)])])])]),Ss=UR,lz=Object.assign(Object.assign({},Be.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:String,placement:{type:String,default:"top"},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),az=pe({name:"Tabs",props:lz,slots:Object,setup(e,{slots:t}){var n,o,r,i;const{mergedClsPrefixRef:l,inlineThemeDisabled:a,mergedComponentPropsRef:s}=Ye(e),d=Be("Tabs","-tabs",iz,V_,e,l),c=E(null),f=E(null),v=E(null),g=E(null),u=E(null),p=E(null),b=E(!0),m=E(!0),y=Bl(e,["labelSize","size"]),$=O(()=>{var q,G;if(y.value)return y.value;const W=(G=(q=s?.value)===null||q===void 0?void 0:q.Tabs)===null||G===void 0?void 0:G.size;return W||"medium"}),S=Bl(e,["activeName","value"]),x=E((o=(n=S.value)!==null&&n!==void 0?n:e.defaultValue)!==null&&o!==void 0?o:t.default?(i=(r=Un(t.default())[0])===null||r===void 0?void 0:r.props)===null||i===void 0?void 0:i.name:null),R=qt(S,x),C={id:0},w=O(()=>{if(!(!e.justifyContent||e.type==="card"))return{display:"flex",justifyContent:e.justifyContent}});tt(R,()=>{C.id=0,T(),B()});function k(){var q;const{value:G}=R;return G===null?null:(q=c.value)===null||q===void 0?void 0:q.querySelector(`[data-name="${G}"]`)}function F(q){if(e.type==="card")return;const{value:G}=f;if(!G)return;const W=G.style.opacity==="0";if(q){const Y=`${l.value}-tabs-bar--disabled`,{barWidth:Se,placement:Le}=e;if(q.dataset.disabled==="true"?G.classList.add(Y):G.classList.remove(Y),["top","bottom"].includes(Le)){if(_(["top","maxHeight","height"]),typeof Se=="number"&&q.offsetWidth>=Se){const Ie=Math.floor((q.offsetWidth-Se)/2)+q.offsetLeft;G.style.left=`${Ie}px`,G.style.maxWidth=`${Se}px`}else G.style.left=`${q.offsetLeft}px`,G.style.maxWidth=`${q.offsetWidth}px`;G.style.width="8192px",W&&(G.style.transition="none"),G.offsetWidth,W&&(G.style.transition="",G.style.opacity="1")}else{if(_(["left","maxWidth","width"]),typeof Se=="number"&&q.offsetHeight>=Se){const Ie=Math.floor((q.offsetHeight-Se)/2)+q.offsetTop;G.style.top=`${Ie}px`,G.style.maxHeight=`${Se}px`}else G.style.top=`${q.offsetTop}px`,G.style.maxHeight=`${q.offsetHeight}px`;G.style.height="8192px",W&&(G.style.transition="none"),G.offsetHeight,W&&(G.style.transition="",G.style.opacity="1")}}}function M(){if(e.type==="card")return;const{value:q}=f;q&&(q.style.opacity="0")}function _(q){const{value:G}=f;if(G)for(const W of q)G.style[W]=""}function T(){if(e.type==="card")return;const q=k();q?F(q):M()}function B(){var q;const G=(q=u.value)===null||q===void 0?void 0:q.$el;if(!G)return;const W=k();if(!W)return;const{scrollLeft:Y,offsetWidth:Se}=G,{offsetLeft:Le,offsetWidth:Ie}=W;Y>Le?G.scrollTo({top:0,left:Le,behavior:"smooth"}):Le+Ie>Y+Se&&G.scrollTo({top:0,left:Le+Ie-Se,behavior:"smooth"})}const D=E(null);let K=0,N=null;function V(q){const G=D.value;if(G){K=q.getBoundingClientRect().height;const W=`${K}px`,Y=()=>{G.style.height=W,G.style.maxHeight=W};N?(Y(),N(),N=null):N=Y}}function ie(q){const G=D.value;if(G){const W=q.getBoundingClientRect().height,Y=()=>{document.body.offsetHeight,G.style.maxHeight=`${W}px`,G.style.height=`${Math.max(K,W)}px`};N?(N(),N=null,Y()):N=Y}}function he(){const q=D.value;if(q){q.style.maxHeight="",q.style.height="";const{paneWrapperStyle:G}=e;if(typeof G=="string")q.style.cssText=G;else if(G){const{maxHeight:W,height:Y}=G;W!==void 0&&(q.style.maxHeight=W),Y!==void 0&&(q.style.height=Y)}}}const J={value:[]},re=E("next");function ye(q){const G=R.value;let W="next";for(const Y of J.value){if(Y===G)break;if(Y===q){W="prev";break}}re.value=W,Z(q)}function Z(q){const{onActiveNameChange:G,onUpdateValue:W,"onUpdate:value":Y}=e;G&&me(G,q),W&&me(W,q),Y&&me(Y,q),x.value=q}function le(q){const{onClose:G}=e;G&&me(G,q)}function $e(){const{value:q}=f;if(!q)return;const G="transition-disabled";q.classList.add(G),T(),q.classList.remove(G)}const ze=E(null);function Ae({transitionDisabled:q}){const G=c.value;if(!G)return;q&&G.classList.add("transition-disabled");const W=k();W&&ze.value&&(ze.value.style.width=`${W.offsetWidth}px`,ze.value.style.height=`${W.offsetHeight}px`,ze.value.style.transform=`translateX(${W.offsetLeft-Pt(getComputedStyle(G).paddingLeft)}px)`,q&&ze.value.offsetWidth),q&&G.classList.remove("transition-disabled")}tt([R],()=>{e.type==="segment"&&Rt(()=>{Ae({transitionDisabled:!1})})}),Ct(()=>{e.type==="segment"&&Ae({transitionDisabled:!0})});let Te=0;function ne(q){var G;if(q.contentRect.width===0&&q.contentRect.height===0||Te===q.contentRect.width)return;Te=q.contentRect.width;const{type:W}=e;if((W==="line"||W==="bar")&&$e(),W!=="segment"){const{placement:Y}=e;ae((Y==="top"||Y==="bottom"?(G=u.value)===null||G===void 0?void 0:G.$el:p.value)||null)}}const Oe=Ss(ne,64);tt([()=>e.justifyContent,()=>e.size],()=>{Rt(()=>{const{type:q}=e;(q==="line"||q==="bar")&&$e()})});const z=E(!1);function L(q){var G;const{target:W,contentRect:{width:Y,height:Se}}=q,Le=W.parentElement.parentElement.offsetWidth,Ie=W.parentElement.parentElement.offsetHeight,{placement:De}=e;if(!z.value)De==="top"||De==="bottom"?LeGe.$el.offsetWidth&&(z.value=!1):Ie-Se>Ge.$el.offsetHeight&&(z.value=!1)}ae(((G=u.value)===null||G===void 0?void 0:G.$el)||null)}const ee=Ss(L,64);function se(){const{onAdd:q}=e;q&&q(),Rt(()=>{const G=k(),{value:W}=u;!G||!W||W.scrollTo({left:G.offsetLeft,top:0,behavior:"smooth"})})}function ae(q){if(!q)return;const{placement:G}=e;if(G==="top"||G==="bottom"){const{scrollLeft:W,scrollWidth:Y,offsetWidth:Se}=q;b.value=W<=0,m.value=W+Se>=Y}else{const{scrollTop:W,scrollHeight:Y,offsetHeight:Se}=q;b.value=W<=0,m.value=W+Se>=Y}}const Q=Ss(q=>{ae(q.target)},64);qe(gc,{triggerRef:we(e,"trigger"),tabStyleRef:we(e,"tabStyle"),tabClassRef:we(e,"tabClass"),addTabStyleRef:we(e,"addTabStyle"),addTabClassRef:we(e,"addTabClass"),paneClassRef:we(e,"paneClass"),paneStyleRef:we(e,"paneStyle"),mergedClsPrefixRef:l,typeRef:we(e,"type"),closableRef:we(e,"closable"),valueRef:R,tabChangeIdRef:C,onBeforeLeaveRef:we(e,"onBeforeLeave"),activateTab:ye,handleClose:le,handleAdd:se}),kp(()=>{T(),B()}),en(()=>{const{value:q}=v;if(!q)return;const{value:G}=l,W=`${G}-tabs-nav-scroll-wrapper--shadow-start`,Y=`${G}-tabs-nav-scroll-wrapper--shadow-end`;b.value?q.classList.remove(W):q.classList.add(W),m.value?q.classList.remove(Y):q.classList.add(Y)});const ue={syncBarPosition:()=>{T()}},ve=()=>{Ae({transitionDisabled:!0})},fe=O(()=>{const{value:q}=$,{type:G}=e,W={card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[G],Y=`${q}${W}`,{self:{barColor:Se,closeIconColor:Le,closeIconColorHover:Ie,closeIconColorPressed:De,tabColor:Ge,tabBorderColor:Xe,paneTextColor:at,tabFontWeight:mt,tabBorderRadius:ft,tabFontWeightActive:Re,colorSegment:te,fontWeightStrong:A,tabColorSegment:X,closeSize:be,closeIconSize:_e,closeColorHover:xe,closeColorPressed:ke,closeBorderRadius:Ce,[de("panePadding",q)]:Fe,[de("tabPadding",Y)]:Ze,[de("tabPaddingVertical",Y)]:Lt,[de("tabGap",Y)]:Et,[de("tabGap",`${Y}Vertical`)]:Dt,[de("tabTextColor",G)]:zt,[de("tabTextColorActive",G)]:Ht,[de("tabTextColorHover",G)]:on,[de("tabTextColorDisabled",G)]:Nt,[de("tabFontSize",q)]:Xt},common:{cubicBezierEaseInOut:Mt}}=d.value;return{"--n-bezier":Mt,"--n-color-segment":te,"--n-bar-color":Se,"--n-tab-font-size":Xt,"--n-tab-text-color":zt,"--n-tab-text-color-active":Ht,"--n-tab-text-color-disabled":Nt,"--n-tab-text-color-hover":on,"--n-pane-text-color":at,"--n-tab-border-color":Xe,"--n-tab-border-radius":ft,"--n-close-size":be,"--n-close-icon-size":_e,"--n-close-color-hover":xe,"--n-close-color-pressed":ke,"--n-close-border-radius":Ce,"--n-close-icon-color":Le,"--n-close-icon-color-hover":Ie,"--n-close-icon-color-pressed":De,"--n-tab-color":Ge,"--n-tab-font-weight":mt,"--n-tab-font-weight-active":Re,"--n-tab-padding":Ze,"--n-tab-padding-vertical":Lt,"--n-tab-gap":Et,"--n-tab-gap-vertical":Dt,"--n-pane-padding-left":Ft(Fe,"left"),"--n-pane-padding-right":Ft(Fe,"right"),"--n-pane-padding-top":Ft(Fe,"top"),"--n-pane-padding-bottom":Ft(Fe,"bottom"),"--n-font-weight-strong":A,"--n-tab-color-segment":X}}),oe=a?vt("tabs",O(()=>`${$.value[0]}${e.type[0]}`),fe,e):void 0;return Object.assign({mergedClsPrefix:l,mergedValue:R,renderedNames:new Set,segmentCapsuleElRef:ze,tabsPaneWrapperRef:D,tabsElRef:c,barElRef:f,addTabInstRef:g,xScrollInstRef:u,scrollWrapperElRef:v,addTabFixed:z,tabWrapperStyle:w,handleNavResize:Oe,mergedSize:$,handleScroll:Q,handleTabsResize:ee,cssVars:a?void 0:fe,themeClass:oe?.themeClass,animationDirection:re,renderNameListRef:J,yScrollElRef:p,handleSegmentResize:ve,onAnimationBeforeLeave:V,onAnimationEnter:ie,onAnimationAfterEnter:he,onRender:oe?.onRender},ue)},render(){const{mergedClsPrefix:e,type:t,placement:n,addTabFixed:o,addable:r,mergedSize:i,renderNameListRef:l,onRender:a,paneWrapperClass:s,paneWrapperStyle:d,$slots:{default:c,prefix:f,suffix:v}}=this;a?.();const g=c?Un(c()).filter(x=>x.type.__TAB_PANE__===!0):[],u=c?Un(c()).filter(x=>x.type.__TAB__===!0):[],p=!u.length,b=t==="card",m=t==="segment",y=!b&&!m&&this.justifyContent;l.value=[];const $=()=>{const x=h("div",{style:this.tabWrapperStyle,class:`${e}-tabs-wrapper`},y?null:h("div",{class:`${e}-tabs-scroll-padding`,style:n==="top"||n==="bottom"?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),p?g.map((R,C)=>(l.value.push(R.props.name),Rs(h(ld,Object.assign({},R.props,{internalCreatedByPane:!0,internalLeftPadded:C!==0&&(!y||y==="center"||y==="start"||y==="end")}),R.children?{default:R.children.tab}:void 0)))):u.map((R,C)=>(l.value.push(R.props.name),Rs(C!==0&&!y?Nf(R):R))),!o&&r&&b?Hf(r,(p?g.length:u.length)!==0):null,y?null:h("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return h("div",{ref:"tabsElRef",class:`${e}-tabs-nav-scroll-content`},b&&r?h(Kn,{onResize:this.handleTabsResize},{default:()=>x}):x,b?h("div",{class:`${e}-tabs-pad`}):null,b?null:h("div",{ref:"barElRef",class:`${e}-tabs-bar`}))},S=m?"top":n;return h("div",{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${i}-size`,y&&`${e}-tabs--flex`,`${e}-tabs--${S}`],style:this.cssVars},h("div",{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${S}`,`${e}-tabs-nav`]},lt(f,x=>x&&h("div",{class:`${e}-tabs-nav__prefix`},x)),m?h(Kn,{onResize:this.handleSegmentResize},{default:()=>h("div",{class:`${e}-tabs-rail`,ref:"tabsElRef"},h("div",{class:`${e}-tabs-capsule`,ref:"segmentCapsuleElRef"},h("div",{class:`${e}-tabs-wrapper`},h("div",{class:`${e}-tabs-tab`}))),p?g.map((x,R)=>(l.value.push(x.props.name),h(ld,Object.assign({},x.props,{internalCreatedByPane:!0,internalLeftPadded:R!==0}),x.children?{default:x.children.tab}:void 0))):u.map((x,R)=>(l.value.push(x.props.name),R===0?x:Nf(x))))}):h(Kn,{onResize:this.handleNavResize},{default:()=>h("div",{class:`${e}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes(S)?h(xx,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:$}):h("div",{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:"yScrollElRef"},$()))}),o&&r&&b?Hf(r,!0):null,lt(v,x=>x&&h("div",{class:`${e}-tabs-nav__suffix`},x))),p&&(this.animated&&(S==="top"||S==="bottom")?h("div",{ref:"tabsPaneWrapperRef",style:d,class:[`${e}-tabs-pane-wrapper`,s]},Df(g,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Df(g,this.mergedValue,this.renderedNames)))}});function Df(e,t,n,o,r,i,l){const a=[];return e.forEach(s=>{const{name:d,displayDirective:c,"display-directive":f}=s.props,v=u=>c===u||f===u,g=t===d;if(s.key!==void 0&&(s.key=d),g||v("show")||v("show:lazy")&&n.has(d)){n.has(d)||n.add(d);const u=!v("if");a.push(u?qn(s,[[Fo,g]]):s)}}),l?h(dp,{name:`${l}-transition`,onBeforeLeave:o,onEnter:r,onAfterEnter:i},{default:()=>a}):a}function Hf(e,t){return h(ld,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e=="object"&&e.disabled})}function Nf(e){const t=hn(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function Rs(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}const sz="modulepreload",dz=function(e){return"/"+e},jf={},ad=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){let d=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};var l=d;document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),s=a?.nonce||a?.getAttribute("nonce");r=d(n.map(c=>{if(c=dz(c),c in jf)return;jf[c]=!0;const f=c.endsWith(".css"),v=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${v}`))return;const g=document.createElement("link");if(g.rel=f?"stylesheet":sz,f||(g.as="script"),g.crossOrigin="",g.href=c,s&&g.setAttribute("nonce",s),document.head.appendChild(g),f)return new Promise((u,p)=>{g.addEventListener("load",u),g.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a}return r.then(a=>{for(const s of a||[])s.status==="rejected"&&i(s.reason);return t().catch(i)})},cz={__name:"RuntimeBadge",props:{type:{type:String,default:"default"},text:{type:String,default:""}},setup(e){return(t,n)=>(Xn(),Oi(ge(ki),{type:e.type,bordered:!1,round:""},{default:Ne(()=>[Kt(Xo(e.text),1)]),_:1},8,["type"]))}},uz={class:"flex items-center gap-3","data-tauri-drag-region":""},fz={__name:"AppTopBar",props:{runtimeText:{type:String,default:""},runtimeTagType:{type:String,default:"default"},onStartMove:{type:Function,required:!0},onMinimize:{type:Function,required:!0},onMaximizeOrRestore:{type:Function,required:!0},onClose:{type:Function,required:!0},onOpenDevtools:{type:Function,required:!0},onRestartApp:{type:Function,required:!0}},setup(e){return(t,n)=>(Xn(),Vi("div",{class:"inner drag-region","data-tauri-drag-region":"",onMousedown:n[6]||(n[6]=(...o)=>e.onStartMove&&e.onStartMove(...o)),onDblclick:n[7]||(n[7]=(...o)=>e.onMaximizeOrRestore&&e.onMaximizeOrRestore(...o))},[Qe("div",uz,[n[8]||(n[8]=Qe("div",{class:"w-8 h-8 rounded-lg bg-cyan-100 text-cyan-700 flex items-center justify-center font-bold"},"识",-1)),n[9]||(n[9]=Qe("div",{class:"text-[16px] font-semibold text-slate-800"},"识流 AI 助手",-1)),Pe(cz,{type:e.runtimeTagType,text:e.runtimeText},null,8,["type","text"])]),Qe("div",{class:"window-actions",onMousedown:n[5]||(n[5]=yr(()=>{},["stop"]))},[Qe("button",{class:"win-btn",type:"button",onClick:n[0]||(n[0]=yr((...o)=>e.onOpenDevtools&&e.onOpenDevtools(...o),["stop"]))},"调"),Qe("button",{class:"win-btn",type:"button",onClick:n[1]||(n[1]=yr((...o)=>e.onRestartApp&&e.onRestartApp(...o),["stop"]))},"重"),Qe("button",{class:"win-btn",type:"button",onClick:n[2]||(n[2]=yr((...o)=>e.onMinimize&&e.onMinimize(...o),["stop"]))},"—"),Qe("button",{class:"win-btn",type:"button",onClick:n[3]||(n[3]=yr((...o)=>e.onMaximizeOrRestore&&e.onMaximizeOrRestore(...o),["stop"]))},"□"),Qe("button",{class:"win-btn close",type:"button",onClick:n[4]||(n[4]=yr((...o)=>e.onClose&&e.onClose(...o),["stop"]))},"✕")],32)],32))}};function hz(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return String(e);const n=t.getFullYear(),o=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0");return`${n}-${o}-${r} ${i}:${l}:${a}`}const pz=[{title:"时间",key:"created_at",width:180,render:e=>hz(e.created_at)},{title:"微信用户",key:"wx_nickname",width:180},{title:"方向",key:"direction",width:90,render:e=>e.direction==="out"?"发送":"接收"},{title:"内容",key:"content",minWidth:320},{title:"气泡方向",key:"ocr_bubble_side",width:100},{title:"置信度",key:"ocr_confidence",width:90}],vz="http://127.0.0.1:5000";function gz(e){return e?e.startsWith("/")?e:`/${e}`:"/"}function bz(e){return/^https?:\/\//i.test(String(e||""))}function mz(){const e=String(window.__APP_BACKEND_URL||"").trim();return e?e.endsWith("/")?e.slice(0,-1):e:""}function yz(){return!!window.__TAURI_INTERNALS__}function Ca(e){if(bz(e))return e;const t=gz(e),n=mz();return n?`${n}${t}`:yz()?`${vz}${t}`:t}async function br(e){return(await fetch(Ca(e))).json()}async function Gr(e,t){const n=new URLSearchParams(t);return(await fetch(Ca(e),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n})).json()}async function xz(e,t){return(await fetch(Ca(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t||{})})).json()}function wz(e){return new EventSource(Ca(e))}function Cz(){return br("/api/bot/status")}function Bg(e={}){const t=new URLSearchParams;Object.entries(e).forEach(([o,r])=>{r==null||r===""||t.set(o,String(r))});const n=t.toString()?`?${t.toString()}`:"";return br(`/api/logs/v2/events${n}`)}function Sz(e=300){return br(`/api/logs/v2/summary?limit=${encodeURIComponent(e)}`)}function Rz(e="bot",t=80){return Bg({module:e,size:t,page:1})}function kz(e){return br(`/api/logs/v2/event/${encodeURIComponent(e)}`)}function Pz(e=""){return xz("/api/logs/v2/clear",{module:e})}function $z(){return Gr("/api/bot/start",{})}function _z(){return Gr("/api/bot/stop",{})}function zz(e,t,n){const o=E(null),r=E(null),i=E(null),l=E(!1),a=E(0),s=O(()=>e.listener_runtime_status==="running"?"运行中":e.listener_runtime_status==="starting"?"启动中":e.listener_runtime_status==="stopping"?"停止中":e.listener_runtime_status==="error"?"异常":"已停止"),d=O(()=>e.listener_runtime_status==="running"?"success":e.listener_runtime_status==="starting"||e.listener_runtime_status==="stopping"?"warning":e.listener_runtime_status==="error"?"error":"default");function c(S,x){const R=String(S?.status||"stopped").toLowerCase();if(e.listener_runtime_status=R,R==="running"||R==="starting"?e.listener_enabled=!0:R==="stopped"||R==="error"?e.listener_enabled=!1:e.listener_enabled=!!x,R==="error"){const C=String(S?.last_error||"").trim().split(` +`).slice(-1)[0]||"";C&&C!==lastNotifiedError.value?(lastNotifiedError.value=C,n.error(`监听启动异常: ${C}`)):!C&&lastNotifiedError.value!=="__unknown__"&&(lastNotifiedError.value="__unknown__",n.error("监听启动异常,请检查微信环境、日志与配置"))}}async function f(){const S=await Cz();S.success&&c(S,e.listener_enabled)}function v(){a.value=Date.now()}function g(){r.value&&(clearInterval(r.value),r.value=null)}function u(){i.value&&(clearInterval(i.value),i.value=null)}function p({reconnect:S=!1}={}){if(g(),u(),o.value){const x=o.value;o.value=null,x.onopen=null,x.onerror=null,x.close()}l.value=!1,S&&y(!0)}function b(){r.value||(r.value=setInterval(()=>{f().catch(()=>{})},15e3))}function m(){i.value||(i.value=setInterval(()=>{const S=a.value||0;if(!o.value){y();return}S&&Date.now()-S<=45e3||(b(),p({reconnect:!0}))},1e4))}function y(S=!1){if(!l.value&&!(o.value&&!S)){o.value&&S&&p(),l.value=!0;try{const x=wz("/api/bot/status/stream");o.value=x,x.addEventListener("status",R=>{v();try{const C=JSON.parse(R.data||"{}");C.success&&c(C,e.listener_enabled),g()}catch{}}),x.addEventListener("ping",()=>{v(),g()}),x.onopen=()=>{l.value=!1,v(),g()},x.onerror=()=>{l.value=!1,b()}}catch{l.value=!1,b()}}}async function $(S){try{e.listener_enabled=!!S,e.listener_runtime_status=S?"starting":"stopping";const x=await(S?$z():_z());if(!x.success)throw new Error(x.error||"操作失败");e.listener_runtime_status=x.status||(S?"running":"stopped"),e.listener_enabled=x.status==="running"||x.status==="starting",await t()}catch(x){n.error(`监听切换失败: ${x}`),await t()}}return xt(()=>{p()}),{runtimeText:s,runtimeTagType:d,refreshBotStatus:f,connectBotStatusStream:y,startStatusHealthCheck:m,onListenerChange:$,closeStatusStream:p,applyBotStatus:c}}function Tz(e=50){return br(`/api/rules?action=messages_recent&limit=${e}`)}function Fz(e){const t=E(!1),n=E([]);async function o(r=50){t.value=!0;try{const i=await Tz(r);n.value=i.data||[]}catch(i){e.error(`加载消息失败: ${i}`)}finally{t.value=!1}}return{loadingMessages:t,messages:n,loadMessages:o}}function Oz(){return br("/api/rules?action=settings_get")}function Ez(e){return Gr("/api/rules",{action:"settings_set",...e})}function Mz(e){const t=_n({auto_reply_enabled:!1,listener_enabled:!1,listener_runtime_status:"stopped",full_auto_reply_enabled:!1,reply_fallback_mode:"ai"});async function n(r){try{const i=await Oz();if(!i.success)return;t.auto_reply_enabled=!!i.auto_reply_enabled,t.full_auto_reply_enabled=!!i.full_auto_reply_enabled,t.reply_fallback_mode=i.reply_fallback_mode||"ai",r({status:i.listener_runtime_status||"stopped"},i.listener_enabled)}catch(i){e.error(`加载设置失败: ${i}`)}}async function o(r,i){try{const l=await Ez(r);if(!l.success){e.error(l.message||"保存失败");return}await n(i)}catch(l){e.error(`保存失败: ${l}`)}}return{settings:t,loadSettings:n,saveSettings:o}}let $o=null,Ul=null;async function Wf(){if($o&&Ul)return!0;if(!window.__TAURI_INTERNALS__)return!1;try{const[{getCurrentWindow:e},{invoke:t}]=await Promise.all([ad(()=>import("./window-B1zSvOyk.js"),__vite__mapDeps([0,1])),ad(()=>import("./core-DhEqZVGG.js"),[])]);return $o=e(),Ul={invoke:t},!0}catch{return!1}}function Bz(){const e=E(null),t=E("browser");async function n(){if(window.qt&&window.QWebChannel){t.value="qt",new window.QWebChannel(window.qt.webChannelTransport,r=>{e.value=r.objects.windowBridge||null});return}if(await Wf()){t.value="tauri";return}t.value="browser"}async function o(r){const i=e.value;if(i&&typeof i[r]=="function"){i[r]();return}if(await Wf()){if(r==="start_move"){await $o.startDragging();return}if(r==="minimize"){await $o.minimize();return}if(r==="maximize_or_restore"){await $o.isMaximized()?await $o.unmaximize():await $o.maximize();return}if(r==="close_window"){await $o.close();return}if(r==="open_devtools"){try{await Ul.invoke("open_devtools")}catch{}return}if(r==="restart_app")try{await Ul.invoke("restart_backend")}catch{}}}return{bridgeMode:t,initWindowBridge:n,startMove:()=>o("start_move"),minimizeWindow:()=>o("minimize"),maximizeOrRestore:()=>o("maximize_or_restore"),closeWindow:()=>o("close_window"),openDevtools:()=>o("open_devtools"),restartApp:()=>o("restart_app")}}const Az={class:"py-3"},Iz={__name:"MessagesView",props:{columns:{type:Array,required:!0},messages:{type:Array,required:!0},loading:{type:Boolean,required:!0},onRefresh:{type:Function,required:!0}},setup(e){return(t,n)=>(Xn(),Vi("div",Az,[Pe(ge(co),{class:"panel",size:"small",bordered:!1},{"header-extra":Ne(()=>[Pe(ge(It),{onClick:e.onRefresh},{default:Ne(()=>[...n[0]||(n[0]=[Kt("刷新",-1)])]),_:1},8,["onClick"])]),default:Ne(()=>[Pe(ge(fc),{columns:e.columns,data:e.messages,loading:e.loading,pagination:{pageSize:10},"max-height":520},null,8,["columns","data","loading"])]),_:1})]))}},Lz=[{label:"AI兜底回复",value:"ai"},{label:"不回复",value:"none"}],Dz=[{label:"包含",value:"contain"},{label:"完全匹配",value:"equal"}],Hz=[{label:"全部匹配方式",value:""},{label:"包含",value:"contain"},{label:"完全匹配",value:"equal"}],Nz=[{label:"全部状态",value:""},{label:"启用",value:1},{label:"暂停",value:0}],jz={class:"py-3 panel-view-shell"},Wz={class:"row-line flex items-center justify-between"},Vz={class:"row-line flex items-center justify-between"},Kz={class:"row-line flex items-center justify-between"},Uz={class:"pt-3 max-w-[240px]"},Gz={__name:"PanelView",props:{settings:{type:Object,required:!0},onListenerChange:{type:Function,required:!0},onSaveSettings:{type:Function,required:!0}},setup(e){const t=e,n=E("bot"),o=E([]),r=E(""),i=E(!1),l=E(""),a=E(null);async function s(){i.value=!0;try{const c=await Rz(n.value,120);if(!c?.success)throw new Error(c?.message||"接口返回失败");o.value=Array.isArray(c.lines)?c.lines:[],r.value=c.path||"",l.value=""}catch(c){l.value=c?.message||String(c)}finally{i.value=!1}}function d(){a.value&&clearInterval(a.value),a.value=setInterval(s,2e3)}return Ct(async()=>{await s(),d()}),tt(n,()=>{s()}),xt(()=>{a.value&&(clearInterval(a.value),a.value=null)}),(c,f)=>(Xn(),Vi("div",jz,[Pe(ge(co),{class:"panel compact-card",title:"监听与回复设置",size:"small",bordered:!1},{default:Ne(()=>[Qe("div",Wz,[f[3]||(f[3]=Qe("div",null,[Qe("div",{class:"label-title"},"监听"),Qe("div",{class:"label-desc"},"执行监听开始监听微信")],-1)),Pe(ge(Cs),{value:t.settings.listener_enabled,"onUpdate:value":t.onListenerChange},null,8,["value","onUpdate:value"])]),Qe("div",Vz,[f[4]||(f[4]=Qe("div",null,[Qe("div",{class:"label-title"},"自动回复"),Qe("div",{class:"label-desc"},"开启后自动回复微信收到的信息")],-1)),Pe(ge(Cs),{value:t.settings.auto_reply_enabled,"onUpdate:value":f[0]||(f[0]=v=>t.onSaveSettings({auto_reply_enabled:v?"1":"0"}))},null,8,["value"])]),Qe("div",Kz,[f[5]||(f[5]=Qe("div",null,[Qe("div",{class:"label-title"},"全量回复"),Qe("div",{class:"label-desc"},"开启后回复所有消息")],-1)),Pe(ge(Cs),{value:t.settings.full_auto_reply_enabled,"onUpdate:value":f[1]||(f[1]=v=>t.onSaveSettings({full_auto_reply_enabled:v?"1":"0"}))},null,8,["value"])]),Qe("div",Uz,[Pe(ge(zo),{options:ge(Lz),value:t.settings.reply_fallback_mode,"onUpdate:value":f[2]||(f[2]=v=>t.onSaveSettings({reply_fallback_mode:v||"ai"}))},null,8,["options","value"])])]),_:1})]))}};function qz(){return br("/api/rules?action=list")}function Xz(e){return Gr("/api/rules",{action:"create",...e})}function Yz(e){return Gr("/api/rules",{action:"toggle",...e})}function Zz(e){return Gr("/api/rules",{action:"delete",id:e})}function Jz(e){const t=E(!1),n=E(!1),o=E(!1),r=E([]),i=_n({keyword:"",match_type:"",status:""}),l=_n({keyword:"",match_type:"contain",reply_text:""}),a=O(()=>r.value.filter(u=>!(i.keyword&&!String(u.keyword||"").toLowerCase().includes(i.keyword.toLowerCase())||i.match_type&&u.match_type!==i.match_type||i.status!==""&&Number(u.is_active)!==Number(i.status))));async function s(){t.value=!0;try{const u=await qz();r.value=u.data||[]}catch(u){e.error(`加载规则失败: ${u}`)}finally{t.value=!1}}async function d(){if(!l.keyword.trim()||!l.reply_text.trim()){e.warning("请填写关键词和回复内容");return}n.value=!0;try{const u=await Xz({keyword:l.keyword.trim(),match_type:l.match_type,reply_text:l.reply_text.trim()});if(!u.success){e.error(u.message||"新增失败");return}e.success("新增成功"),l.keyword="",l.reply_text="",o.value=!1,await s()}catch(u){e.error(`新增失败: ${u}`)}finally{n.value=!1}}async function c(u){try{const p=await Yz({id:String(u.id),is_active:Number(u.is_active)===1?"0":"1"});if(!p.success){e.error(p.message||"切换失败");return}await s()}catch(p){e.error(`切换失败: ${p}`)}}async function f(u){try{const p=await Zz(String(u.id));if(!p.success){e.error(p.message||"删除失败");return}e.success("删除成功"),await s()}catch(p){e.error(`删除失败: ${p}`)}}function v(){i.keyword="",i.match_type="",i.status="",s()}return{loadingRules:t,creatingRule:n,showCreateRuleModal:o,filters:i,createForm:l,filteredRules:a,ruleColumns:[{title:"关键词",key:"keyword",minWidth:140},{title:"匹配方式",key:"match_type",width:120,render:u=>u.match_type==="equal"?"完全匹配":"包含"},{title:"回复内容",key:"reply_text",minWidth:220},{title:"状态",key:"is_active",width:110,render:u=>h(ki,{type:Number(u.is_active)===1?"success":"default",bordered:!1,round:!0},{default:()=>Number(u.is_active)===1?"启用":"暂停"})},{title:"操作",key:"actions",width:190,render:u=>h(vc,{size:8},{default:()=>[h(It,{size:"small",secondary:!0,type:Number(u.is_active)===1?"warning":"success",onClick:()=>c(u)},{default:()=>Number(u.is_active)===1?"停用":"启用"}),h(It,{size:"small",secondary:!0,type:"error",onClick:()=>f(u)},{default:()=>"删除"})]})}],loadRules:s,submitCreateRule:d,resetFilters:v}}const Qz={class:"py-3"},eT={class:"flex justify-end"},tT={class:"flex justify-end gap-2"},nT={__name:"RulesView",props:{message:{type:Object,required:!0}},setup(e,{expose:t}){const n=e,{loadingRules:o,creatingRule:r,showCreateRuleModal:i,filters:l,createForm:a,filteredRules:s,ruleColumns:d,loadRules:c,submitCreateRule:f,resetFilters:v}=Jz(n.message);return Ct(()=>{c()}),t({loadRules:c}),(g,u)=>(Xn(),Vi("div",Qz,[Pe(ge(co),{class:"panel compact-card mb-3",title:"筛选",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(id),{cols:24,"x-gap":12,"y-gap":12},{default:Ne(()=>[Pe(ge(bn),{span:6},{default:Ne(()=>[Pe(ge(Br),{value:ge(l).keyword,"onUpdate:value":u[0]||(u[0]=p=>ge(l).keyword=p),placeholder:"关键词"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:5},{default:Ne(()=>[Pe(ge(zo),{value:ge(l).match_type,"onUpdate:value":u[1]||(u[1]=p=>ge(l).match_type=p),options:ge(Hz)},null,8,["value","options"])]),_:1}),Pe(ge(bn),{span:5},{default:Ne(()=>[Pe(ge(zo),{value:ge(l).status,"onUpdate:value":u[2]||(u[2]=p=>ge(l).status=p),options:ge(Nz)},null,8,["value","options"])]),_:1}),Pe(ge(bn),{span:8,class:"flex justify-end"},{default:Ne(()=>[Pe(ge(vc),null,{default:Ne(()=>[Pe(ge(It),{type:"primary",onClick:ge(c)},{default:Ne(()=>[...u[9]||(u[9]=[Kt("搜索",-1)])]),_:1},8,["onClick"]),Pe(ge(It),{onClick:ge(v)},{default:Ne(()=>[...u[10]||(u[10]=[Kt("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1})]),_:1}),Pe(ge(co),{class:"panel compact-card mb-3",title:"新增规则",size:"small",bordered:!1},{default:Ne(()=>[Qe("div",eT,[Pe(ge(It),{type:"primary",onClick:u[3]||(u[3]=p=>i.value=!0)},{default:Ne(()=>[...u[11]||(u[11]=[Kt("新增回复规则",-1)])]),_:1})])]),_:1}),Pe(ge(xa),{show:ge(i),preset:"card",title:"新增回复规则",class:"w-[640px]","mask-closable":!1,"onUpdate:show":u[8]||(u[8]=p=>i.value=p)},{footer:Ne(()=>[Qe("div",tT,[Pe(ge(It),{onClick:u[7]||(u[7]=p=>i.value=!1)},{default:Ne(()=>[...u[12]||(u[12]=[Kt("取消",-1)])]),_:1}),Pe(ge(It),{type:"primary",loading:ge(r),onClick:ge(f)},{default:Ne(()=>[...u[13]||(u[13]=[Kt("确认新增",-1)])]),_:1},8,["loading","onClick"])])]),default:Ne(()=>[Pe(ge(id),{cols:24,"x-gap":12,"y-gap":12},{default:Ne(()=>[Pe(ge(bn),{span:24},{default:Ne(()=>[Pe(ge(Br),{value:ge(a).keyword,"onUpdate:value":u[4]||(u[4]=p=>ge(a).keyword=p),placeholder:"关键词"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:24},{default:Ne(()=>[Pe(ge(zo),{value:ge(a).match_type,"onUpdate:value":u[5]||(u[5]=p=>ge(a).match_type=p),options:ge(Dz)},null,8,["value","options"])]),_:1}),Pe(ge(bn),{span:24},{default:Ne(()=>[Pe(ge(Br),{value:ge(a).reply_text,"onUpdate:value":u[6]||(u[6]=p=>ge(a).reply_text=p),type:"textarea",autosize:{minRows:3,maxRows:6},placeholder:"回复内容"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["show"]),Pe(ge(co),{class:"panel",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(fc),{columns:ge(d),data:ge(s),loading:ge(o),pagination:{pageSize:10},"max-height":360},null,8,["columns","data","loading"])]),_:1})]))}},oT={class:"py-3"},rT={style:{color:"#8c8c8c","font-size":"12px"}},iT={style:{"margin-left":"12px"}},lT={style:{"margin-left":"12px"}},aT={style:{"max-height":"520px",overflow:"auto",margin:"0","font-size":"12px","white-space":"pre-wrap","word-break":"break-all"}},sT={__name:"LogsView",setup(e){const t=E(null),n=E(!1),o=E(!1),r=E(""),i=E(""),l=E(""),a=E(""),s=E(""),d=E(!1),c=E([]),f=E({error_count:0,fallback_count:0,top_reasons:[],domain_counts:[]}),v=[{label:"全部功能域",value:""},{label:"接口",value:"api"},{label:"机器人",value:"bot"},{label:"OCR",value:"ocr"},{label:"AI",value:"ai"},{label:"数据库",value:"db"},{label:"截图",value:"capture"}],g=[{label:"全部模块",value:""},{label:"接口(api)",value:"api"},{label:"机器人(bot)",value:"bot"},{label:"OCR(ocr)",value:"ocr"},{label:"AI(ai)",value:"ai"},{label:"数据库(db)",value:"db"},{label:"截图(capture)",value:"capture"},{label:"审计(audit)",value:"audit"},{label:"错误(error)",value:"error"}],u=[{label:"全部级别",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],p={api:"接口",bot:"机器人",ocr:"OCR",ai:"AI",db:"数据库",capture:"截图"},b=O(()=>(Array.isArray(f.value?.domain_counts)?f.value.domain_counts:[]).filter(M=>Number(M?.count||0)>0).map(M=>`${p[M.domain]||M.domain}: ${M.count}`).join(" | ")),m=O(()=>{let F=c.value;return a.value&&(F=F.filter(M=>String(M.domain||"")===a.value)),d.value&&(F=F.filter(M=>{const _=String(M.level||"").toUpperCase(),T=String(M.status||"").toLowerCase();return _==="ERROR"||_==="WARNING"||T==="failed"||T==="fail"})),F});function y(F){const M=String(F||"").trim();if(!M)return"-";const _=new Date(M);if(Number.isNaN(_.getTime()))return M.replace("T"," ").replace(/\.\d+([+-]\d{2}:?\d{2}|Z)?$/,"");const T=_.getFullYear(),B=String(_.getMonth()+1).padStart(2,"0"),D=String(_.getDate()).padStart(2,"0"),K=String(_.getHours()).padStart(2,"0"),N=String(_.getMinutes()).padStart(2,"0"),V=String(_.getSeconds()).padStart(2,"0");return`${T}-${B}-${D} ${K}:${N}:${V}`}async function $(F){o.value=!0,r.value="加载中...";const M=String(F?.event_id||"").trim();if(!M){r.value=JSON.stringify(F||{},null,2);return}try{const _=await kz(M);r.value=JSON.stringify(_?.item||F||{},null,2)}catch{r.value=JSON.stringify(F||{},null,2)}}async function S(){await Pz(l.value||""),await R()}const x=[{title:"时间",key:"ts",width:170,render:F=>y(F.ts)},{title:"功能域",key:"domain",width:90},{title:"级别",key:"level",width:90},{title:"模块",key:"module",width:90},{title:"事件",key:"event",width:220},{title:"阶段",key:"stage",width:90},{title:"状态",key:"status",width:90},{title:"trace_id",key:"trace_id",width:180},{title:"原因",key:"reason",width:160},{title:"消息",key:"message",minWidth:260},{title:"操作",key:"actions",width:100,render:F=>h(It,{size:"tiny",quaternary:!0,type:"primary",onClick:()=>$(F)},{default:()=>"JSON"})}];async function R(){n.value=!0;try{const[F,M]=await Promise.all([Bg({module:l.value,level:s.value,keyword:i.value,page:1,size:200}),Sz(300)]);c.value=Array.isArray(F?.items)?F.items:[],f.value=M||{error_count:0,fallback_count:0,top_reasons:[],domain_counts:[]}}catch{c.value=[],f.value={error_count:0,fallback_count:0,top_reasons:[],domain_counts:[]}}finally{n.value=!1}}function C(){a.value="",l.value="",s.value="",i.value="",d.value=!1,R()}function w(){d.value=!d.value}function k(){t.value&&clearInterval(t.value),t.value=setInterval(()=>{R()},2e3)}return Ct(async()=>{await R(),k()}),xt(()=>{t.value&&(clearInterval(t.value),t.value=null)}),(F,M)=>(Xn(),Vi("div",oT,[Pe(ge(co),{class:"panel compact-card mb-3",title:"筛选",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(id),{cols:24,"x-gap":12,"y-gap":12},{default:Ne(()=>[Pe(ge(bn),{span:4},{default:Ne(()=>[Pe(ge(zo),{value:a.value,"onUpdate:value":M[0]||(M[0]=_=>a.value=_),options:v,placeholder:"功能域"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:4},{default:Ne(()=>[Pe(ge(zo),{value:l.value,"onUpdate:value":M[1]||(M[1]=_=>l.value=_),options:g,placeholder:"模块"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:4},{default:Ne(()=>[Pe(ge(zo),{value:s.value,"onUpdate:value":M[2]||(M[2]=_=>s.value=_),options:u,placeholder:"级别"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:6},{default:Ne(()=>[Pe(ge(Br),{value:i.value,"onUpdate:value":M[3]||(M[3]=_=>i.value=_),placeholder:"关键词过滤",onKeydown:k0(R,["enter"])},null,8,["value"])]),_:1}),Pe(ge(bn),{span:6,class:"flex justify-end"},{default:Ne(()=>[Pe(ge(vc),null,{default:Ne(()=>[Pe(ge(It),{type:d.value?"error":"default",onClick:w},{default:Ne(()=>[Kt(Xo(d.value?"仅异常:开":"仅异常:关"),1)]),_:1},8,["type"]),Pe(ge(It),{type:"warning",onClick:S},{default:Ne(()=>[...M[5]||(M[5]=[Kt("清除日志",-1)])]),_:1}),Pe(ge(It),{type:"primary",loading:n.value,onClick:R},{default:Ne(()=>[...M[6]||(M[6]=[Kt("搜索",-1)])]),_:1},8,["loading"]),Pe(ge(It),{onClick:C},{default:Ne(()=>[...M[7]||(M[7]=[Kt("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),Pe(ge(co),{class:"panel compact-card mb-3",title:"统计",size:"small",bordered:!1},{default:Ne(()=>[Qe("div",rT,[Qe("span",null,"错误数: "+Xo(f.value.error_count||0),1),Qe("span",iT,"回退数: "+Xo(f.value.fallback_count||0),1),Qe("span",lT,Xo(b.value||"域分布: 无"),1)])]),_:1}),Pe(ge(co),{class:"panel",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(fc),{columns:x,data:m.value,loading:n.value,pagination:{pageSize:20},"max-height":560,size:"small",striped:""},null,8,["data","loading"])]),_:1}),Pe(ge(xa),{show:o.value,"onUpdate:show":M[4]||(M[4]=_=>o.value=_),preset:"card",title:"日志JSON",style:{width:"760px"}},{default:Ne(()=>[Qe("pre",aT,Xo(r.value),1)]),_:1},8,["show"])]))}},dT={class:"inner content-scroll"},cT={class:"tab-wrap"},uT={__name:"App",setup(e){const t=window.$message,n=E("panel"),o=E(null),r=E(null),i=E(null),{initWindowBridge:l,startMove:a,minimizeWindow:s,maximizeOrRestore:d,closeWindow:c,openDevtools:f,restartApp:v}=Bz(),{settings:g,loadSettings:u,saveSettings:p}=Mz(t),{loadingMessages:b,messages:m,loadMessages:y}=Fz(t),{runtimeText:$,runtimeTagType:S,refreshBotStatus:x,connectBotStatusStream:R,startStatusHealthCheck:C,onListenerChange:w,closeStatusStream:k,applyBotStatus:F}=zz(g,()=>u(F),t);function M(){o.value&&(clearInterval(o.value),o.value=null),r.value&&(clearInterval(r.value),r.value=null)}async function _(){if(window.__TAURI_INTERNALS__)try{const{invoke:B}=await ad(async()=>{const{invoke:K}=await import("./core-DhEqZVGG.js");return{invoke:K}},[]),D=await B("get_backend_bootstrap_error");D&&t.error(`后端启动失败:${D}`)}catch{}}function T(B){n.value=B,B==="rules"&&i.value?.loadRules?.(),B==="messages"&&y()}return Ct(async()=>{l(),await _(),await u(F),await x().catch(()=>{}),R(),C(),await y(),o.value=setInterval(()=>u(F),3e4),r.value=setInterval(()=>{n.value==="messages"&&y()},5e3)}),xt(()=>{M(),k()}),(B,D)=>(Xn(),Oi(ge(Uv),{"theme-overrides":{common:{primaryColor:"#22c1c3",primaryColorHover:"#1ba8aa",primaryColorPressed:"#169295",borderRadius:"10px"}}},{default:Ne(()=>[Pe(ge(Z_),{class:"page-shell"},{default:Ne(()=>[Pe(ge(tz),{class:"topbar"},{default:Ne(()=>[Pe(fz,{"runtime-text":ge($),"runtime-tag-type":ge(S),"on-start-move":ge(a),"on-minimize":ge(s),"on-maximize-or-restore":ge(d),"on-close":ge(c),"on-open-devtools":ge(f),"on-restart-app":ge(v)},null,8,["runtime-text","runtime-tag-type","on-start-move","on-minimize","on-maximize-or-restore","on-close","on-open-devtools","on-restart-app"])]),_:1}),Pe(ge(J_),{class:"content-root","content-style":"padding:16px 0 16px;height:100%;overflow:hidden;"},{default:Ne(()=>[Qe("div",dT,[D[0]||(D[0]=Qe("div",{class:"panel hero p-4 mb-3"},[Qe("div",{class:"text-[15px] font-semibold text-slate-800 mb-1"},"管理后台"),Qe("div",{class:"text-[13px] text-slate-600"},"组件化管理页面(已移除系统原生窗口栏)。")],-1)),Qe("div",cT,[Pe(ge(az),{class:"app-tabs",type:"segment",animated:"",value:n.value,"onUpdate:value":T},{default:Ne(()=>[Pe(ge(yl),{class:"app-tab-pane",name:"panel",tab:"面板"},{default:Ne(()=>[Pe(Gz,{settings:ge(g),"on-listener-change":ge(w),"on-save-settings":K=>ge(p)(K,ge(F))},null,8,["settings","on-listener-change","on-save-settings"])]),_:1}),Pe(ge(yl),{class:"app-tab-pane",name:"rules",tab:"回复匹配配置"},{default:Ne(()=>[Pe(nT,{ref_key:"rulesViewRef",ref:i,message:ge(t)},null,8,["message"])]),_:1}),Pe(ge(yl),{class:"app-tab-pane",name:"logs",tab:"运行日志"},{default:Ne(()=>[Pe(sT)]),_:1}),Pe(ge(yl),{class:"app-tab-pane",name:"messages",tab:"历史消息"},{default:Ne(()=>[Pe(Iz,{columns:ge(pz),messages:ge(m),loading:ge(b),"on-refresh":ge(y)},null,8,["columns","messages","loading","on-refresh"])]),_:1})]),_:1},8,["value"])])])]),_:1})]),_:1})]),_:1}))}};function fT(){return new Promise((e,t)=>{if(window.QWebChannel){e();return}const n=document.createElement("script");n.src="qrc:///qtwebchannel/qwebchannel.js",n.onload=()=>e(),n.onerror=t,document.head.appendChild(n)})}async function hT(){if(window.qt&&!window.QWebChannel)try{await fT()}catch{}const{message:e}=O_(["message"]);window.$message=e,up(uT).mount("#app")}hT()});export default pT(); diff --git a/frontend/dist/assets/window-B1zSvOyk.js b/frontend/dist/assets/window-B1zSvOyk.js new file mode 100644 index 0000000..a49b7d3 --- /dev/null +++ b/frontend/dist/assets/window-B1zSvOyk.js @@ -0,0 +1 @@ +import{SERIALIZE_TO_IPC_FN as o,invoke as t,transformCallback as x,Resource as I}from"./core-DhEqZVGG.js";class O{constructor(...e){this.type="Logical",e.length===1?"Logical"in e[0]?(this.width=e[0].Logical.width,this.height=e[0].Logical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toPhysical(e){return new h(this.width*e,this.height*e)}[o](){return{width:this.width,height:this.height}}toJSON(){return this[o]()}}class h{constructor(...e){this.type="Physical",e.length===1?"Physical"in e[0]?(this.width=e[0].Physical.width,this.height=e[0].Physical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toLogical(e){return new O(this.width/e,this.height/e)}[o](){return{width:this.width,height:this.height}}toJSON(){return this[o]()}}class c{constructor(e){this.size=e}toLogical(e){return this.size instanceof O?this.size:this.size.toLogical(e)}toPhysical(e){return this.size instanceof h?this.size:this.size.toPhysical(e)}[o](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[o]()}}class A{constructor(...e){this.type="Logical",e.length===1?"Logical"in e[0]?(this.x=e[0].Logical.x,this.y=e[0].Logical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toPhysical(e){return new u(this.x*e,this.y*e)}[o](){return{x:this.x,y:this.y}}toJSON(){return this[o]()}}class u{constructor(...e){this.type="Physical",e.length===1?"Physical"in e[0]?(this.x=e[0].Physical.x,this.y=e[0].Physical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toLogical(e){return new A(this.x/e,this.y/e)}[o](){return{x:this.x,y:this.y}}toJSON(){return this[o]()}}class w{constructor(e){this.position=e}toLogical(e){return this.position instanceof A?this.position:this.position.toLogical(e)}toPhysical(e){return this.position instanceof u?this.position:this.position.toPhysical(e)}[o](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[o]()}}var a;(function(i){i.WINDOW_RESIZED="tauri://resize",i.WINDOW_MOVED="tauri://move",i.WINDOW_CLOSE_REQUESTED="tauri://close-requested",i.WINDOW_DESTROYED="tauri://destroyed",i.WINDOW_FOCUS="tauri://focus",i.WINDOW_BLUR="tauri://blur",i.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",i.WINDOW_THEME_CHANGED="tauri://theme-changed",i.WINDOW_CREATED="tauri://window-created",i.WINDOW_SUSPENDED="tauri://suspended",i.WINDOW_RESUMED="tauri://resumed",i.WEBVIEW_CREATED="tauri://webview-created",i.DRAG_ENTER="tauri://drag-enter",i.DRAG_OVER="tauri://drag-over",i.DRAG_DROP="tauri://drag-drop",i.DRAG_LEAVE="tauri://drag-leave"})(a||(a={}));async function N(i,e){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(i,e),await t("plugin:event|unlisten",{event:i,eventId:e})}async function S(i,e,n){var l;const s=typeof n?.target=="string"?{kind:"AnyLabel",label:n.target}:(l=n?.target)!==null&&l!==void 0?l:{kind:"Any"};return t("plugin:event|listen",{event:i,target:s,handler:x(e)}).then(p=>async()=>N(i,p))}async function L(i,e,n){return S(i,l=>{N(i,l.id),e(l)},n)}async function R(i,e){await t("plugin:event|emit",{event:i,payload:e})}async function P(i,e,n){await t("plugin:event|emit_to",{target:typeof i=="string"?{kind:"AnyLabel",label:i}:i,event:e,payload:n})}class d extends I{constructor(e){super(e)}static async new(e,n,l){return t("plugin:image|new",{rgba:b(e),width:n,height:l}).then(s=>new d(s))}static async fromBytes(e){return t("plugin:image|from_bytes",{bytes:b(e)}).then(n=>new d(n))}static async fromPath(e){return t("plugin:image|from_path",{path:e}).then(n=>new d(n))}async rgba(){return t("plugin:image|rgba",{rid:this.rid}).then(e=>new Uint8Array(e))}async size(){return t("plugin:image|size",{rid:this.rid})}}function b(i){return i==null?null:typeof i=="string"?i:i instanceof d?i.rid:i}var m;(function(i){i[i.Critical=1]="Critical",i[i.Informational=2]="Informational"})(m||(m={}));class k{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var v;(function(i){i.None="none",i.Normal="normal",i.Indeterminate="indeterminate",i.Paused="paused",i.Error="error"})(v||(v={}));function E(){return new C(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function g(){return t("plugin:window|get_all_windows").then(i=>i.map(e=>new C(e,{skip:!0})))}const _=["tauri://created","tauri://error"];class C{constructor(e,n={}){var l;this.label=e,this.listeners=Object.create(null),n?.skip||t("plugin:window|create",{options:{...n,parent:typeof n.parent=="string"?n.parent:(l=n.parent)===null||l===void 0?void 0:l.label,label:e}}).then(async()=>this.emit("tauri://created")).catch(async s=>this.emit("tauri://error",s))}static async getByLabel(e){var n;return(n=(await g()).find(l=>l.label===e))!==null&&n!==void 0?n:null}static getCurrent(){return E()}static async getAll(){return g()}static async getFocusedWindow(){for(const e of await g())if(await e.isFocused())return e;return null}async listen(e,n){return this._handleTauriEvent(e,n)?()=>{const l=this.listeners[e];l.splice(l.indexOf(n),1)}:S(e,n,{target:{kind:"Window",label:this.label}})}async once(e,n){return this._handleTauriEvent(e,n)?()=>{const l=this.listeners[e];l.splice(l.indexOf(n),1)}:L(e,n,{target:{kind:"Window",label:this.label}})}async emit(e,n){if(_.includes(e)){for(const l of this.listeners[e]||[])l({event:e,id:-1,payload:n});return}return R(e,n)}async emitTo(e,n,l){if(_.includes(n)){for(const s of this.listeners[n]||[])s({event:n,id:-1,payload:l});return}return P(e,n,l)}_handleTauriEvent(e,n){return _.includes(e)?(e in this.listeners?this.listeners[e].push(n):this.listeners[e]=[n],!0):!1}async scaleFactor(){return t("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return t("plugin:window|inner_position",{label:this.label}).then(e=>new u(e))}async outerPosition(){return t("plugin:window|outer_position",{label:this.label}).then(e=>new u(e))}async innerSize(){return t("plugin:window|inner_size",{label:this.label}).then(e=>new h(e))}async outerSize(){return t("plugin:window|outer_size",{label:this.label}).then(e=>new h(e))}async isFullscreen(){return t("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return t("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return t("plugin:window|is_maximized",{label:this.label})}async isFocused(){return t("plugin:window|is_focused",{label:this.label})}async isDecorated(){return t("plugin:window|is_decorated",{label:this.label})}async isResizable(){return t("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return t("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return t("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return t("plugin:window|is_closable",{label:this.label})}async isVisible(){return t("plugin:window|is_visible",{label:this.label})}async title(){return t("plugin:window|title",{label:this.label})}async theme(){return t("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return t("plugin:window|is_always_on_top",{label:this.label})}async activityName(){return t("plugin:window|activity_name",{label:this.label})}async sceneIdentifier(){return t("plugin:window|scene_identifier",{label:this.label})}async center(){return t("plugin:window|center",{label:this.label})}async requestUserAttention(e){let n=null;return e&&(e===m.Critical?n={type:"Critical"}:n={type:"Informational"}),t("plugin:window|request_user_attention",{label:this.label,value:n})}async setResizable(e){return t("plugin:window|set_resizable",{label:this.label,value:e})}async setEnabled(e){return t("plugin:window|set_enabled",{label:this.label,value:e})}async isEnabled(){return t("plugin:window|is_enabled",{label:this.label})}async setMaximizable(e){return t("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return t("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return t("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return t("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return t("plugin:window|maximize",{label:this.label})}async unmaximize(){return t("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return t("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return t("plugin:window|minimize",{label:this.label})}async unminimize(){return t("plugin:window|unminimize",{label:this.label})}async show(){return t("plugin:window|show",{label:this.label})}async hide(){return t("plugin:window|hide",{label:this.label})}async close(){return t("plugin:window|close",{label:this.label})}async destroy(){return t("plugin:window|destroy",{label:this.label})}async setDecorations(e){return t("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return t("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return t("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return t("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return t("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return t("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return t("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){return t("plugin:window|set_size",{label:this.label,value:e instanceof c?e:new c(e)})}async setMinSize(e){return t("plugin:window|set_min_size",{label:this.label,value:e instanceof c?e:e?new c(e):null})}async setMaxSize(e){return t("plugin:window|set_max_size",{label:this.label,value:e instanceof c?e:e?new c(e):null})}async setSizeConstraints(e){function n(l){return l?{Logical:l}:null}return t("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:n(e?.minWidth),minHeight:n(e?.minHeight),maxWidth:n(e?.maxWidth),maxHeight:n(e?.maxHeight)}})}async setPosition(e){return t("plugin:window|set_position",{label:this.label,value:e instanceof w?e:new w(e)})}async setFullscreen(e){return t("plugin:window|set_fullscreen",{label:this.label,value:e})}async setSimpleFullscreen(e){return t("plugin:window|set_simple_fullscreen",{label:this.label,value:e})}async setFocus(){return t("plugin:window|set_focus",{label:this.label})}async setFocusable(e){return t("plugin:window|set_focusable",{label:this.label,value:e})}async setIcon(e){return t("plugin:window|set_icon",{label:this.label,value:b(e)})}async setSkipTaskbar(e){return t("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return t("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return t("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return t("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setBackgroundColor(e){return t("plugin:window|set_background_color",{color:e})}async setCursorPosition(e){return t("plugin:window|set_cursor_position",{label:this.label,value:e instanceof w?e:new w(e)})}async setIgnoreCursorEvents(e){return t("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return t("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return t("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setBadgeCount(e){return t("plugin:window|set_badge_count",{label:this.label,value:e})}async setBadgeLabel(e){return t("plugin:window|set_badge_label",{label:this.label,value:e})}async setOverlayIcon(e){return t("plugin:window|set_overlay_icon",{label:this.label,value:e?b(e):void 0})}async setProgressBar(e){return t("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return t("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return t("plugin:window|set_title_bar_style",{label:this.label,value:e})}async setTheme(e){return t("plugin:window|set_theme",{label:this.label,value:e})}async onResized(e){return this.listen(a.WINDOW_RESIZED,n=>{n.payload=new h(n.payload),e(n)})}async onMoved(e){return this.listen(a.WINDOW_MOVED,n=>{n.payload=new u(n.payload),e(n)})}async onCloseRequested(e){return this.listen(a.WINDOW_CLOSE_REQUESTED,async n=>{const l=new k(n);await e(l),l.isPreventDefault()||await this.destroy()})}async onDragDropEvent(e){const n=await this.listen(a.DRAG_ENTER,r=>{e({...r,payload:{type:"enter",paths:r.payload.paths,position:new u(r.payload.position)}})}),l=await this.listen(a.DRAG_OVER,r=>{e({...r,payload:{type:"over",position:new u(r.payload.position)}})}),s=await this.listen(a.DRAG_DROP,r=>{e({...r,payload:{type:"drop",paths:r.payload.paths,position:new u(r.payload.position)}})}),p=await this.listen(a.DRAG_LEAVE,r=>{e({...r,payload:{type:"leave"}})});return()=>{n(),s(),l(),p()}}async onFocusChanged(e){const n=await this.listen(a.WINDOW_FOCUS,s=>{e({...s,payload:!0})}),l=await this.listen(a.WINDOW_BLUR,s=>{e({...s,payload:!1})});return()=>{n(),l()}}async onScaleChanged(e){return this.listen(a.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(a.WINDOW_THEME_CHANGED,e)}}var D;(function(i){i.Disabled="disabled",i.Throttle="throttle",i.Suspend="suspend"})(D||(D={}));var f;(function(i){i.Default="default",i.FluentOverlay="fluentOverlay"})(f||(f={}));var W;(function(i){i.AppearanceBased="appearanceBased",i.Light="light",i.Dark="dark",i.MediumLight="mediumLight",i.UltraDark="ultraDark",i.Titlebar="titlebar",i.Selection="selection",i.Menu="menu",i.Popover="popover",i.Sidebar="sidebar",i.HeaderView="headerView",i.Sheet="sheet",i.WindowBackground="windowBackground",i.HudWindow="hudWindow",i.FullScreenUI="fullScreenUI",i.Tooltip="tooltip",i.ContentBackground="contentBackground",i.UnderWindowBackground="underWindowBackground",i.UnderPageBackground="underPageBackground",i.Mica="mica",i.Blur="blur",i.Acrylic="acrylic",i.Tabbed="tabbed",i.TabbedDark="tabbedDark",i.TabbedLight="tabbedLight"})(W||(W={}));var z;(function(i){i.FollowsWindowActiveState="followsWindowActiveState",i.Active="active",i.Inactive="inactive"})(z||(z={}));function y(i){return i===null?null:{name:i.name,scaleFactor:i.scaleFactor,position:new u(i.position),size:new h(i.size),workArea:{position:new u(i.workArea.position),size:new h(i.workArea.size)}}}async function T(){return t("plugin:window|current_monitor").then(y)}async function B(){return t("plugin:window|primary_monitor").then(y)}async function F(i,e){return t("plugin:window|monitor_from_point",{x:i,y:e}).then(y)}async function U(){return t("plugin:window|available_monitors").then(i=>i.map(y))}async function G(){return t("plugin:window|cursor_position").then(i=>new u(i))}export{k as CloseRequestedEvent,W as Effect,z as EffectState,A as LogicalPosition,O as LogicalSize,u as PhysicalPosition,h as PhysicalSize,v as ProgressBarStatus,m as UserAttentionType,C as Window,U as availableMonitors,T as currentMonitor,G as cursorPosition,g as getAllWindows,E as getCurrentWindow,F as monitorFromPoint,B as primaryMonitor}; diff --git a/frontend/dist/index.html b/frontend/dist/index.html new file mode 100644 index 0000000..07709cd --- /dev/null +++ b/frontend/dist/index.html @@ -0,0 +1,14 @@ + + + + + + 识流 AI 助手 + + + + + +
+ + diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..62ec9f8 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + 识流 AI 助手 + + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..674a12c --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,1817 @@ +{ + "name": "ai-shiliu-frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ai-shiliu-frontend", + "version": "0.1.0", + "dependencies": { + "@tauri-apps/api": "^2.8.0", + "naive-ui": "^2.43.1", + "vue": "^3.5.22" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.11.2", + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.1.5" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@css-render/plugin-bem": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.14.tgz", + "integrity": "sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==", + "license": "MIT", + "peerDependencies": { + "css-render": "~0.15.14" + } + }, + "node_modules/@css-render/vue3-ssr": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.14.tgz", + "integrity": "sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz", + "integrity": "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz", + "integrity": "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz", + "integrity": "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz", + "integrity": "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz", + "integrity": "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz", + "integrity": "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz", + "integrity": "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz", + "integrity": "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz", + "integrity": "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz", + "integrity": "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz", + "integrity": "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz", + "integrity": "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz", + "integrity": "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz", + "integrity": "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz", + "integrity": "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz", + "integrity": "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz", + "integrity": "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz", + "integrity": "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz", + "integrity": "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz", + "integrity": "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz", + "integrity": "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz", + "integrity": "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz", + "integrity": "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz", + "integrity": "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz", + "integrity": "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tauri-apps/api": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.0.tgz", + "integrity": "sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA==", + "license": "Apache-2.0 OR MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.2.tgz", + "integrity": "sha512-bk3HemqvGRoy+5D/dVMUQHKMYLglD0jVnMm/0iGMH6ufZ+p8r14m6BpIixwij3PBvZdvORUp1YifTD8QxVZ1Nw==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "2.11.2", + "@tauri-apps/cli-darwin-x64": "2.11.2", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.2", + "@tauri-apps/cli-linux-arm64-gnu": "2.11.2", + "@tauri-apps/cli-linux-arm64-musl": "2.11.2", + "@tauri-apps/cli-linux-riscv64-gnu": "2.11.2", + "@tauri-apps/cli-linux-x64-gnu": "2.11.2", + "@tauri-apps/cli-linux-x64-musl": "2.11.2", + "@tauri-apps/cli-win32-arm64-msvc": "2.11.2", + "@tauri-apps/cli-win32-ia32-msvc": "2.11.2", + "@tauri-apps/cli-win32-x64-msvc": "2.11.2" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.11.2.tgz", + "integrity": "sha512-+4UZzLt+eOAEQCwgd+TqKgyUJMrvx+BgdXLLaqJYmPqzP+nE6YZr/hY6CWLYGQb8jFn99jEkmC6uA3tNvamA1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.11.2.tgz", + "integrity": "sha512-VjYYtZUPqDMLutSfJEyxFE3Bz+DPi7c8wC3imckgvciLDZLq4qwKJxBicg0BXGhXjJsl8vKWgWRFNMPELQ+Xyg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.11.2.tgz", + "integrity": "sha512-yMemD6f4i95AQriS8EazyOFzbE34yjnP16i3IOzpHGQvBoy2DjypFMFBq0NtPuITURv/cOGguRtHR5d79/9CSA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.11.2.tgz", + "integrity": "sha512-cgI91D2wL8GSgoWwZXDqt+DwnuZCP2/bz03QAE4TrhgAKIsrB4hX26W/H1EONPUUNkqrsgeCD0wU6pcNjV/5kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.11.2.tgz", + "integrity": "sha512-X1rm0BERqAAggtYTESSgXrS3sz4Sb/OiPiz54UqISlXW+GkR3vNIGnsy/lejNmoXGVqri3Q53BCfQiclOIyRPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.11.2.tgz", + "integrity": "sha512-usbMLJbT3KtkOrBMDVeGYNM35aTHXx38SJSzTMSqqjeUIOQ+iVPjb2yAGNAE+KqmBbAx4FOFIyMeKXx2M/JKGQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.11.2.tgz", + "integrity": "sha512-Ru4gwJKPG0ctVGchRGpRup4Y4lW2SSfFnrbQcyHhCliKy4g8Qz97TrUgCur4CbWyAgKxvGh3SjrkA0LDYzDGiw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.11.2.tgz", + "integrity": "sha512-eUm7T6clN1MMmNSRQ9gaWsQdyehQx2Gmn5hht/QUlqZQI/qcP2OJK5dnaxqwFzCr2HdsEo9ydxaqcS1oJzMvUw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.11.2.tgz", + "integrity": "sha512-HeeZW80jU+gVTOEX4X/hC6NVSAdDVXajwP5fxIZ/3z9WvUC7qrudX2GMTilYq6Dg0e0sk0XgsAJD1hZ5wPBXUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.11.2.tgz", + "integrity": "sha512-YhjQNZcXfbkCLyazSv1nPnJ9iRFE1wm6kc51FDbU10/Dk09io+6PAGMLjkxnX2GdM0qMnDmTjstY8mTDVvtKeA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.11.2.tgz", + "integrity": "sha512-d2JchlFIpZevZVReyqhQOekJmb1UH3rhZ5VX6sH3ty9ETE0TKQavpihvoScUXfKKpW6HZC0MrFGRU0ZtD+w3gA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz", + "integrity": "sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.34.tgz", + "integrity": "sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.34", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz", + "integrity": "sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz", + "integrity": "sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.34", + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.14", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz", + "integrity": "sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.34.tgz", + "integrity": "sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.34.tgz", + "integrity": "sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz", + "integrity": "sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/runtime-core": "3.5.34", + "@vue/shared": "3.5.34", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.34.tgz", + "integrity": "sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "vue": "3.5.34" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.34.tgz", + "integrity": "sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==", + "license": "MIT" + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/css-render": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.14.tgz", + "integrity": "sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "~0.8.0", + "csstype": "~3.0.5" + } + }, + "node_modules/css-render/node_modules/csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-fns-tz": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.2.0.tgz", + "integrity": "sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==", + "license": "MIT", + "peerDependencies": { + "date-fns": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/evtd": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.4.tgz", + "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/naive-ui": { + "version": "2.44.1", + "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.44.1.tgz", + "integrity": "sha512-reo8Esw0p58liZwbUutC7meW24Xbn3EwNv91zReWKm2W4JPu+zfgJRn/F7aO0BFmvN+h2brA2M5lRvYqLq4kuA==", + "license": "MIT", + "dependencies": { + "@css-render/plugin-bem": "^0.15.14", + "@css-render/vue3-ssr": "^0.15.14", + "@types/lodash": "^4.17.20", + "@types/lodash-es": "^4.17.12", + "async-validator": "^4.2.5", + "css-render": "^0.15.14", + "csstype": "^3.1.3", + "date-fns": "^4.1.0", + "date-fns-tz": "^3.2.0", + "evtd": "^0.2.4", + "highlight.js": "^11.8.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "seemly": "^0.3.10", + "treemate": "^0.3.11", + "vdirs": "^0.1.8", + "vooks": "^0.2.12", + "vueuc": "^0.4.65" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.4.tgz", + "integrity": "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.4", + "@rollup/rollup-android-arm64": "4.60.4", + "@rollup/rollup-darwin-arm64": "4.60.4", + "@rollup/rollup-darwin-x64": "4.60.4", + "@rollup/rollup-freebsd-arm64": "4.60.4", + "@rollup/rollup-freebsd-x64": "4.60.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", + "@rollup/rollup-linux-arm-musleabihf": "4.60.4", + "@rollup/rollup-linux-arm64-gnu": "4.60.4", + "@rollup/rollup-linux-arm64-musl": "4.60.4", + "@rollup/rollup-linux-loong64-gnu": "4.60.4", + "@rollup/rollup-linux-loong64-musl": "4.60.4", + "@rollup/rollup-linux-ppc64-gnu": "4.60.4", + "@rollup/rollup-linux-ppc64-musl": "4.60.4", + "@rollup/rollup-linux-riscv64-gnu": "4.60.4", + "@rollup/rollup-linux-riscv64-musl": "4.60.4", + "@rollup/rollup-linux-s390x-gnu": "4.60.4", + "@rollup/rollup-linux-x64-gnu": "4.60.4", + "@rollup/rollup-linux-x64-musl": "4.60.4", + "@rollup/rollup-openbsd-x64": "4.60.4", + "@rollup/rollup-openharmony-arm64": "4.60.4", + "@rollup/rollup-win32-arm64-msvc": "4.60.4", + "@rollup/rollup-win32-ia32-msvc": "4.60.4", + "@rollup/rollup-win32-x64-gnu": "4.60.4", + "@rollup/rollup-win32-x64-msvc": "4.60.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/seemly": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.10.tgz", + "integrity": "sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/treemate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/treemate/-/treemate-0.3.11.tgz", + "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==", + "license": "MIT" + }, + "node_modules/vdirs": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.8.tgz", + "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", + "license": "MIT", + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/vite": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", + "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vooks": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz", + "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", + "license": "MIT", + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.34.tgz", + "integrity": "sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-sfc": "3.5.34", + "@vue/runtime-dom": "3.5.34", + "@vue/server-renderer": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vueuc": { + "version": "0.4.65", + "resolved": "https://registry.npmjs.org/vueuc/-/vueuc-0.4.65.tgz", + "integrity": "sha512-lXuMl+8gsBmruudfxnMF9HW4be8rFziylXFu1VHVNbLVhRTXXV4njvpRuJapD/8q+oFEMSfQMH16E/85VoWRyQ==", + "license": "MIT", + "dependencies": { + "@css-render/vue3-ssr": "^0.15.10", + "@juggle/resize-observer": "^3.3.1", + "css-render": "^0.15.10", + "evtd": "^0.2.4", + "seemly": "^0.3.6", + "vdirs": "^0.1.4", + "vooks": "^0.2.4" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..aa68c2b --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,25 @@ +{ + "name": "ai-shiliu-frontend", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "backend:build": "scripts\\backend-build.bat", + "release:prepare": "npm run build && npm run backend:build", + "tauri:dev": "tauri dev", + "tauri:build": "npm run release:prepare && tauri build" + }, + "dependencies": { + "@tauri-apps/api": "^2.8.0", + "naive-ui": "^2.43.1", + "vue": "^3.5.22" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.11.2", + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.1.5" + } +} diff --git a/frontend/scripts/backend-build.bat b/frontend/scripts/backend-build.bat new file mode 100644 index 0000000..6d247b7 --- /dev/null +++ b/frontend/scripts/backend-build.bat @@ -0,0 +1,49 @@ +@echo off +setlocal enabledelayedexpansion + +set "ROOT=%~dp0..\.." +for %%I in ("%ROOT%") do set "ROOT=%%~fI" +set "PYTHON=%ROOT%\.venv\Scripts\python.exe" + +if not exist "%PYTHON%" ( + echo Missing .venv\Scripts\python.exe + exit /b 1 +) + +"%PYTHON%" -m pip show rapidocr-onnxruntime >nul 2>nul +set "HAS_RAPIDOCR=%ERRORLEVEL%" +"%PYTHON%" -m pip show onnxruntime >nul 2>nul +set "HAS_ONNXRUNTIME=%ERRORLEVEL%" +if not "%HAS_RAPIDOCR%"=="0" goto install_ocr +if not "%HAS_ONNXRUNTIME%"=="0" goto install_ocr +goto after_install + +:install_ocr +"%PYTHON%" -m pip install -r "%ROOT%\requirements.txt" +if errorlevel 1 exit /b 1 + +:after_install +"%PYTHON%" -m PyInstaller --version >nul +if errorlevel 1 exit /b 1 + +set "RESOURCES=%ROOT%\frontend\src-tauri\resources" +set "BACKEND_OUT=%RESOURCES%\backend" +set "BUILD_ROOT=%ROOT%\.build\pyinstaller" +set "STALE_ROOT=%ROOT%\.build\stale-resources" + +if exist "%BACKEND_OUT%" ( + rmdir /s /q "%BACKEND_OUT%" 2>nul + if exist "%BACKEND_OUT%" ( + if not exist "%STALE_ROOT%" mkdir "%STALE_ROOT%" + set "STALE_NAME=backend-%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%" + set "STALE_NAME=!STALE_NAME: =0!" + move "%BACKEND_OUT%" "%STALE_ROOT%\!STALE_NAME!" >nul + ) +) + +if not exist "%RESOURCES%" mkdir "%RESOURCES%" + +"%PYTHON%" -m PyInstaller --noconfirm --clean --onedir --name backend --distpath "%RESOURCES%" --workpath "%BUILD_ROOT%\work" --specpath "%BUILD_ROOT%\spec" --paths "%ROOT%" --collect-all rapidocr_onnxruntime --collect-all onnxruntime --copy-metadata rapidocr-onnxruntime --copy-metadata onnxruntime --add-data "%ROOT%\app;app" "%ROOT%\backend_main.py" +if errorlevel 1 exit /b 1 + +exit /b 0 diff --git a/frontend/src-tauri/.gitignore b/frontend/src-tauri/.gitignore new file mode 100644 index 0000000..502406b --- /dev/null +++ b/frontend/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ +/gen/schemas diff --git a/frontend/src-tauri/Cargo.lock b/frontend/src-tauri/Cargo.lock new file mode 100644 index 0000000..99a34e1 --- /dev/null +++ b/frontend/src-tauri/Cargo.lock @@ -0,0 +1,4941 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + +[[package]] +name = "android_logger" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" +dependencies = [ + "android_log-sys", + "env_filter", + "log", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "log", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-log", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +dependencies = [ + "serde_core", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "borsh" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +dependencies = [ + "borsh-derive", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "byte-unit" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6d47a4e2961fb8721bcfc54feae6455f2f64e7054f9bc67e875f0e77f4c58d" +dependencies = [ + "rust_decimal", + "schemars 1.2.1", + "serde", + "utf8-width", +] + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.11.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.2.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.11.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.1", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dbus" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.117", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.11.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash 0.2.0", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.2+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "env_filter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fern" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" +dependencies = [ + "log", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.11.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "js-sys" +version = "0.3.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +dependencies = [ + "cfg-if", + "futures-util", + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.11.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +dependencies = [ + "libc", +] + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +dependencies = [ + "value-bag", +] + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae8844f63b5b118e334e205585b8c5c17b984121dbdb179d44aeb087ffad3cb" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.18", + "windows-sys 0.61.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.11.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.11.1", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.1", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plist" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092791278e026273c1b65bbdcfbba3a300f2994c896bd01ab01da613c29c46f1" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.11.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.11+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quick-xml" +version = "0.39.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.1", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rust_decimal" +version = "1.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c5108e3d4d903e21aac27f12ba5377b6b34f9f44b325e4894c7924169d06995" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand", + "rkyv", + "serde", + "serde_json", + "wasm-bindgen", +] + +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.11.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33f7f9e486ade65fcf1e45c440f9236c904f5c1002cdc7fc6ae582777345ce4" +dependencies = [ + "bitflags 2.11.1", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437404997acf375d85f1177afa7e11bb971f274ed6a7b83a2a3e339015f4cc28" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.18", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa1f9055fc23919a54e4e125052bed16ed04aef0487086e758fe01a67b451c7" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a0319528a025a38c4078e7dae2c446f4e63620ddb0659a643ede1cb38f90e9" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.117", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6cb4e3896c21d2f6da5b31251d2faea0153bba56ed0e970f918115dbee4924" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e126abc9e84e35cdfd01596140a73a1850cdb0df0a23acf0185776c30b469a6e" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "walkdir", +] + +[[package]] +name = "tauri-plugin-log" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7545bd67f070a4500432c826e2e0682146a1d6712aee22a2786490156b574d93" +dependencies = [ + "android_logger", + "byte-unit", + "fern", + "log", + "objc2", + "objc2-foundation", + "serde", + "serde_json", + "serde_repr", + "swift-rs", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48222d7116c8807eaa6fe2f372e023fae125084e61e6eca6d70b7961cdf129ef" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b83849ee63ecb27a8e8d0fe51915ca215076914aca43f96db1179f0f415f6cd9" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 1.1.2+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.2+spec-1.1.0", +] + +[[package]] +name = "tendril" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" +dependencies = [ + "new_debug_unreachable", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.52.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.3", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.11+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.3", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.3", +] + +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68d6fdd9f81c2819c9a8b0e0cd91660e7746a8e6ea2ba7c6b2b057985f6bcb51" +dependencies = [ + "bitflags 2.11.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.18", + "windows-sys 0.61.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1292c0d970b54115d14f2492fe0170adf21d68a1de108eebc51c1df4f346a091" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +dependencies = [ + "getrandom 0.4.2", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "value-bag" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.3+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +dependencies = [ + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.117", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.14.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.1", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.18", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.14.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.1", + "indexmap 2.14.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.14.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/frontend/src-tauri/Cargo.toml b/frontend/src-tauri/Cargo.toml new file mode 100644 index 0000000..b3cdfff --- /dev/null +++ b/frontend/src-tauri/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +edition = "2021" +rust-version = "1.77.2" + +[lib] +name = "app_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2.6.2", features = [] } + +[dependencies] +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +log = "0.4" +tauri = { version = "2.11.2", features = ["devtools"] } +tauri-plugin-log = "2" diff --git a/frontend/src-tauri/build.rs b/frontend/src-tauri/build.rs new file mode 100644 index 0000000..795b9b7 --- /dev/null +++ b/frontend/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/frontend/src-tauri/capabilities/default.json b/frontend/src-tauri/capabilities/default.json new file mode 100644 index 0000000..4005a7c --- /dev/null +++ b/frontend/src-tauri/capabilities/default.json @@ -0,0 +1,17 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "enables the default permissions", + "windows": [ + "main" + ], + "permissions": [ + "core:default", + "core:window:allow-close", + "core:window:allow-minimize", + "core:window:allow-maximize", + "core:window:allow-unmaximize", + "core:window:allow-is-maximized", + "core:window:allow-start-dragging" + ] +} diff --git a/frontend/src-tauri/icons/128x128.png b/frontend/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..77e7d2338e9d8ccffc731198dc584906627c903f GIT binary patch literal 11059 zcmV-3E6mi1P)zzX*Ni-(9iHR{LW;cmROrp_5H>=4eMq@}e z@mMv+3xjxp2XcrYFr32-Fg^G5T~)8@?f1Q^21J?ZYla@2`q9h`Om|nm@BhBz{~eE< z^^Nm|;p>xoiNi}U41nQl7y!f9FaU|ogfeq1Wpr_ zP+1a$I=@vuwOpS)y;7e)u|z+yE?`XzYE~782T4O_HoT%mY!H6y?x?bHbC>+q+IG(? z8@tqZLUAdKlK08Bpojwe4L|@e6zs-0QjMd|5iG?76HXg2r7R5a6l1FNbT=;dX~Q0;(he(R?qWoF)^u0w&0Z+ z=ow<$1qg&A4gdsgGKeH<5{i;Mroxzd{`lDS^G3w4@cFEAE&>aLZ4)kR*8vns8qVKA z7h?xFf*ceggFVkUM0#S%?qw~$KR>hG|J%kcxk(irAb{Di3duAaQ2+qrD<>_18kQ&= zUzMDG<>bh1C)Fh`h)2c5`3*T|tnCKT#Ju?tI2!*0a7zm;F0R~X{#Fhw? z1rWMGW%|_iz}=5*2>uA1$V8E9p;@p{gB;dP({R$nA;0Us2 z^co@^5wt6QJiF`h3nuk`6C8QXqQt}d$Uq&*il zhzX&n!a!Rb7VS9{1@G=Ixm%aaQ%C9Z|FAH$`PkanIaX3KQKf=bPzv$3fjCkagpZa^ ztW(GKUj6%pZ68dnw5IgHeIuBM0g%or5|lq9VDIVG(_+{EbZ*-+pF+zl0~Qe$I1j2m z<=tc0W~CknuzW1X`xgPA5(S}G`HlMfPYbO(w?6qP1T&hmVH41w@Iew$OJO&i5dP`s zkM8_AI(ZC2x@;G3pRip!%p(Mm5hB935)+BUe-`)W3J9lTHoHQt%Oif8q6?p$N+#i934qm61(-p-d}%uQqQ+7U9?azS=f3Wu7MC4 zkOm@AY*Ca!$Re^eqS32Mq3)#I9EzzsLs6+YVydk=CA~HiZB1exqA*ERm;(&JiW|}~ zlHq+g(F@pqfYOXn@e9Cm#a8UmmII5(iKD?-*C9g%EEu5UC_` zwl9<22MHg6YYS1e`Dc&C<&KT5p5^PiwAZ)xsH^uxrR_lRwkIi&h`{b4N@R2@93m%B z3Y77P0Bx99MrTed*XKq$6c0X#~<2IbbqNv z6-Z8*1HP_9fd@bb34~%^H$C$0tB&cs)6yj>k<5gTyOaw?1xW#rR)#!JFWu!`yt>Wv zawsnMLPikZ2ao|@K_nvCmnL?d0?-=pIut;G4|E7r%qs+F<;)u6tkXxuuR6Lau}}b@ zaI*wJNYT;hnj-v*XpG$TR>fscZSg%;>ai4fFY^-(0CeooOFq9oe&Kgd?s(ERh)puE zyD8@lcDw|FF`wV*f8fcjf%_V}m2H^*^#E6|IvG5|Tv-brpXVne<%c-m^WWDYvzP=+ zj$k;t(wKh9#Q4qgMnpb`K(HX}%Y=Z!d*x;XK={p9s%E^~s;&yEY(QDVf(8IC9wu`p zmRt3|ThRIexL+zbe0I9FmhXBIm^e_#E1Cm;e{g;9)=iztP8HlNbhe0750Dc#e_)y! z@0CJ2;DqYr^lOg}-#xV^emZCyo@7c_8}Q!+8o4(q@A=Y8)swrEBm&?P2P% zVSplof&~C_=wU;$zjj>sC$mRKE~gOZBaxE!&iB~L#y0;e-+aAt?y6RGZLwy{uHXkO z8|Ro10+E6s!F!1-TeVg1guMTILZyCsv7gqY7|L`sAN(#IS!PU$>T1)fkh;dlQ_A_* z0tHC~;Q~a#e$J>hj=f}J?`=#MvHU76&zgJTAnc{vi~exqvWnB%qC!_GfB``^X*~f=PsHr*+?l2`k@Rr$QQz6bf0?Z0V`ZW%vB>&9W~`Aa9QhtQ(kv!|^%LgAXW7PMCsq^Q-0O zz1!k@Ox7&fO2f0q`T{fssz!s?9^HE@!0i@p_*sffGC&CegU3qgs#0cQSgeWU!c)w})wkTeT5lG*=SK<>a0*{P%B zSD#p`&%h#=OhU^c2>@I$zea>BCrADhMfWiw6sKcr7*r44l#jC1th;mf$=fs&OZ25v;V!iJI1qp) zkmH6R{NSzf3k*YwVu;$GV~5($Hbr}SP4e8C)%q;Z0#-h?KtWN#=%jhT&%bbdKIGopOZ9v7RNBXVQZ5cGkJne(CD0uY)u zcFDVcy{7D%TTW_!j2S$K(4Q8tfiM<7T_3&it-YSNof5<&3;>Ag7@&JbjWKgVsXiNc zbwSo_6+eC~E_JNi<6ru2o9BfM9m*Tc5oK!_OTBD-9^<-Ib!zepR`>_{Dy5*gp4sMo zeBKEEV<(M@UTQ&VyRZBKr@i6x&aO>d+)!fN+7wn=G)P|M!^9N~03gpxOj{Jr85_G+ z@KV8wDDkx|o)?!kdl#UUyq3y6f{19ik+fZ_gCi@xbP3$(b!e=`}c!4&#I1p z8a{~X{PQ6r9iDLnljoT~GI81O-dFDdCR4P8BLn~_NNn5~8MKQhm6^x?-+LuL`{#E5 z1KWC)X5{O=An*W~03xJ{EuCVGfxMpsdj(U4AoYnOfCTFxe|>96=3^z^vYd;aBSP^o3BSP;l9t8;N6}A z;0-7M(s@(nWPXsBK+PkgQ45aN> znK+@;oN`PRojJA2o<1sIjzlnq4Y3pQ30Uf#k7{1b9msoQa&LVJtshseA7{B$%zc>w z%xdn5sGC-Y_Eit%1b~9^0dPn0?M|?D<{+jFg^qvQ6xehS6Cy+L3RY1?m6(Wh3O2Q} z1wpD&q(>Ji2%_fS8p2b%(g@`37!B@XTDOuUfnP! zQ8Q^_toEq$)nxCEnkDz1%ZTW@2bl{WpA@GeyL3`)(O0JR+^2Y`ANz+O?aYfhT%GKc zogpCL5s9gxd)JnJ@r50pXNzD*=3tLGU!ef6@yCUsO$a)y8a@=~&pR0*9PEfII~Ogf zo|vQp7Lt-&fKZ4fVUYY3B~b5FGLn?3J|Q-G`l-=zGp~wOPd?WSl-F=aO7RFqZ~yfV zqLC1&Hz*O?&SEDr61QagrkT-STr{cu7Qv7N>Xc|pyg2m3gbQPoFrcQbplVise@@#! ztGp#&d*p+n`vC;#7i6OeFy|rn=n{ReLtDDA*qmSk0Hi}`0`3R`Fe|)tbe*4$Lq9;4 zSx%%^VF7@MGLXDfN<^vUFHw6Z&AY01!YMZ-OGi(~>Psb2f7z0Z z+bCl@h&CVWIsNkV$Tu&V+T;DZm z!L4RV&1iv|f@mgep2`Q4fMT#EMN#5C%}Q@*6O$CTnlAmzC7tMTHT0OPr*_}X5+b_) zX_s!{^SRnLMd_yFx*l5BuD;e9liDFl$e5f#wGNSwu(d~C3of4R);bEL<1;Eah1&i9U5vQ^7GtX*1?|U0Uvp#!2^_PxDO(0Uk25g87wS(YUCKlK}K z`+0^MfMN0ql3gw*1Ez(WHd6$zAh>>5;Axkdtq2LQa-8n(0^H521bSg`B7+Zwya zo%C6v$1T|L76@25Snvlgf)elE#j^Xrq5&k&G3ENHf?`Rj3}aRw18p)WkRqQ|Gr825 zp;J-FrfLTx47?`@MMG(fsKJ0p0LQZw>Ev9qo`VknQ0GYGiZp3=&A9m1<^?w{HMKys zoQ#<024J!`ts757+H<*$F+pQ$UbL8#sT0N&TT?J*%(6F;w*e(AsYgg_SAz#jEMGoS zg7P2>AHqA+LJWlFU-zf(`q@`W$tZqUoA3IxHy+RaB(oJ6Dj<(XDRY)ND+=KwmtVGu zvwao9y;ve7h!+U3a9Z~Szpw1a;7|Yn7rtTHvPMFu-|%9%Zt6lAY&{4b??DmT=@G#xK?*;pR*W>{jF>4eLybpl-*0yY} z_D{cI2^W4clDY65!2^g?)zSh2^90IC7KuQfa{!yYzDrwytQyH}4KRNpF;g-dyVX^y z$hT$2J2O=U9n@H*%j@)8BNU@@m@<-TRTByq02rrPhR{0qi;F?+pOLxnA?wF%APQ8; z*8GyzyZ8ON<$wHoVB6b^E!B%GU`9MVrcW`|yuMvs9tz8wL@E2q8cqhuwy>d7dv$w{ zyi?2WwTOF9q}*fG;j{a4Bpo715PFkBn`LM1bPkRQz&Ia6y{;24{a(-blRoR({IrG7 z1rI)gt$Jl|=Z^PE)-U;Suxa%ZkTeGN!~+4eOtK(>80Pdb`}gFw;5}cN(e*zT6)m^@ zDr4J?Tkz2>fjhB0nQ&G*Qw1pq*oI!E(JBDI2xoF(KSG87ZBNQA`KW{#Fb#kt4p6&h ztbW$Q_M^}LDR}#~>+q$yEi7s&URknftY+o^es$EdKRdQ)%kn39X4YFIXDNJsVeB7N zZSwe*;O{rK`d*PWif!0NCa(cP(3xvj}DxetsrbGL`C!N04HWvCcf^GaP-~8=8#|IxHzbinR$xRBhJ4ia21&=UpSs&o z{pmQV*j4Qazk2z@mlkha_Bif(@Te$;e!>7=*j5Ib0EB4Uzh4);`ybo<56q}eo_S1# zKDRbtHTY%Q7dEBno`|$*O}n;qRY-do97sE;K!%z)J2;2kCnf;^^F}2vC917hdf)v4 zT-XvsFrC`#36lt##`-)ZA z^@cD=mn%e4qS;c!5aQ46@ICeHcHdKqXm8e#J017NidWcY+|{p>F$gH?FLJei7%%3Il1n*#ZX?QpKj$TRz(Y}u30F?+{r(}kpg*dmK>fcP@;uuSCke%A zEM)})0Nlwy&kEs&*!zHUC>b#Y!al37f(~c* z!$woQLixI9ZdN;+_u7g_8EA*E5H5G}nb}Zk)m}X%{Bs-w(_gzc?tYwPx~oT9vpS@{ z?o$}aS8G^a0FbJKh>V+gmCIxHlgwt8C2L6Ut|{L1>hD1HlYt8L3h5$l9{>jP-=5L^ zCqdoZZjB@ssT9r$>HxbWLm_j=$+|tSky&l9=2TmYZJO z;d#Wb*g`%VW957-IM(sSs~YB--r`cM+ZXy0D42d5$Q^HI)7n7Onx`PqL-NA#;d_E3 z0se*~s{02v?=kFu{ei8vfS3{= z+gfyIM?x|nRL$$;(3}C_sDCEJYbT$DPJe%19In0~DPr-q6~67XaYy#rCaa#n@BQDARU4|71Ag zZ+`Dd$nj^K&p%lEz!tGZQ@7%ykDcE&?X3SyRE$3j+r|#u{k(q|Oq0K>X?f`fFa5-~ zedP-_@>AGTkVRKf`YPW!p0+b7nHNutUwZS2U5^U%fSJJkZ!TUe_u%@XZ-sRM2&nv@ zHkKOzKmddqwpmg;$_P|WBABEjeH2E4_GgMu^0sb%RqkyI*@`9!*#dwI-{Pviea_YQ zc1@c9@3^ue2wKvkA6X>yOQIFy=S1g!?fKGC%O9$IbMYcZO`Fg38~_kts0X;Er2cIHJ=qSxZ)C*|~g%q5vg3mc2N z8s=VO_{zqNSbE>-3{n^T5SKie19z&K&<(r3E@%gDKB4oWS)-yCGab9%(mPZF!#+v0 zm1sigxOYwQ^?2yyK#jM}$unlINjHmYrnvUM?_9b7Y$33`-i{q_Vs{S_vfFu_bp)!p zW7ZY-pz!5*x8V$q5c~G1(NRPbl<3i;byF9#o&4DcMJM{qX&o?(w906eY=s)5PfMCqvHRCfNBlylzG(Zo%(s@I2a6f6AixxEW{n z8@cpzQTQBqd>yu&om`uo{hI|HOK+al@%MmYRv$0{EUnr-Oc044Tm1XRvLAu!e=*mt z;{i1RTyMgodMukd=6f% zOogr~3%~DcTJu7-CIFulRBitmqZ4OdFg|v}l*;4+WNAV0IPQgHa(oO{B*`92eQQ_n z(FfKBe+YJ89OxrvbMpbfd1655fc>vwJj?-xwrFEm@ z74>KEjAOPtm($m}kSHHJN3R$=Rc+h8fhk%>4k4=i2nhN+Gkbo$U_$sy{BQ`0U0#G` z%GSZoH)PFH8{53E|LD!q%hB%VscC5-O#o^D1?Tk?x#h5=9~&%)$w(V^R0>&@GXnr1 z($LGt&ayP0<`OzNv|}&|q!fg(<7N}?lxEmz?Dq7T7SS=EZ; zzv|}KE6*@3es+;G7;_JE0YIu#8L&#Ubf2W!MmTG@IhsT;gB1-dot#6OuL(ZP1d_uG z^irjZdw5y2nPY(|s{O`x&x)H~DW4P5nSs;A2W!fCKAb=_=4pR$$=&|BT#~B!^R)md zcuQ3LEPMG2NyD51NaEdbuNVjI2LY5;tmUlTKmLV)CdyP;%OKtSS1G82}!WBVKUx|tGF?syjgGIZ5_p^=|=0C|5&wiQV3h->x) zUij7Ol11CP#l0n(CEJWxhil4tZYBWzFz}uwBi6R>WamRJ0><6I8v2SyGi(oJS@;6T z=H>#VSWgSvs-anx>%`Z2djM6Sl(*x z@cb-QM2b^A@uV=FlJMgjif_MWNp-{HjsCxQWn1*fY`{sLf!6@;%0s@rF%1s@!NRB~ zSb@2E(WXLHRXSKuqIhIaYvTtM??3w;%UhIbuOP$nGs{~nR%~2yho^bnTej+xGc6Lq zU2VWKMg*;i0nM(WmQyv1|CQ<_>P<+yA6;McgGEcK>p|uJAYza>7IZLY+~JS)Z|esH=Qs4**uX4HQsiW1{VD$4>)**z1vus8s$VQw^N%}qZ|SJ+qfWm8atvsX zOgAA!K34Dy)eezNUx`||?TtT`t$ge@Ah8I^qC$vw_1eUqR<55SsFon(`$8U&8ItjS ztM}!9?eabH#%}MEt#K)d^9WGzDa}v_g3pr^$S@HDUUcgwQIEyIk@CBo`k|&=a+8s$ zn|uy?|G9feZYAIleyBqAia*_`#k+R4AAR00Em>6v(8KT^)`3nY_s<}QWGQ|b%~18) zr+-kk`pMgEEM0Vt2haFE_)rHhK66Is7bIg!@0xb)#nmBg$*MNbOFMeyT{!m5r`Q4> z4+C4h-~_)9$a$C+jys68oco=X@v^ZqfM2)z=mchN7RJD~Z>4ANE?%dXbwP%6ptoqm zY@?=OA|!~u8>^jiq3J0qLCv%eiSY7rG7|B%ZhEd{!%KJgS~stQ`~}HY_$em>=lzc< zrW1EZ~F@Y01G^x*nE(U?!A5;zC{m@{sDAj^$bjLD|xyO1Nzcc>1g0 zYdboS6n>va4>>3x#12jdUEi*JpgKp|NN#T6V~(>S?gVs`x+fGIK^g$FYLHKljXh!E z?gck2A!$?vGg%R}NZXcC|GZ-|&IxwQ$a32m?!akWWGp%nTo|UtxM1iBCdwJa%jwf-Nyf5K-R;|k$DfoY=tQn(3t3e}T^0)pIY<$0O6DtOzsy`jcBb~}sQhe~&+ zha^fyP6&@X@pGb?05(OE@^K%0S4&{#RlkH<0e3on#h)Qnrmw@xr14MCu4I)9F1B4#4WIaj&a8hFQ^m%Qk ze(86+&i`Ix>+Gw3p@u_^N~~Ll|C0;F7syL{xKoTtgusrKkMuOmxwhZDx~m2Bk`WC6 zg722U^Vm;uCeV;*4|7i{15?8r#YML=8HZbdiZ9d4$Igt`9d%B$deV7jacu)X=)y<} zO0@H;HF&k01~Gl*{i;GXs!t9(0GKZAXc zg{I;1dT=BTf|T?q9=O&U9W&!1Y#QyC??(_&oyMygPJm}qf76;*K~2g9vrU{36?+fu zj@h5Pt82pCFX8MX-T>nqFe~nRd<3}QEP%?ddiT-m0R)?wtjU5P z-%Hd@Io}9Wj3l<11_b^bivta#->>!zg@?>>GTXabz-S8)DK{*R7D639$4Ez$i!xc=lt{q_r{ zu!Eb4nnG;!ac2vPMgq<6En~>-NRoUwd;-*FIN~0>eAY4N^LKYnJ^Q<;-Q3o<{yqCr$+BY7&P>OW4VMlZ!j=vdzvx9ljhOBiqH`&3m%2@T}S(2GF)9Ac$L7=l(-L%ta zX>GlK_lBn+Qh@ZYrVN@%Ab4Uauvr+(dxIK~H;?x;oN^7{`RNJYnSACAN);Pk{7KQq zSN;Z>OPLgCbTc4_M{}16*2)*!@=|=vu~$NJrc%W7ef!VX~@5ayy%!@+U00DvUGED_{y==zq{;;Dm!lO8CqW{Krla;#s^3z*imz+e znwr-iyuwC*Fi!)Wh717s1q%iqGWGWCegjOwbqI<5hq3ny0ui+a_Sx6`12UH~>J>9aOghyH~Z1mhhMvp91x6r(FevXAB`PVB2D>_NY0r zaWfVXRilv6`#_2JB>6Nyq}(Co;?5#T=j?=(*Up75Vv!;cRt%yL+YXeMc1=6`rnWg( z{Vh^+)TyG8V0@f-KOM&(w);3$(nspveB^Rp)0*YB=2!AL;ChGwfVW=p@-6S)jjNdE z_s8m{o+6nEGwn`XC%i%d0b%4Vii|ww?C7|eU!=uVweWB4a-z2tk}Wo;WmD-tCp44X zFimoPcKHt6pwwg_bX&3v$Vz&IWX*&VyN)^U*7li~{~>z*`}9&Q@#A58>#HYi4#L&=HVa!K-f3S2Q#62=6~g} z$k-W|9B^b@hO8f+A;c*+38D>RJN5i{z_bO<+Fp3Nlg~Bh{yzGJMHy-{f-jiGSGbARS4h{hJfxxn{ zP^)e3qCa-kLui!@Td8AYvvV_;&B-UH_(H;21q|i5FIqcbR1}(X*p$fG^K|it`1rvda0^Mw#7yseIe4m&apD-5iN(3%YHBa5D&MAG?)A5B#-J-B->2ZEq~~e zlJ{TyBh`Eoai_@-CE*_q0PK?$q)}zho{eiEPyU!*HU1R6sJagF0mvcILKy4%al0O) z3d<9e{Ow!c8Ub;>w|U*$j<-KF9KHeqfRi`^uUwJCZK2|AZ~YdmgA88zJX=!vF|&fx zd3N}Lz$siX_^MBaM3r6n{Ayj768t!!m+Wyl-V{5>{_$TA8LGp z2FoYtr6U^fyaCK4IC)6eRi zF!$eM)f3OQ6tBojuCUh5IaY=+$LY&fJ1}0{=?W4lWo$KLvLaxGkALsRe-t;qcAt0m zhF6hT0zkMu1xJS93ljhb0s%=sGl6`MpjV8U5F2~KmC+GLU!)h;9*cE&C^r-g_WGsb z`VUzb*VAy%T6P4!Px6AuOS&j4|KC!m=A@-e&*Fj!GfeWhclCs+lHTrmUQ-xMU+-OcvC)y>>29AT>dP?tO;?$V`v`L~KD+JcAAnH5aK1XaCN>)5e% z-;Pi5J!nNz&VfV!3hrPjM;oBP;Q?AjV($3yeeGqRplfIV;1FQoRXn(B1&tguqX`p6 zEM@o^hHVG@KS|k$R2$hRN#a8u00+Ur;okdhK_N%}QG{7v1xL9KU&8uXd<_F& t_!_yHaYoC0qai002ovPDHLkV1lYM{fQnDN7gR)+58zL}Z&^usl0%joX7*?D*ezrBQ|0k8dN;)S8{@E|ULa{8(!e?AorrBb$>2NT))N2#P21EMM9vnQJ{=#A zJd=K_ij$oFCD0gN6yAL(vsRKo)cq?GaUzf?g@n&rEn=VKxOniyg(vxJ@}Sz#o@&T# zvys<@2mUKyF#KZ8Okz!4ZFL;z{LGA;k9ugF;mxpNqqJ-gz%2w4%lguK(r z9HC1ohxm2{<8Q7W-hT>JY}qT7ER}J}WnWY>!%u6;mQ_UuvyS6n#n$QyHOFjSm zC(L!@?rz@Vr|0FOv5DzlA|UVKZu;owm&(OsDqAM%nQy2BhuRE~A*^NhbpG!t?unCg z10EREh8ku?La!QRR5@f~=t3ym=BMt0ZL6)D$+@%u|OW(XywxrHtT#veg+amcwtw_XEvzn{6?q0mJTeoNsJo^P0h zGwcBuzTbTyUVeg2Q?GXtIMnMdV)>ty?oVjocFpTfh0_8n33cnlbrVpx`P zZgG9Up0bBQV(+c4;^j4G&b$wo$9@a|eh)90Q(<5E*vD)j2?Ib{|9qb$x7VSSmLEPd z&-%17U)F360k28CZ*8=*>zt*ldJfd@<<=lnDcmB`zW)Tk=>y=TU@a$h=(7~(!6Kc{ ze`AMh6t6Kpt$c*GXO9%cIm@{W<^BKuIWhtO4wdhknB2|SFgVA=j~FZp(VL-hd6v8jsP9+bUw%1gZWDVuvW)%y1sy1o z@F8SA^obA%3t;(&Ln342VpF}+L~X$&?IOqyIQNhpWz|H2EMbQoehr0SeJS;Z(flC8jD#qC?r?s;q$P6Y`a?@`G*W5=~E} z#vs?VpF4T(!?hR0&N=M`bO=ABzV(i*XZn9k?J>QoBBv5k+YRCu@;{!zi5a{P7J`3L zX>3wUY2>kmirl4)yy%EJ{HoR{n1ymC+@h2#D?cb7ow|3S`p1M7{A^Fe!fk5zLo{=) z7zHQzf5K)4F*fOo&hiZ7q=%!JTQGx1kv=_UZRGk4HoUKtMkEiF?sf?gizWArzpZ3v zj?}C_C|WnpUQV15xTBuhvHAXC604az#FPR6z+VqIyYiuQOvX6Yn!qm7kShyCMgMu> z?mrz%fkDJH;7zE&M?}J@N{Z(rb}Eb7bR`j+HuOyTF7|O`gdJf3pw|xujtv!{njt6z+CZugoN znS%`yXQ_Y6y=f>rof@>2p6oa4<1KnP#@5*$f$^e?D*I#1@Bc)43z(o;SYBO3cRwVP z>vKBTyAkB6g4m4XB)gm|lN+uG*1w4-?$-ml1HQY6+NAfGlx2yl%D&7>d_^_u+3-S`5r4ezYdt31!vLFW;PD*xsm7wAtv*HTE-X z_$Yugn%P-%j{GxJXhE3y45?C3*nIUgZ2*jyYz2((-l--2DNG<}1LBT|H22d1#)K*LBa0G*Qr9lSO z=?f2V=2)dXZxWL5+Ju9*MG~&O_v63xKLeaI-*U&mF7dJ-bBbU;L0zR#I0{*6R6h=z zdAnJ+P_AEYwO%*$fB@m0qI(L_`PI~8ppUl8*f9f!mOt?M27~?S_Kz|BmD-alSyR%z zSdxLtFGRE8)B7f>ZVWp5)Zod!p?F1-Qm8TIKu4q6JR(z)K`;!QXI!HyO;S)g;cDh* zeH2B`tb4i*1wO$dDQ0^vrJ!oG(@c1ve|_~k21@3_cde^mvUIk!{710zZ=IGyknZdK(5Mdkg1mqTgl zkS@AYl@*pc1A?}K5YD=T^Gb1@0$r3s&5tTUdaD#$`PO+BFYf2!J%jy2Ljfh~yseE~S|sr?#6%U(G)YGw9*yxuNq;TKHq6Qwr~s&z zAHzrMoHGX@E$i&D)h-G(=sJr6()?yAaYgrT-D$HAt(|4OC+3LbqddDiq+IKL-s;nNG46GOJ(C2 zQq&GQLhB<{O zq&bMb6PCI9lx{sxETowHekD%I>`w^gTsi{Bzm0>@4?GLS8GUy-v1{L7M{snb6u9AE z%cAOaHl8Yf_TGjr}<|E^=Gr?p<1N#nT|{Kw+vyb`*CfHfA3{xwfuI* zU}wF_5e%q5STDt-P*R+=Xh)BF8UortRmD)#AC`#?_4z*l0pv)-)%UlJ5lC(Ot7RVc z^PH;FJydyER~HEW!X-c8ML)$hW`wT7{od=kinyPTXh_VbpDx^UG>`;fC;om!FrwWw z<1gLrYjpqxJw$goHC+a`)O~4vi*Kr?%y=^YKGyWiht+yjoAcTVj9Na{31PeeBApzK z{$*3xpMUj(BoBmHlds67^A%C7?Q?JCi=ip#l~O|5YYwU)PrB2TRU2ZnL0&QEqCvAE zZ@mr}HLFs=A!H~CMq06i!ACu38_RE&_dhlUWXd1 zOF8d*OozY6dx8#3j%dM_on>&Od-x+fq8U3WB`_E_F*{9uq>rl^DKj6H?E+XI^bzLQ zQf?}h%Qj5=O&8A8Xh+T84bHg?V#nWqW>O=<06gosm9)JK??L@o*YC_3o9`y(ShX=q zqkWhcF4in|EDqQ2U>8mj&~oS+hFOgu0egZVJ`N;im-^oxR&cT8?L>gPFcmA1F(~8c zgYQC4F5{n!gH5q0bUJzP^XMV|RiDl>UQY*gRFb1z5$9J#z+R6QY@!ENmU7H_ub=UY z$pSN41vCh;y+qeDhJAS0R840j#z0HU?Kw(dv=tc%KG`s(hgkN-dyN9ohX7`N5n;-L z>oMJ9s;X77T&}&QA6~ayAoX!)=%UKBcxKSW=Jn6}^RWGBrJl3vml$}!?M^JElWFFs zP%7%y3gP6GMRX^HQAGc7Su#u)<2xwyO%ZIVcOZoOoe8y0c+{JLeKUM;!x^Oi!QQami)h|Qzr5uF*y~_>BhEG&twi0I4rHGRR6VTt)_ zkGJinY&>+s?d*ngZs~hsl<-i+ z8!5~`3nA~=Ul{CJFMI7}=l}r?Ka@e99KYtu{-OJ0bW|G#%YfdC?=`3%+b)&mNO8d|@iI-RMfL(U84Li|2&!$ye9%q`^I>p3!+}&X zUs=$!o-WhXirYQ-=HvQ&ylk*>PbwgtUJ2aR=b^lQ82SjS%<q8S4AZaj5(V#sgJ-DY*P~D$cBSpeUb*r|Uq#k=Ny}_6hgL zxGkmm>%-VxF#pyq~uz#$nrk!QU#KDL`6oYPJk zN5{|A&NqxpeA3U~FlP)>uRYY50s0X>`bYw|V|L3B3AtE3{mf9>J&hxDi3frQ68>IV zArhMXk6e`h7`21N7Yryb6dY{EkUNJkD5>>Cg;gf^dNZgSy92^V!E(3C+Mvj_%;)C?8A-P5(ENL;sbI|4o*vIdsyL%cJJd@< z<#i0Y?x39O=2kZgx{tvX!MCl}fw>1F+U6$ex)&MlhB<{j)>~*8D#ynHr}oOuWN2jE z`H)_pc=Qinv12m>%`La@ZTzG2FITCgp#gs&)UxjJz*~R=+)_aww`a?4Ve8ymWR$90X)etl z4?ukv$}7^VdLFe0x&n`0n4i-x62FN^1R9XUgE23NX}U>7gw@@Q`6S!yq9Ffym?<1J zEG`|Ed~8~MQKb;51?p^HPe0K-G=YE9&@YA_Ky`#|j^=MPLD zX5Q1=mZpnB18{LjNg?bsgUTQr(5UCt7y@JHHP@+&BkvbHga?tR_S*zk4(>^}R3m(X zf`4KgZ|#@*ofDZ zJ}yfWd0VmI!SK5&7*SNJ5Aa{@k-}VNIny^k23{SbLLD99C#@?CXj&)KUQ$XEO?#;Z znYFo_(q;5-O$W-!>gFW25f>DeKPDLl@u7t8Ts66Zmtv;9-lo~kyOhqy3$q&m!O^Dp zLKgJ*EF_ZU;eBm6dCM+%t5p|)c^?H!Y5gfX&Jm5T+e()Mgm;eV+*6e}WBk1c0u`r2 ze$b%<`T+}cJ;UCG&l@J!&IkYC-0aXdgMJlK?W?ybl&G5vn|-Sn5*AKs;Meq(q3!f^ zKQA&6Y=vN0%t`@`luKNqBg8|h(@lV0n{f28_KI#38|c=H6zPtz7{*kz4AGS)Gn%e@ewnHU8;?T51n z)R_VY2X(CzxZ128N4V2|XjEq=x8Id9tLrZc4llA*RDwd5HQf-b2?cg5gc2q!?VOU@ zL{H2czPJy01+1rZ9HQZeG5Z}t!2y(hd?xJlcxdWIVXZn1w6s-fmuWIeW@kDG+;8bF z2V>i^&-b&6e8Dw+rVTdkTHPkQ4MP7H?&4PT`*}~MDBUG;&9pG9Z0uxO37-N@ zAG%ShGo@wIu~>_v;)T^=usMbtGTqmkc+x;ekblH!jF{^zYppx@YvV!OPh=pE@ zj+45C!ffT?&sC{zBNs^&k^P>hN)>*&X!mwBA7yYxe?9Ed*fz})kh3!y9mSpR z4`f|p*k|0QJ-@Q9;hT|7%M9(O1~xom9wB`F*4_-B&n2=sGqm6?f*&xeg!QbgX#N-% zHqgm@e>!9AN$cQ63(c{lP0bl!UE)nc;>ubC^0h+Z?sdNJHZZyqFg(&cLC3XWhc6l# zyZF_CnjI}A^lg@0&?8}BBQJiBf|KY$mo0jpE`hY=mtFz?<*fw=RrPW1)WUY@n*W=BI5LoIb38(?Fr6!=mW6We2D z@_7`w6|tq3<1>PfrL^L&45vdX^!b-rlJCF#RK@rBe3GFz3hxlqS)tG^9XtcBV{KFkj9of5YAu>*XUO<6$O?^VKc2NREQS zg}9$m-4~gu)IfU;coG{Jy6%JE)0D+QQDHqFVr9kfJZ>4vVB*=OnN>8C#^#^i7cK10qn0K96-q6V z)YI10OU2z@M_bV%$I#dF>4#`e5dkYHlq!AY!&^qtu*?XNgr;Qw z)7>^jf(7hhS1CTQ`H^8KE!Fuu|t4jLo>19~FnK}$j& z`z6Uq=X{AIIdjIhpSZagk?O^f zX3lc0?D!H@3;d!~KXavjutBSd&a-e%J!x-0XlUupFGS+K7_o~Q&`r`*b%~Aitu6Ik zxiidDu|mHKAA=IJ5)F{gKf%m?lZ|wKwEfuK1n#xD6K`8XrDdTh?1GH``|cgw_?PSq z&hh&szywwd&~lJ%GXK@wZJA6EY0zHCv;afjfDC7j@WcgGTOC^dNzU~Mov_UI;M@M}*Q5{XfQ`|}J#W$4o~D+-84 zohrmXAoD8ea4w-Sgi(bLAqs%59>tCXm-`lZ96|&7J5}fp>(5g&d&>O&&HIWk`X&-2 zMhNm9ps^?^F>Lz9127{;H~@h04iF7A4~;H>G|leUL4N$7W9AK>d_}WMm;hDhM8%)g zW-HCHi>7u4Q7zW@vxTS=2KIrEl3W?hW`uw04S2@&A?@{sns6}3+wuD3t3rSPtQJp0 zkeM^{CY!@`;G$4dCN^V12gs@7V`$?CEC9kL2><7jy+&rbz(}yISReH`^lFe*y?B&#Rr< z%T%(k=YQv6XbJef?kgUP%0w5Ee}|%>`MXv-+yMZ{fBBCaVG!T>!?p?f}r5R zHRYAyeJp$EKO)~VmaeDs1FspjgZSTXNW8B_wVN4B>|E24;U?U;QvRliC?DGp>$0Yx z7r6oeB`W@CU;MkxRvyJtNK({5I5y?gLmlD4gGkj`^|GGB7h7{LdCoK&si*=7&nXm_ zWhFl<&tHrcPp#?%pwn=&wGRplRO_|}zKB5ql8?4ABWtSZn?Bvx_FsylL5Ibc6LpA< zfgHik6v567Z_>5j*y_(+@Xme_zJ3zcTyfmo`L{TH(Sz>)>()Fl4O5^-g|o9K=fxy0 z@;hX|IT`*46CZ!#2_$Yds_+FF%r5WhGwO~9=x35u~PLh6C(&|)bGsO~N zU*ZzscX1tY<@?M%Jh8FE&_9k2LksrN%XiBeJ*+^riy{~~?gL`1j)XHcqvaGxKBFDz zYf@582AUbkq&gug1s9Fd9W(Cyn6Io>%xRE}F;jk~RI!Cc- z_jD9D1s!Bu3lkWT7)}1Qc#ER; ztu;>D5PjbLTu7!`(_Jq?e2&ZByC@78c%7;OLO~uYiK?+XMQQmo^BBQM7>J*A;yr7} z;oXbbwC>Av>$x}Rs2w3lhaN=tXtcW3{ymJ@U*(LL>@MYCK>T85E%s{pVzcmZM!@Q%!n+qKLy{Ho1L|A#gG!}<1oW%bgvzC9?+ zQPw>5{i&cUxUCT;#>CiwMwqVQfEuE4o*&G!QOxQ=G5Q#Q1OL?o=|23P!{Incg7l(9 zymkX8`3;g!Dq+`t@VA@Y&*7u6UhXpYWkv&>byf7QBwV2b6ZQA?;NDLo4w}MGt%2UI z);AL5feI>#dIm&T(#+AA0o|h%5`nz-jd*Y73H{W^RF2u|{js#-PsyE=>#yFFC;5$c z#IbmQfc88#geOAa-BX6;r`)-=f)k$ajwp!NCEZ+Ej>f_J3?jJc3jyZIVAuk+I^XyT zGaYasZph;Yp>ugVbv2)$(9pOdmcUFn{D_w2FI9RnC1%GwFA(+B4?PWhty0)x=dNK) z3BIR6f6|n*C1S@Jrb$f*H>O7>7DUBt7%pN$;Db#;>8EY8eX|*`-VrAE-#V^g=qI55nJ3 z(U&l0)Zxx73V`^WJEd6fx{xvfPzw`E3LdxM_vYEh)M9MNy3^Tr?4taYXTtEN1 zysE*Oljs)1WZlje_NSz+UZwl}B*c(}PpQg;aq5W(rlCymNoq0M;-@IHdZw<2U;f9? zYK3gxN&DyruRcsX&AE-(#glOCrPZvZk87SPK!OAiaN$t0eOXOO53d~uMmWDZVy?KT z+wepx=`_ku<>dCOKgjs$zo#6o$(h0Zpy3V?@PRI!BiSqx@;VzrW7lY1{!ri1^71fq zR`RUw*{YiDyBY|A!RUvAz;9Vv%S1(5p0A*#K<>{Zt<$dXei5-j@>6^$U&&TTbWodC z%Jl@=*j)IGCq9|A5sOo!`X?G(EkE;1QtKBCc~5`(%fvr<=zXms7kJo(P{3BT$mYl- zOw3j=)pTdsdwrx?gt*u09R`2tjC}ITIq>m-M$U+jT+fmagS0jtG-78y8u+@d%(Xla zsfy@@Kpk7RUS7$cn8+njGC|$CWPR1!EI1b8fgei@%wM=SN}R&a@@X8)#5CswwN+$ zYUUXTa^~jM;gus}fk%-CX(qIb{dC$IywxloA?i1)H=AiIN$~sSGE{_Qt^dG<uP(*q23*Pm`lnQs;h@5l{JJH&m71u;sD zJrnn`$8pVeTT`Qf_kC~A`$Ctas8F?Z8yi9H_NS3R>guuHMM5WQD%JcmHzNxfyJ)Uu ztF!tbw4Dr$5*4kk9!Bhq4j|&q=}bHWLw~T^8V>xbVdt!(It23qV^Vp2i_c>;fpfhn zShibUe547iOI0JqR&}+_E6kOVN%OCF;0_8PI{m=5)3vu%x5+`cs973(L=5doTTyEx z+WBem=a@us0>U?0PDfxwln{;@eH^ooz~;T1OSUu?d{_OV5{Ax&hp4Sf_7`WK?2Zu< z=!+&q2d-MdQ!l~pHMRyPg-^VUm&-=2VO5kex{0*9hN?fCN()lC&}~V+3_$>-N#Nm` z4*SW=j0&VNU4?-+6XnWKl9oO-Tr$bm0<3Lm0p0D*|+;uW61!>KmA{7nIPYHt3K|4aNf?( z@Gd#JiJfcyN`P>=1-TOBaZsm!UK;g_ixP$+r&5Y5o|QIaZ8sy?@D8Qy(HD-l{p+IF9@wTdQgos){$_q26h9>JC_2gd zN6_E&&88q;$Dkf8E}#>+D%=TSd+u|10i1Di7K5fgUswTB2GXHN{J+2B+v?r2ULFN1 zR-CR@>H;aMDZN{T)EmIP7fY(UJPa=})Pd-I$@1AF@-tgFNnyP-wuPq)vWA1ILU$(b zL)^|n3_l6w0RT78GjP#kagk7Z+>#vmmYXcgZILdJJYDDgl1Kw-?DwZcU}Uu2K3g-p z+aJLm!&6}Qv{3tLE+q#To}NG{Io95c~)TP}br8Z9dUJGL(B_5IIa@ zA_1#r=X0NBKGsUK6@6OdR?HnggdOqxmM;#XbZN@V{hcJ3(NR($^3Vt&6sTwR7XzY; znI!*P4Nimr`engRUFHW%uG7iv5hf}9p9sDF@=-@`FDtg4kWD%Egk8^fXxdsr*H4|T zb&|a87i`m{#5rfAl#jzqyD)f?E$rSAS+LPA{GxR6R>l?lIH{=5kOaJC&*+N@>n*U9N!>v&8TyrqK_ zcCQ>5^bHW8s2F@m!|nuzTWi4~{rcUgyM$=}C@}4CGq*cInzUbJ1!xNs;0kb#F0_f0 z{Ve27(CXJcPY#FDN&(0Fes;Cu39*Nhgeyp51Edb)GGd&Uu}_Xo&``q3-)WfuP8u3#*y=$e1)7HpM8f8GtIcJtkzLf8d154&sKv%E z8S%2*#CL+@;3#quYfnGTB`wf>rh#P!l;O*=Z{A0e%yo!JqcxHt9Q|lu;q6=!H3UC3 z23f9R)u9qmZp@9Iod(Djmt8UqqUdd{zhMrqC>oYEd+dKxQL)6huKWO%3c6r8lD>MO zZU6xQgw+<_DqGunI-PG=ZKv0L)r`v1%_@ISXE=d|O8|_awiS|%TqAVopWl+Cf5(=G zwqsF}XO>UnHCSgfMF*^>38k%G$qD^Mdm0o~&6i0sLQ70RgNDQ5K(8X$d!~L^%htR8vXgX_I%-j0hoNP)t0W^s4OD5N#tVZ< z(2nHi+IYqmKB5&fG5gm!aajoZ{ybZ4KG=w57bi9Hc@SldPTi8jVc#0V(#+fMy zUxkAjY?%$-qDcH*RtkW@_ZSx z?jawA=sV8~H_X%kDKkWRlT zE&8vUT*Jo=_;38xFt^$vc|r973BDWhlIPzpb?z(PyJp+pB)-I+ji=UW$%rl|2=?QS zkHHbgPXOnurzCrus!#B|D(O8Vw*4_%{!Q(M6Zk2yQB9S+TYGP#}zWZg@{GLpIBfm1klc7zEcn$J77F3E- zhC)mq3P#0yqauEf_^)F#QbP~);<{ezPz*L^s~VSZ`-6G#Sxw{V5(m;Ev7#g5R2 zJ|#F8BPrtm;=SZ)W~hO5emBlrOn_wh`(8kmzZzJVs%?97ATYPJKdD%Wa26gXZ5QNj z&jwQGKYyfr&S1+h;N56&F5ej3jhrNLswl49i=lghMt%tX7A6Izr7Es>NKI#NTlgD^ zwVGY)GW5W($_POHL1F5Xd*&Sdz3f)@B;dJI9a!f=AQjF^60y8#-4+--r^vOW*B}&u zAljMvf&thQAXGISBZwUwd7dhHVLk+Yz21F^PQ8|&aMlK``{y72PJQXWzxnx@NnIl~ z&2VO*%}g2p+99-?`vZWmmQ5kZlGC;h0+nqw!Z7S>RCl?*>RQ{WW$%a5WPT zDk#3{`U!f`H-Bs4ybF!>E9CiaP+zaR(}^F}`4YS2=sRr8u(#)beY1|8G%k04pxwbl z{OXO6byB4u0O0jjEb2&s-y(*C&HAG}sy$6F1yVd#_jIj8-5qjc)&j0vIyoBND}3nV z(&T@nwrj`@6+d@LVa{Dv>^A10Bp;!&ZvaDcPuNi*a` zyh-ZbS4lL-R-5EKKEk@HN##w2+hK18;Z58@z5?|w}>JEN}7 zS5GZSwA1!}`9_i~bY+<8RPS?cYVr5U;#tt`crY+a6yL$H_28BSD-EJ{5r@ac^ERFO zMz7uywmKqT5Z77_xfnsf=$Y#zuCo4CADwg@sR0$=&^yObjq!B7#P*qk44A-$Od7;+ zY6TMV{Oi6M*CwPpPE2a+yHIu`BtV;ibUBPY*8zpwYjv)r40%F5%=mL$5f_hXc?xLT zP7kyy>ZTkffS7b`Q-%EpVv*hbhjt^!Yx8m%Kxg1I8n+$du98(}^52^n^Wzsd0HRv| zzi~EfY}g;wQJVQ0^h^ACyVt8lsLuJS>L?oPSND~bMNk` z)~pI!z4#3Gt&jxyxUB(sEqn$OAJ?6cE#q{JOw=9+YjaS?qH|u3PL==xddSr6&~H3e z4~SA=ah`em+l=Y5%B~lelX!S%QRC5x3P%3i-!FCc{y5l?m7Y?wk2klaC}Oy2w7Nly z^w?@NyjQ_hhN+4wFs5d`kcA`J$+)+&Tu(LAO%)H}k>co3fP9UkcB*`{P`B~moY@o3 z48NMK2jT|~>V1C?{#_(o`)m9o!FZ_0=jO!ldg}CVsiEN;7jV&kT{9$$W=p>c{Y|Nt zE2g$WEb}gf!UDEMmIp%18ytU{KAg3*n#>65pDjt|R(f5n(##Rjrdb@rZ(>|VKyJ#< zUgo?xkGMv7xosI@zIW*v^^fAu-;EU) zSt_H5axpLfXP|=5+lk{UfFU#tzxvQ)i2}`Ugh{D*#cw0fXOUv^*>=3n;(dmFd zbb!M0NGNvrS~<#>ClUVw-2-_()rE z2MXh57hlhC(_VDFCuV7zae>F{sZHu_VO&3iLA>}bvL+vUP&7l#QTq`_S*p!Vly36h zB0CQ6lhgK?6yX4&3BjdBzGe@sC5C+7aokA%SmJT&@?e4~;37Hr2Ukg>&So%weT3}l zaRmfRkSKyUAM0!~6@8r3JPYZDM~m;@;Q+|i%#k~&FbI>v3?u^zk!jP1q1_aRa^`C} zQcuCg+g>!*dc_=xrxz8b$$Xm6k(8Dwjcc;FpktEBiJR{LT>l+yD}BPW z)#K242|Saq!rzPW84AqvXUv~3+4fNDz=xJNQ`20*IYP&=12!Vs2`2|#CI6T+>7Pqr zMS7iBtwsAuIx6V%|9Jc0f{uYOc!djy!!^iDEp-W%$hwA99x?e#l%NCbJ zg`X*h{r4DAB>VwJL@lyT#RJ93%P>kUQqk46Oc!hJp?i)0+IJqQuo!I79+Gjb#)qwq z3C_q=R$aw4xRm4I%E_?MTs}du!z4majzfjd99N3CasI)ZLl`x?S=8aL&simk&j?1G%i}%C(u31RR zIf_@IYLrZh+ki_@0hMAfDvFi6O@bq80&eXO3FmL3X+{~za=+b*99LtG~=e ze2aa?ijLFapykt8xveAkIHj%@m}|)+MGNCB<&sWhx4J99d3FBP;7b9R_A0jGx3`?T zZoCzeA>sbgaZkktBgmd}f>hyC{DXQdcey)pXs1Ul7kf_^Lz6KbyhSsr-wV*iEZwp* zM_Lly)<4|`MN4u6O?~!vtOR43Y6`FN$4gB@b%3`NXg<{;js!wrw{>AR=liQZ`952xpX}cZ(7Tc0- z+s+;(QhF+q{6Yd3lNR<6i|t>a9co+Z1tr_DN&_S6S;KV%I&Pr?UvPi3R)@>-tf6oN zA<@KM;e~4cX!uV8CpWm8H*(=SBU$Ezb>BjlZfA$f)jZF3vyD3L(YmtxO)R1qq;Gkw zaDa16DMg-Sf>Wigo5=HTCUFid>OX_Bu$E(jCUD^q8H+ey z#;T=Z(%n9r0{?QqYdBG`9ncRgoeD`Zl)5Ytx>*Fs`*Q;v%MVnN7VSP0By0T&_t)xb zDm%LckS6(XqA*F~w7|as0DU}UGx*I2n-k=(%OefZ_0DpCBC#v7r;ItVQRv4ew6IJu zEmrM2A&`*!pzV8`9=RVS_i4sxuYK0~?H4FtkiYWIjTd1K#x}pjV6CW<7$v13IKJA4 z0|wC@k5di^vaj)2R(w6wrq}bln*U8LUlq9hCL;ZwK)Uk64nQ2)ih9&-lxI%0K}i?I&g;JR zO(XXeDo#}iBwzsx?7Ip+@IDTFf@FDuYe~8!()Sv%0+CUN!<){BBSQWmf~jQcss-9X z=~CE6&hn!yGf_kZLjF&GJ1PHz;5%lje!K^Ymy6N~-V2jEzF>&`r^T=wd+xCW6}gOs z?xPi&C52H%Wplw|N1&Nid0y#pWkM#3yW^_-AGk&Em0Et2-x~`ikSbC^B!N8vAynCk zP|3>v?B+{U9zx5vOLff97g3zLt>S-m4TRAkx0O!x9+ItVG+cIjPKJrA@{%8$V4JzDR~r}E+Jt@t=EHAJZ@_Q z55f7z@!6Tg5?~;XJRfsZNwDUwd3xKgoDHjp5AuvbmG8*cJ>5{MnXsZI##Lkq{8u`g z8LyMrJ~5lC?jgii6Uycj6C#?}6M9F12XXd*eqweUHu&c{=F1y;bJ_eyd_0$FO$H4i zJF7y6-5gzZ+IXW>ygQyk{DhmdHbM9Q>*cJ!n*85CKDwoOgUA?y(jg%rH3f#!JvyWW zr9_Y(-7%DKgoK22NeTmz?hr;eI;3;JfWc?qf8u-paQ}Fp^E&4~&+|Ih^?W?gszkh2 zZ6yI${HTX=qV>kwwQU3hT+zdyw&fXk8v=5FmL3c&1$X%fMGStw0qLWi7kduc{2NUq zRMToUE+i3^(0lTbZK1iluFy-O-B#s`j@eR$T4@Jra3fEFr{N=I0KGk?500-Kh$A>q zq|X}11IskhOYV!!hP|#L58vQs+{}q?Qt&HrKTwR|PGx`sH_CY3ZtCW+gHt(uf&ZY! z&8@MsY$_mAvK9K^XkchyeOxr0ZY1p(XWG=DTGsJB-Ow>gN(IjeQWLmoM7!nEp~pLT##2x?=ob;8Rx)_u%?PWBv= z+2zmdnvn*US^C~n>@~kbdaL=qf^DhpsiQ_rtUiC&SUy{Z|3J?EXW*At5n+Rhd9xy{ zbL*|&*J!GII)T(?uQi)2WfZRq3%{|3e%Q94{=<|Y5G6EA)yHs~t+WWc*++;(#2 zzVj4)=iTn)o^ck&CkA-Px&GXKZ&W}FlDjW<*m}AVmAl7E>HcqY*?v(^uq$pBr!%)j8u^fqg@AF|5WVkCTc4YW8NGIxUR6s=U}iN0d@9;# zu2XX3hu%k?XwjXUVls6xqBLx%Xk9+2P!2Te^n0$P{@eB%z%rPgM9#B-i(&!FrczX{w#`HAa9T zSV+Sz9~m^3HKUuMrA#BRDrjt~S%g02Gmyr;EB6`H{1$*ZPq7O3_HBAjzHu<59!WKz zp3%~KJF=@BfU3?&zkSBz_2_ScE(HL*%wJ#hP$x%-u~C@Y9sy2U3LQ}XXmT8>#0)c0 zH>-}W8e8e-gG)0l4HuP*$d>74?r0&}1B|ICNL8!m?3^){#RwURwQj*zh#8x9ZV+H2 zQsP}itmdY(1+4)>tdlR-!Avn{y5a*QiW<(}{g>PTm8wLffEy>IxtnoceyUGM&zU}& z@-{#*GMS|o-+-G5scf9?otIwPcf|;byjK>7Kl76m^PJ$_kLz_YnT;K6XS%Bq$qq>W zJM{PWUc@|Hv{E6e+KA2Q7X3EZ(Lz8mU;UUPYu9+tTOf-)=cU7=O*a7HHv)joMJi~+qgvp)=Dl?_;|)5|k`vxieaAnEB7e#3@CEIY0_Q5F!=BsmdA zfd+3PX)Y%Hw(bpd+YmDQ<)-T@keN!#tQCqr@~OB=ocZaVJFeVKOCuiIR(1k>MetaF zYtZ6xyHv3wQNi@Y&AMud$rOuaYFU0OIC%{&nAYXBsdE>)nxeptLk*S!1Z_`)J4uqQ2}4bX0Wk)kPI5gyli1c&2Y! zyC|T&?qsr^H^H-FXws?eaY|Kg?Yr;W{ipc$F0^?f^YK3*C@IojsvGl+$2N+XQTOUn zP!t_EMWhLq{j*gxj<+6=UKy3ksP6@CO5@8$c@w1Il+G?Pvt%S6K4#dzEkG5By{^QpuU>2_V0E=b@Dv@_ZwLSJ38cd{v*@*MOj-9);9YS#6O;v4)G;9^68DW5Ub@Blnck4U$w+YV)XX1!>*z9fKq zJ4$_{b8FI*R01Oya)djQ4%|&p0>qlT&gjZ!aeIekTVJu>8u600v&Z`D2MT^QA50;y zaZ?$=&n8>;^Z%vy9XhT=D1MT(v@>nH&hm_6$@ZFCrZ0i@^hkCMzfs_QM*TE&Ivw%f ze~?^yA0aMAzv1hTUwmZ=0)3sB{9oEr$fnC51=`NonuO(%c`<=-jL$u9k*od@ZS=b1>#YaOF{CGpK(74zd>vBGw@-4YL@&KZE4~O= zo*C{nQhji|TO*>9EYDIO^?W%{>$xy>O^7*6c$O8eJXQuVuqE25B$O+Ivj8bBfn z0J>~6_Q8s`J`srv@lA-+Y+Ju@4`I>%kR8}#4SK8!gf>p1{wHcG!i3RfGS?c*3tF*IJHp_jC|Z@57qgZybOqjW9@^SKfP+ zgpvVmql#Nj8KsOYueq$P?cqQMy0CVo{{9CFq}K-76$xS@V;LQ^lLi|=#2R;T*ho*N zWMD;i6e8C-ePbqd1EFIyoutKir|y~nzzOSzN3Gv3H`RhGUWtYXR<%vaTWr_uWTttN zJr=q#K^=4AK8_6hl7GLfj+EGd8vHFzSPalY<`T+<2 z`AmDbSZbXbDms=>!iRtZ=6>K?9=9_q%9=rMCSs(l4o7TZa3`G z|8Ur#LujbEE<{HI>Kr!Q0W3&a%+XP6RKTgZLC8<|PgATN41EEMX)gB%csNXRcOPUn zAN@ALL}m!RB4gwkM?@JgCM%Aq?13xnhMqx*6x0foYw|M@&y*w&;JU=#*;m`~rc&W*536cx56@w@R{3-(}M3U*03 z)g`HW>q!hyCok&9Q?0Gni2Q9{i%3>MPd<;MBgP%GB-dW{<%>a98(5*&0u^5KqKjZ% zSOkzh)X$lfg(8ifc>GnnZLph&ge}KF`0Fj75Dr><;7UcZe{J@`Y9BaEu}QVFt=sjo z0etgA+|CZ&QCbqRf5hEM_=EU7#t8+Il|h-A9%p{qYiHctxB%ePC$uwx+yzMIN$)+L zJ=Tc*uFRZG?WqK3%aY)$s@qrbqCLi=yTcFoUmMMSLY_}2ZW%#W>}Eg}@`FJVZN zdb~zB{uWc$>-+`DXFd@au_M*zOAPK@u!!V{-xA15*3^-^rDOx0Mfm%4fcGkN-}V{O z+olqQN(XE34X19)A*BEOoqnwGaNKPufbfowHIBp~M)J|GK zwz13%3F07tj{2rT(a$l-FctqR3c*%wts^ zwY3hJT-qrTQgI{!n4iUvWD?h6(il)AL}T^KK@s2!Q`_+nVEVKeQvngfFG?TDVlIdL z(A|iY!1v$M_x5^*Q(zP{DgyGy$N7=^WD_<3N{DxUJ@1tN`YQ6XqNnm<_Qn!?*-Vr% zh|Y0^{(D{bGKRtMkjqK|TAY376Q;I|@3jG}lK{d3`k%AU5i{AT#< z=qa>i3-Z!0PaQi zuh$zg)8A_z3!BXQ?Wrp5TOZvXZar*}uvsAm5UvxB_n#~OR(SY=HlLy#7LZi?@i!@u za`hHJk%7f2(2c)v&9Yw4|MJyUan-&@=o`a(ZWopO`=Lh07MsK3MvPk}#XwjQI^HcJf2=ZvFU9IX8&o6zc zyiJk=YHam;ag#68F{Q{j2OaA`Ri7#b@?Lz&3~TQA(r1g^T9k$?#@<)%sZ;5u&GsCr z3>QAVvuc_g?N2RPyaa?7F_0TnWlgrvz*7$9a%S%)IgW9ni}@FOeiU2!gMP~%v2hQF z-ty@#hJp`+_EEd6zP4^aAq9{9Qryi7WoCJn{|mRlf@Er`FyUfCryJH0;y2kz3`0!l>ce_y8wHnEv*V$uA*%b&MQeFKtdg8XBFc}s} zvrR%9G+WxhTd(h4%HQAiamOZ&TTv%B#`AX0XOGu-jlbIzmc9f_U>41 zfYA;5m(|G%u^LmikrOyaF_xF&lT2t-nxpn1T5NYO@Q35G8%5{+6d`wDSG9HT^`o>U zibrSjja%+6f$Ob0vnIR@_fXy$`yPVkQp=SHjK1%*YZeb{W+7e9@>lHhClTaM|X#>0D>gY z*u>slmwtyJ-GJ-QI;&%l|6(4>RGps~A8ye_=< zZ%csT;qW}k3-i_+v5Dveu`2ZWzoz@SH`9H(j$-BH3So=*L>u(tD^i`L5!jQD-w)h$ zn;LN&k{-1<_?IH)DJ*?N8VB-7-XQxN=Qg{2o^I3;1nap9fDP4>TEYo3@c*)dQl3~^ zv@Pk=KaGBN1wm`>ehzC1ftYUDNaB2h1LWm|ztgWeFD+CAJ=gR#3jOD%8v}Ft;l6Os zCd5|GqsB!T0O%n9FyP5uk#c4uQ2TadKkD-we|xAy5`E$jalUQHC^P4LS_?}-T~)H+y!5U0Y1vXR2)R)! zN0KpMyp}gjs~(6K1l~JtBS7R8M>(D~H4N~qj7;2gYP1#DwlbHyGLwM7Yi#7H`cyoH zs}c$-t3h(P@6rx}dro1uz*iR+UJjTi@B-pmWbWA27a*y?AP3=rh)4(@WAqxI9PX0p z+9~(E=Yzv;m-4KaZ>WM(0+gmOy3owG_OY-W;nl->r;90Ob0F6E^;qk5tsR%+3v$3Z zN9ZaUK&&wY{MkqlvY#E&9)WO`zXadqVgwp|+8x33_05s?i>F?KtjD&lil>S~8P| ze5950yH{0XIXw^0sXGcgD~!yr7c@(<6HD8jj|)|EiQaV*PYN52?{ZTH5lzd8G3jZU z1;j^QpDQvi;r@%<0OafAauk0SYHY%vIAcjt9=QX;Eie&& z#;5cpPV7#iV^B$9Jk2Z>-4CAdZuxy?Y2{4s=Maf{f^9SRp!=PU({;=bPqnk@2^FmI z5cYSg;eME=I9ZDc^+27gVUR)9Hs%5fVoYyI>1!^#%Q0jdZFoPeAA5DkcYQ9WszC~H zMFm?-k4xEJCWYG8PKoFUROi`f5^BWjMJ&rbN>YCcV6$We>zQVdF(jS#g7?9wJ4+;$ zt~F!w=_#lQbRJCRaF4rX9qCcG7U^+#AZ0doAeDcM+r{jGApoK$D$P)i}7uz?FIV#Zx%pnm(U-EOIDfeb-$$?gUsvW+Mt2Qbp+ope7$uQK@))O(6d)Y6KAjmQ!XoVDL;-n--mIfk8Nb-`mFZbU6{=etHFHn#rq3xSw-pjpt|2gM7 z-}jw!@$zR@ppWyy@Pn~>LrAJ$iNu|JpMBJz1S2XWa%_R6Bi+~tt|5&`L@{EJg&0XP zcbtGa+!BaqEW$lZq7tuD64pg2!IGqG67A2@?wCoqK_&7s$sjrYi6x+_jzi!wpA&rK z?!>x9W3nsD1AMZViI8f8>EKLnnsuD)^)&45@c;U3RJ$0`#g+ERo1!^V4nP2svWR$K zVtUn6vtqvt`FSZ)XRG7!(Ag5_!$2E^Mfo4vgWGnsh3XmHrv$Fvq$RX!-rXarTm@f0 zGrncRoWWli82PW%)1A=Ho*6JsUW#k&HYeEvU5r8m(vk?*jLj~o4)U2tF8SV6>5+W8 zch&;ca|Qd?CMDNDIy3eoJ4a1T7e>ov&);5a3;nQdP(Plru~7M_zE24A$*ZbUo0m>Z zt>IZ>FPM;iXp@b1ZhyD<8v#uy6r2$w0F{$0$4+Gduc%)XIjEqfx@3QD3-8$0Sp0Zb zn*Ns&Bn^s~PF)emz6^~Vy6Ag5mZRqvm1kEvHsMue=IoxN*4jE?v?^jkvSLIDsJ>ec zmfxEj{rxDPtUS@}+uLx?|I+VHhw9-VLXc12f6@QaP;fjV5-ME1Iu6b*&fNQcw`k}$b>uJ)3Th6?dk&Hrj?pNeQwRun zx{|a{^@()*70c#Z@#>3WEZ@@>gS2({9gv!b>WmU+`T9{Bh3&g7}Gv}|ZiT%XG zL;#FP`@*Ee+Pccr(`lQyK^O!*6V*>4Cm&`^fLBv|y(ipC1(@)hh|GE9xq+DvZYEX+ zYIYFKrFt>EBgGAX z5d0yBLb_9gNZt)0nS_wnw}Aa$-IQ7xo++RCxk$~Iwz5o&JGxIRZrS_elBTz|xYJHE zfMAk)8KVCl)LQG0m#kbfHC_)1dH0?6zx>w=zSsSlDj7*o2AW!IEp#~mug(N(lk#>( zB%wCS(7>z}JFoz489r9jdhn;EC;qg>@rFpA8+m6}MDyubJ8;pv=kHyfJxYQJlQUPYeXx;S0^P@v{g#x^NKyN%9(NBVZU~!Eb zUPVBv@&rfO(UX=b6x1tpzVQ_x9^&4R1_8knIf~Bs;&E0UlM@>q8*{2jwzD<-tSyvXqwDOLU9)6Ji7B$eqo=ulJ2vw4 zfAG#wGMLyonW$R0x_AC#KO-in0=pN4w5|88h2Ke0G^RZ{3Xe3scI> zh1|k6^9t>cEd|^E+3h(Bd&3R;!8IyyF+hTO!tM=+b0FjZs3M;rv?McT>I%$F1g$bb z9a*J_?5OI+#Ie+h#9(fqx~lXuQ|`(xMDUq;gtn(O{KCsEp{+q6=FOH9a^0c@*kEC2 z+;j+Kg6RR*aNX$&@I@~*3(c#fs)01U>bf55X_17v1Xd;!(3}EwYJX1adhS@s>KB^| zzUyNW54#b$^+T0fGIGwD)IJVZ?(|*c59Ri2jkN(^&8u#gBdCh9#*k)17zU{ut z|2ZZ!4*~sH0R!vZ8Ka}|nDMQH=e6HP9548QP`)qFup5z50Wdr@e)j#{i=W!BD);uC zJ668``GpXGDhVLPd~iZLJbD7=RtA#oQ*Cf_2k9{|Fy;SQBaG->6-$GWbB)5bQdiY` zvwh>kaSZyT6ltl!4oKoLFrY#^SX!=SpZ(d_Q>ho!ycdG(R|pO+eW&Wzm^Z%9B@ zBAHIS{U7`bV4jgJtDFw<f*D>_6Us%GJPtWmH=k5RBjk5RBb!-w=~y)c4*;Sc`g|L^6n z;V<6s5C1s|))2V~f`0`O2i;E;TL8Tj>IPb#U~S6kl?2TuaZQ8BCs4l8(ucT zz&q!`N&*C+m{Ef;gAoRUF61bTmif){Vy`u}K(oq&Dl1S$mII?N!}Cqurs2+n*w!8= zCtISlwk1Xzx^$`=mIItdId~Fc4XCkEu=)oQ#h)>gSh_`6KxM+rVq@0qqQv6rg2d(H z14cD~R6!-Ca$6%k`#=G$&LBoxLaMLrmUi!MQ);%gXshm ztYLNS=bGG<1SxC~3xm?s{KVwN<6>W)Umm}COpY;KkeCAkJSs5m{+N4DPcDteGqg?) zD8D(cZ4S$aHZ^+QSaHJp(#I|Gb`##qFEbHdK-e&WcFut14k`tZOdR3)W$}f#oELuN z!jkw6g3R~;+YqC0Ad{p52UbWyE>5>GH%{@NfEOhcOb(r(DGIwblonmLM~K0GJ%_=6XA zJX?}uOk#$}z>+Kkh?5MGmIY;M$&TBD&w-m=W`9Hh7b=3vs(W`+B*o+Yitc?z&C8azUcS0a&HpH&Vg7~cK#>MV# zj>)@sw<`NpaGCD8*q=GDa9}WYgiX=DtGfH4N9VS^;+3sjQ>O-nTu96wB%W@OQ}ZEn z(9qH>OEgr;%2_xe^5uX+9xkFQUI<%y1KBxX!B=8f&XUF@GcFmRCdlc4gjPbSEpfUH7g7o7?_sS*||C(nSL%n4Btp5@L(GMZZh?ww`oA^1<3BJa3c|psE5qgn z5tIlh=kv<-OTIa~<0+;SmMV{ei#Bkewm14$JhG-}Q8-~IK!TDXup5JUo|sQ*paI6g zHNJP;`@8c4#`)t4^b0IgG(o`hsgrldIiys0)F3PQXw_V6MUsHx%4d+oA4+!lv9?ZOb7WqFJ7on0C#C z$Q@yw_YBZ;4lJ}939jb0^Ew~JWG6X8MafYVLH*&qSC5O_IX+LHgP`=pWVzMB1uPvOy%WLePuv=6un1Osi@i(*|4$xUQ+zW3^?GMQ z|ht5gg?jC8d}<|^!>%jA%vGa(DgPu&)S7x(4<@b52eUY6>!QMQ_0 ztY2O3w{qKJBm}x4$tKMhdg|^-6J%Ab_QySK>OL9W8_-&~fKv^ZHl(DWtcm2*2mVr+ED{POsX69VQ8k4yq_lZETMrF|P4J#T^geIu+37B<0T8V?a< zY&m%6xc}+<3)?QV&0fp<{Qe6|5?8-{)c1O}u5kEOcOps%1~KCd>gIx}1tgFqU`xFWz0 z&24|NHBRf-)@m!kC8nKpV}TN4AN#mfSpy~h#dZ&!PMq981zeVyuiR%<9q*D(LSm1V zX=}uS1<_p+4IM(eDMTmCxvFi(b&o}hCS8n!DjIQHGIbauBJ$^1rl7XhZnMElVh2V# z?~m?AmWc4soX|7eqWSw<7)Wj?dYV%mBl*cp4nAyP1)XaKQ^#>1wSQ&`-%`2W6Kcjbf2qlJ|hQyq925DIK% z!RKH>(S{NsO@!N|NZT>cG@J!F=~X^H;66}C8_Z_dUYyylnQK2kH_X%Qy^xESS@y2)B2t$@T`O-MiWd7 zdx(__pMP3=;+eis6)is@BMmG7ikJz@R=rZg!uytWSIoSc#=9-<5_<>g&tqfT2_bpO zY0Pnq2^0d2s?dPj%9+`axX)H8^C_aO0%?dz>3uZDRG^PCOf4DMkS?T}Cva+VwnHin zCQz1^<7rs(?V4C&)f_3-1=d7mATmQtC-FVmSoECo=(6{I7+Sy=4Jos^#QM zQW~$dB&hm!N95-Bk9l77!uw<(I}uzJS?V<^1rTT%C>W_0PPE2o-LShsbaRkLS)J8O z@98-2^1A>ivrnKHP(@jT@nlBHmRBAg_x5Ae!2@f55AjN{RA0LBJvmWqw`?K&>yG^U z+`0%)c>4m%2|Bj$?>qDEZ;H~e;w=15>$Ba`i!dqIob9?_*30vFYS0*^N0I7hqq+|a zSU@O5J!T|ICY{$j`{t+6DuD6P)Ic#4T%PP{Ke27x|NQgRylrp(0;7|q`6a%E1-Qjb zPXh-&N4BM!I(6OSTZ-=xWK7vW7=dCTKIU$hz>q@sXcd1_I(?MzWr zDB+Z8H;AxL?96-Mog>~qK)GJbNOc!bbr&peCoUB%P6oxE$P1Bd(%2;*0n4q! z3V1f_k^2o6myr@-vupZQcSOpjETpk+bbnHc7-gCepYrytda`uG3lCUG5@ikRSOeBp zh69f3`MO$lC2D71L#3&P7 zU*6&M&zG!!{sD+rgfmE+4R{j_4hE{{2~#j%+3$PdwS(Rl{EAIL<s zba$4nd-fKrQ9gLQi2sN~o(U&51IC7G40MYSES_Vy{AKXKo}?m3(TFpysF zY}HoObYDoN*_;7?p)(d4I#6KLrld{FZ5cI*?>ys1F1sY7nC`Xcd2RM&}dQX4YF0Y&%P5 zX;YVSaD9XJrcdI@HXB;7uuTlAx_a)I3DKg7S3(({Yl6L!5SU+iAHVZM2h^Xv+H4lcpxput?}?u|88FUE1GHqEk;bz%Q!L!hnQZ!amf42P@M19CiQ1o zQdVGL=^blLvC_#`S&C0~6Ijx-RcWHHao-AW!`=-bAJMGbp96+1>JbZzn4HJipyru6 zlOSynp^(V|?9B}i5KuVG*v|d^xgEcrS`u9dNv_eGoaI;*lUuu#-P^ExtRI

Sn%gg9yyk^v{BZg7D>|lL`H-*a!0Mt8UcOgpIdTxJeZT-iG7$v} zLMQ*@`Rz|HuIj$q>SZB9^5AQpWhU)u@~#01>o<^aivzKsB6GI^AqW97atbRAZ|-=4 zV?uhUWdJZ>NrKjVWHpVnhk=aHbel9?pd`>3tI#r==eE{@Odfat~3q=17lHpoEqghtn`U1TGqNinW@%Uxq`9; z86Nw^*4%rTo&L@>gAlV&wXg&uP&^r|g}5<@^x!J_S$dlft-=f)u1 z^KXA1b2w_oIRFl!Ae6_aB;jx@5CR#M8W!HWJW*72J^*TF6T^}qVWTLncKNF*;jjJY zlEwp5iei@oP)1)R7hG;8C`|bG9l7`KZj}#uQ!Ka}bg-O>Vhe`9Xc9KI^j5^Samxv? zK&7K@yFh4PO+RObau7S1H>kE;eB0B+G~Ak3YD>Wq4Js&>q)9Dvzw|UGr*_8I2E{?q z#C>)bR>T%RwYa6`!He3SQ>m5Xw6>-0pTLbvsK%t##{w_@e!u@$LEg(haBH5kb`_>K zcWlb*hUz}3?-427cFd-n%%zoIpoB&BxY;>*;q8e)={TA}?*<19m|?W!`~}f5(-(P9 z>{!hdZ(0l#fdZ4Fw@nUz z$PG)fbc39sL2=MuNO}!HSTmsl3|t%BI&7zxB2D%JPXr?hSIoGHGsp~G8Co#7Lm^Tz z^G1@U`*qu!1&?fdADk8X6)t2zRe~9OUqgwcvlS2kRUgv!;sSNUa<(1MR#qA?u!yUm zKxxD8w#xR{ABX)D)J$|i#Vz4>g{9Zk#eiz6K3UHxno68-m}w&hkEw~=vY9p%s!5vq zBep7+3#ALFWov*51JWIG8|T}a*Y?KQ>oJK|y#w_+HKRhn5Qkw}_tDFvX8j|HlT zn_Ssxw{>&70JT;25J~ZI&zUik!ai)2+qEEba_O}C)p1Ig*dCAdce*;82B0_6DyAfp8MA7!png@#&AXBU@lP4iVfnwl$jBC z+V{Mz0H58mACv~!eMVYac0=hz1R9=@BW*`;1xdPngJ;G(QINZu_X4j=JLaLURG=`a zQOobX5&7gSaQ5lIgct1Jcydd@-9O%t_jTSDP3=M7n}rFtL2l z19J&?XC%$Z;OLINhCRz{Q1wZMHLoPJ{)XLe*{5P`p9mB5067ZFgCb?FTlM`jkQ^is zY^k$P$Id42^1D}*PX6s)|9|3c0^$&D%%8RJ36#1%W#9k-11iG-)0a0^U}n0Og_dEV zG?jCB)3ZvXJ;bOir(2{%i3znqPy30T-rAkZn4r=CFM5XB!K@^zBteOOJ-=QPBH%!aG!7Fp~`%k`P1_mx>?gwy)Kge zSD)cj#%z4yE1nZOH)4}$x?--Y=LvI5@vAZ{Y&TS6aoVx9-t#V2csDm{?*oCr4OC7w z*Vx1GWlfobg>xKYiQL_MSc-Kv7@lA`F!WC>`{nysK!A^zOuCYJ0tzv7-4%S(>vRRn zgbK4*@ZqaJRltf{X5IJ;-IrfLAW?SmFK1Z~o(uMVXrYE9#amv!%X@6wY5@2%XYS^H4R~@1D}JnC@gU#`!)RB*#l zm?#X}1;7fCebQ{|Sa?pj#VY+suWdalx z|3@-nwyTJL0x!HDEKukkGvnr1@xU62?T&j1Uq?g#~CQ+{iES99)6o zrVClq=j0^9t$QrKhCrlFuZh91$l(TMd2=U)fKS-Mp4-P1%heakg@B>trH!84|as zi4`rV+f{VVyzc(GYra!+;@a;nw?)|}#kyFk7V#0~29pFrfQx}x@j|3@%B94P+dU=8 z+`9A#>mGmMt$_)1miUf-v>X>DV1sBs&U;`|o22EK35MrxS(opg%IEdLivCCV{&WnQ0on{CqQ~ zaB|@ArvHXnED8hr{bZQ|W$I9k4tVRAKJsB`()`;J`Qzsq{(?$dQgR?Y0HF`R_R~yu zP=N9$lj09v{)WVK7!(oioK;Vcb`n4J^m-r6?zwx8lE zNvsNILlFB56u2}CYQI9`qWj)Xp&A=f2@QA*~y(_$RAFsmy z4^!)R|2KyO3N6Wzj))*B7Pyn8G!^3m0}~-WM9QZx0#zvHtJ|>-+>J;wNS6C`uHXqo zv>5ofhAZxWBRr=1YHYN@G{9-Van+Ht=OmON%Qn3DCAq7m!SM*TeNKW!Y~CLzc-oF_ zh>e|btM1J!h1qHK+F8WE)55S3SV8fqzSLU0( zbt4Y%dsHMP(pFct=GQmC?BW_E<#^{IQ1t6S?O?ns3apj`M_i@d{p!Y3H-0~F_(WNV@<%P5!DL~$LumKJ zOKxqt{LWWHm6!Y_FhId^(W!e7F$c6f0b0EMkKYUK`O|-aE0oC~ETzqOj0bd&Tud@i z0#dzN-L;Qyj|a*oQ$5;u-yff`@DJDaKyz$7@Tb7xjn8;b?tM=Rw{`G(7>WysJN`Uv zyE0yd#@=^ViO1bRjbQ2c$k+>R?y8!17g+9eRO-=+-R&MoA3zz9ipY6~);(Xc=IJ|e z6^t;<7Bx6v@pp8RO)FSZT6@iRw(DB31l&$~jhZ}oLrR7V!?BMd8fw>Ck8RLekE~PM z>$XXe_G94I+60SN7O`iFLW1f8g`pVow@CoZMOZ&eDI>8bgicAwxGm&30zG3M@8+A`!Sy~o$259&`5=Bel z4Wl-MK$E+-PQfyw0`GAlGCb}BaC1;`u$`~#=KJh|g_?HyYqo53eYh8g|HSsU%U3;l zJ?A(g9WholXkeWJOplsou%x)*$_G|O^Ttk-;@yTTfTo!UJGCQM<96fHS*Z}}x_qTD zvz+IhvZ6FQbhrx^EG;1B9bW%Zam{mI#rlXNhp`a@6dr@OQV@f*;*n@)b92SJKbsw> z-ToHF0v_4Y4%UR6wo-)ezl!=JkOb!5u%vG%-S4RtCh0ckKzxFPScF(97VmiDMhkMGe#M1)ZuvM| zLLgeEaf*Tu_Q72xZ?2Jm)|1?$n_hy1_d2cd;BG8nqSiSQK^j7^oMGZaC3|GKtLY@t zayj1B0HDnQB|euoJVX9NoRE{9wWOFV$>p&C618Pj^tK%NpmgJJzM8jV+2cU#(nwH6>xF<+jBTM30GUG^;~_*HVO%mj~jZhxYfIe2`b4RiT6fkd5RWdJw+ z_ck9|AKbtC=l)|Ky^aYoZ?56XGDi;M8(Cl_hZGw!8E$%EQpmut<3YNSXgij*JK2;R?l4!FD#2-az1?e^rs%(p<><9A`} zwB^k$H~fWFraymz>B$`fR*`SZn$HxWj%Mk)pvSwRaM(g49d%FuJt~LWj)H>Uj=SD) zfH0{Raq}}o_uR6ivkz&6oQIvvZLBN+mD}OGTTTsZ^Eo^6(mfZ)L!z(xg{8RumvcdW! zcuY7WI(-75&&(ly#;$i1tkGi>tkGi>tWmH=k5RBjkJFF;1$_JcEw3?&ML|Vy z2lPj*D3-O9ZY=Q1zXjTDQ^1%6kfdr7jQ3n`?MGPIFU>MYbzY~)of}TQrTkMB; zkmEeH;EQnZZzk38$4myNGXqR{;E+BMLh-y26Pig3Ri}n-+URi!7V%4_CnOssLD?ww zOC;nKbU(b;?MNNK6Bmo9d?c#TuAU_A2rGO?uSzw=q$WZ|ge%LOMFfuRxdk9HN3%rw zKm!LQ3Q7b#J;k6#Ql~mfi(eXz%UNue8)O@$$ly>1uRrj zobwiql9rgbe|LwxZgY$K?>pP%bpWh{0Pph%7OFIAj3NMipn#JCjEaEKI8x{`>3J22 zmCMJ)Z;? z&tG3U=K1YgZPIoHP~#IV3h(3LuX-LhBV^&h0e8`(0GLXz?p--CcJqqy@h_AG)hX-^ zAbAWEA;b6%PtyR%U>BgsG;R4sInLslqB1$MztgpD)#1R8);EZMkAY>*vKQ%XEbntyNC&$13^Q{hbP3ZxoKwj`$YkDBGGK=!V$(t zhTRE@k_C~$3m}EyZfaXSFF&#;c-M{=vDPP=Xo>M7jsNg93#XiMfU&uZC4fn+Pbko< zzPYgb$!llye8a<=AzkG)W_qK9p{Gy6yzl)w{vOk$h6%o+@_tFan@YRd<+Whq zTP}f!sOs{-89LR3Pp28vc=MX6@qhi+d7Up+6(}3umA6Se^G@wOHl1)iXPB0Syk|JUb4CCM)Q<>!Mw?w~ zO#8`2ZJW#d$`l>`4Vx?GNG+v&GKOh~s?0uLjq}y-b>tzI9Tm;~cT-2Ym=FS)T#{Hg zr^r~a@r3)yq()4MA3pGm`m_oJO(aRQ4^^4-AH29@hfh+=4GlqKiCG~9{*R70$C{y( z2k)+A3cTF+#dDIybE5rczt;s$w0O!{%x8?(aQrbDA20$CRjr=nwK)~h6+d3m{<_b_ zxgbPh43{(=)#f;YqX#6*IaTJoA79Y)COqt-VRFD{tc+uDeWo#}0wUN(jH&TTOI$e8 z*ekr<6cY}&#f65rPCG%$MGeC+Wl0eIg64-|Fp5cvS`2km|ZTJMVn8a6w$78cLqi?JOL%K~8)EBPyrOF4iXBe}2bC@Ux1hkvV9b zL*-FgpyARR6IymOdS2Ml;#$4GOWfKV7mvkM2w?Uzh&gJ94^WtxmYh;8L2Wm%_q9p8)5Zcrhd z8@$0HM`(9~Mz*%dn_oQU{n?3_yLOzU% z7~kvxRRv%{DbQyrkqn>Wet@zB04IP*K+xB=iEqDH@A*ZqA~b;tyHJu14|DpRjKHT0 z9uBN6Yi3z;No!QxQQIN!$KT=H^U$8dXyY}Q2zAxu=dCita?_baw zbEN5DNUojx3|GB-e)kg-Lq>T*AH4KBqa_YnB8owbDnBXy&iU?D0W7p}-3? zK{CL6mzuuudg-#K4|@LO<}Hu}1SNrfy7)m#B0%&T{7+o;g?jH(y3V)F2NI2+6C&bz zx|SDZ31FNi%7%Mlz?}ZVG4GQCwfRmSIF49O8l3fwh26gyUznJWyoRIcTZIfXvLPPn za&NwKed(gNJNP3ZmkEJGYMNwtf`D?-Y&-lSN+y;a`n8Df<+DpZwidQ;=lamwWj$3*`H0+z;L$Z!fYJ6i%T-u`Oo z!uA*m2W3md*M~digPaG|Q<2+{HZ;ha{%u{!+@#92BWWK@CLjj@#PrmgX7>DGj9(9e zbk>J5Ha9AOgSo*0aFg6LtLJ`vh6b}6x@CiASF8V}do~nauEWJZHDSK7HnKh=RYNXA z+}j}?xpRHVxk;7p;CV)-)8afB&jRPC=JDvopPm{0X2L)uSwrSk9`V3IX@lvWS4>iF zswzm%GBn%wF%XSFNy2;`q9N9IxwhWBF?5+_8sJkIc}Y?IB_j}Lv9?31|H`J)i!A^G zrkJLya+n`Wg}oZz`=wb$>cqIt4H;1$(ZE6Ci_#|KA^f#9k*}fPW+M6BD6!Kpbtf)_ zn@lOSD7xljNwNLkUn^b_2l*oNL>TF%C@2XFT&A?WMXdeK)}m{W#aZbqQ|1$bPsx8` zYUJx!7e>hk5I87VP}*EJE`EJkAW>r&obGId)n_(?nTr9%Q~(k}2H@kRT31p$-qa)S z{_o92A3Yx7JJEs}4b=mEY75ls>N@wcs}2OegZ?JC_q0?iR!LxL?8Re}pPmxZ#wPUi zEwsU`5gn^SmEx5wa^-~R?ZmK)l?=;bNm(qWgz;y1y*tL&9}dgg_jgNMj`RpS8>8ak z&Lr0oRk;L;A_zY6s0Ky@Xi^JJa=35ui?;&z&MiqUpHQHjW2P4kXHtg;X?w+l=;wa8 zJ@g;o6y%H?TUa9&I854rC3Rkvdj5FWG;pu$0!R&(fdW?5fp+<|&8_Z#>}r!=sS69W z-AP`>03_!G83l|jp}G=AcA3e0E#zn@JrWu*9^4uF{Eshg-9gg~iZWgUvUzEB{4EQsuACN(rXG-8PElRdL?AZ5^;MX-R0%qUl6=FyPU-axCp=GYZvIgX$cb1{l%q9(bx|q z%W4({_pf`H54Sa2f=JmFG8M;I9A^?Up>xJnlM>h5IHUW!#Q|-yeVVk-!1cl|7JBrt zH6_XOubLA5N^QI65S&T<|YjeG~HPao6MXE2CFgY5oklE2bB!=XnK| zOnqjPg@3|;5cq)vE|D1~EcqLs5&Dr07?Ocqp~qk0R2u1HHm;f}xkhsE)O za=D%gG@3z7O#l0@1>L{CXhP((EMM4BQal0@w<-U@y0 z@qM1h0+N+Ac<|@JARs&1q_s+t56glTv<6_j%<%^RukvYAOFep7b4+MO37!i}a})r_ z1`MZbI2ALONdN6crX-pEv3_I9@rckWJ8si6TU7zkrKYa)iG;2N z%0khzSKb<)wCFa)Usg>JEV@DjC5j1Hsbk|^?R6W0nxbiwc^wlxsRA)x9%+rfn*^Zyv`mdY)@oc zQ5HV)0HUbW)wtW@F;&OP$i{>=m30(2=SidNR%^m z;-GrL0=oI7iObM8oC^}kng$ruD)H$xQ$y;!q(MohX$~n>71OwASmitH1e1Xsf%p!e zWEDs}^B|aK25>kaz`A0fS<<%T=3ksR?}jG~tYZTZ;rEd5q3lGm8XmATcw*(Ii^i~$W0WME64wlW zaj@m0Tb_@WPFch!dI2z$%OrFF23T)a_XA4+BH(v%6)XytEBCXrid;r{))EXo<8W+o z>PZrkbdGRf>;Tpzr}J`7oPfgy90U!o#5BER{Dj6!ZeOQ(i^dAch-Ry$jP*jc`rC4h zwINCJ#xV~$**kLTSrP;M?tXuaQs6MqB%@lQZ1S|GWp}&@v85n_C@au7A|tDV1+{1x zrjbJboKH_3q8gJFs03Gssu3UoEJ@TOQZa3bCe6ifoC3efJ4{8 zv*3(A1h$%dOaIY2@u1T&{!7swBdDEK=5@O-deo)3+(`6zhgbzWHYH$0CZSRS*pci{u6)x$ym>TbH&qc%OOX zE&qLf(WKdcCUsqmH_a&0FG!c(QYYkaEF$dZQrSZz9ysU@Hgw(eh2+)+pZpy$*x8z7 z5Tp}SlZL8ERHCibuROS@aO+;OwL<**r}RCXb98Re_K~_ZhK5Vg8lYP z)*Ojxi&J&!V&f9A@DKBL1dudu9`ikQ?`wr01(S+o+d0B1hc=4brfWu_az3$%?m*{f z$J#Wi9gheH&?|0^2H>E93F6;Q`*Obm$do=iKPOvBs>IO@WiPMV^GxJjQ>hOII049P- z-}~5(qJR7PYsJ^0dJuBZ5flk}5}Xb*3zdZh9|{!9 zNtE?=;+DXFmsBUOv!mhz^BW9k^1Q_z47;|5RnGE@*<~S~9^il#1@eY;oPE{zLA8Lq zv_QmDAzjdbZ$|XBAKF;4<|j*uu7YhM3#St_{nVC$jUWBI$?a&9c5Q8yZz*&I#44XL zq1aXo{8sMO`QDR1-X2G&p#q?$P_jH|n$Xg82CAz}R2P)S-yo@4f1c@gZ`et(T z4A^rVyg2d@FAl zXe_LlGG+r9BceTtqjIoFoeF~GjPLB5LXVL$GuN$DQayr-JVf}&r1)KqwBgdZSDZ7k zzr(xvXjnKVgT%~b=k?r^W0W>p(u|LpeQ~s8@?!kEMbnHnV_t*kB4wNZ_$jfq?kIpp z94VlA$89fFE%8&pw(AjP}e zi?;pcP7@q`G{Y)|Gid>L;uM1;x6X+?;CAVSI2k9M*c7YS6iu?Z)%{mcQ_V8?q;lQv zC8xl_I&KU)M#s&&4g!#(QxG@c2gTZNR8d8>FWxJLTO+0bp*ZV<4IJzk->vZam6H-5 zT{5os2GefQo1TGTV~+g2&i632;|w|P=#f)$4C=-(B`@i%p7RN2LZ_223;+S32y%Dh ze*eJ@j~cRv3?Z+f@2I)7QsWjz)?%GjRZg2$WK`cZulx5%x6}1JBj3U{cl+ApwOgCT zH_#FsirzuFlQ;kpFr6*6aLi04Sa~*w^dzlBbC5QmnnDNGeVR5MWy8M#n z@|QqF-3=T{gNS_xpNPbWu9>DN6TBBXjQ%35BE@+X5EdriyP)m)%3uP=UTg4rS{`@S zG!neSyIOrOY;5wZg(&}!^>oe|aO{K|o+Qd@mLjjU(&RRVAalOsJD=pET}cQr|UxRx}|XQ9&gj$X9D$GpWwr7VF;eu z>g+UgEHt~58qp<1T)?j8~H(4b7WqV z{pD&!s60C6tYzJ^F1xRA-(Kh%NLzC!>a908CNdo1^NFKB;$YDs)a zYKn2X*MO+Jjsezx94vTXM~k?pFXSyptdNDAk?hAW8z{{FuQq?jw!Cl;Z z&UHVDmrq?@w*JwN5hbn>LE?rYZKFS*L6CPQcx`T(HtoJe9selttCPV0GN|EgES@Hq zVn;-(e{_%k>s~O$hq{?&PRKD9dSU6U8myRwJ{WA(mxgL%q}bDToRue*-LalZE)02_ zLqVGDK0B5e*QgOUc;i#E;y3^7lGfT1uQmxe%^-)jS?nAEg%9j3yrC;WRZM>!>ZY1G zv#M}+wP5+o)Lh(jJ}oYHN8P5umzSO5dH@VgjhQ`jR@~k-_2S!vc#lRnY?PC3{tsr^ z@RE=WE3wkai`o`l|69&>T<2_$?9QZ?pc>QyAB{G(P^E$@U1F)Hq?k*T( zTT}y9`(UyTHbQC>VqM4Wetp>#se!&RbhBs1vajl*2c$-Cwxz_F@=CgAF8>eDv7M`P z!EdoaY(Wuxr=P8Wq>Cg^ILcTPO`U&SL3}5I2qfIaLR_J>;58NZ{^HuS$vGkvez+2 z_;tmK7miz?lunv2H}BtWiSCSuGCJe_-lAm zP&F?6wM|7!J7Of}6Nzv-r{i$Bzzvf!qU?rvlb>mv0lk&jsEq?_C(??ES|r0pNPTJw zxQJ3beu3^OC}kbHa!~k9F)tm27Fb!Aat2G}<1)KF%%`EG*kz2vCq`5FBnBLvxDy>b zXsC{p^K`(?-J8mm9O&fheUf$BM=Irn_~EAqKa6Zp-bK@UKhtKsuJqX1(^(bKu|Rq< zSb3I}D_>AQe5(bOb8Ly2u_{INLAo`uk%=DwOs1v902&P?jc)MDT^mZz1Aon1I9t>h zhB1*jjE=J*??UF2ggzf4A5Fph!*P5!n>uVb8-BasnIJV5%tzFok=G9H_AKT;6YkSWJl+ zZht9;9kPlknuq?ACe$MI>MgD+P|72%jwDPiL@|qC2^kahHb9a!&|`BKr`_i zry3!71yd@NjVdRPpS~Ah@JD#r6d@$h`|DkWci#3&@wv6_d@W7{b|wLim~`6Qa2$9z zF=c^EM4FgFAJ75;puss9E?>FsEv%+^&NQ1At|)Z`5_)^h_e3pWn9OUOc|r=s;unb4 zhxV=c7EzPz^JRErwhzZ`REAte<+~dp^{d08ykw$SGhROI|JjW%mDfDB$NwOxIO-KG z9?kHP0+^fvhdoFD1S#5a7$r_x2*CVgK_*H;9)HsiTBQk(PbwQeEn}N)ja#FAN-5|5UnB_4kny zx-NOS;I7p_N(L)tchy|@Sux&&>8mt7&oqS3OjFZc0Xf)Jx2^QG-+wv>$z{y>H@!$( zgpCO-8!RG^%?bce&0%rh+6MRUUpnUf{gJTPjNK%HIGzaSeV(RZ<*)*WZ7$AI=x(aT z#3_`#X%Hi(-jb!0E`sPY$wkU2=Kdj(E#2_z8+k*EbxyhHb^@_0UdINNY_cBLuTy7g zcCSfUkX8_Nk6#L$s9jUB{*fz*64!}cv!3x2kCG)IS!79N>^iJ-5=>rfiHiGowaYJU zJmG$NXPdmSN3oj}AYj;l*b!hcoj!@frniV7aas=uiAam?@|T0ie}BT8s)`6!%+iX+ zo-MT;+=bn>vb36}*Z2an>QKb>=Bm2DgL^xqjYoR;-Q7u^wVZVW z`)TRsKi=p)x@`?u zQJz6Bm5JuGXLf{uEYif=ONoYVMG`_0Vp#j&fHwj-?GCec+myv{?%lMTLC>%KTIKr_m zx2E&`)AwYf3U{hYkqhFeNKRJ_wPgJC)+IMT(tOcvtKpusltLegE2p*NSgS-~6Fd#O zS4E2^%%i$uS_AoKoP1%WXxyymlnZVM?s@UIx;rpLz5ZD8&uJF@%vVfP`+)WJtOS{H zK#pks;*c_C*5%=G=X@qnGU-y)SIn2}{`-%`Xh&Rk`>}Duh-~$e+ol7|gDVp6u^oTn zXD+|5Z_w%hj}6v4A*vJ;Xg&`5G zpkj<#R&!ybV&>I}(#gwoZzx2Z5!hn9i}>rd{ti9ibc8zpat<6vUGZ|~u_L~g{i`Em z=3K?A@ihAXVL(yS6>o8Q=iIA*P`2T*+jJzV#2S5#l~C$}+Tp-4j)O@|m(QpA3dgCz z%2`VBxCP1L@#iUl@;Qd=bFmCsU13v=Svj=imb~qU*UN2(cUgjKNQ(hS7I0EJ88#$% zaN|#V0XXTVIj}*lO4RJ0eBrI0=6$Pu2VeV#F=Q%hXqGclNl#YI_)yoZ%f11g>{8tm z8gGDK3(S0$^@zSC%#n6RVB7iD*dZCrKj2)X;LvLiv4)wl#Es-0LAeJG#-PAA<8Ii! z#?^NC4G1YL0ugMGv^sNPR8S?Y3qJXT+|@8c=x#az*BaIi5`&R6@HurOP*Tvm_;b&K z^en@=G3I!LF8~ztJhFta6ghr}q=r~qSHnKf(QQxT1f0`Vx1Q-5lFsTDt0h+4rn;QTZz?f5@dC9HMTP`0DPp3}k(2P3FC1`M@5)~!Ve9^7Xsjgs|kmyku31+!L zw&CFP;W;@kJ@w-jYxhD5-hSn~Ac^3;e6D*0jSk@0ow+=m|JaVzzSjNgz&p&-G@l@* zvebkY4^_`@S^CA7SegbL%7_II8-1-Ch=iskxBMkmGHDU;It?pA$vc`Hyw?Xt@3|~^ zI_q}^>)v=A+pLTR2|IMN9B=@=VUVI-f4>KZU|54lo4_he98(l2opwp{(l5Qh!IMmY zaArNTGv~Vp62wq#&|G}mQ<3VqAH!LrgS$_x*y2gyThHD@l|<&bKW7YZnAC9#?h|{r zhU(t89EwynBbj<%n0x``TtIUGLOtHp~Z zEIj_Z?AP9UsqR5G!J&}nEKjn1mqJudoB*;LRLy<`fZ-IY>A*S^P z(Nqh3Mgq;@@U8(=FKaT1mJdZ*IEarq!CuUutuj!Ae572=Ku2%};#F-B`Pg zjUE^!(&qF4$4TpSwI4l9+&(#4Idd_uCAC3G4D>9USfgTb(dx4=PnJ(x3KDFm+}+fK z`_Gy_GB6H-r{}ed<+9U3kgBv*a4$1vH^C|yKS*4!vh>DgIcm@gl2Hx_;YYyf~ZE@s-OR#S$w3u9UOoBXd%SI z0~}lI3ls;|7gditarxbEX@WbL?ZA5cS@167--)ZIaSuqfzj>P9enIMLc#BU&qR6Q% z2P1X`#ycCUvkqdG-7fdtJ6!Amp% z2l#d{wNR^m>4CX&%fY>9MUBMiI3o`@#IcmXtX3arPZ3l#SPa{}99hR}jOR<3>c0&l}xZ=UWkk)s|sec%D}HC{Dy z9(ad0XdE~*3{``}$<9XuMBE;MiH#ryj&UB&33*_vvy=H+cD6cJB0J4U*$XVLq+=k` z1`DfgrdhcxZ1sdGsTP9fLSMtKH*}YORD%ZBX(7k|yqREWi7rv@K5@d=df@3;^_-9E zvOfq2ZvJ>;r;h#W0|8+&kVwXinm&&9F(F{*s44fRBsy zL<2{+{L=InPe_zbnhX9B&^4$t=uiQh4&7&B_ss)H_+Z11Rh6$ibSdB4-et<(GX^xn z4xAJ(AviYy)JmXk^D}}LZv=~Gg(0{^RwhE7nW-awu@Yk4klZ5PY}w9Lcb2^I#9a_{ zF$mU+jWP${$On$I=~#hj@&fN}+PB@`wD)l>R54o#RZjvQ0_KvgIgYlG2q08TXf=V9 z@$tTny3Lgve!0Sb@U>@6(Zk{AIuob;jS%4U=?@D@Gav2j3>?|~dr65LQ;Nnd1oJpZ zQGH>?KbvMd5+o2x7>nfz;SgGI>UEdweCF=b*Z*(}-`ml~%x&ATH#!sUM-y-ucx=^$ zgq6CQ-`*KGw(Sx0lBuDpxe!qFfI0vGF{ha|gdFJo@M5rxJ(MuA2dgfVMTgcuSib2u z*Lv!AY=pQRCA@UTsiqMRoIcgXq>qfA=A`%du2%yMyM85DdQ$b5PS-sJev3ohhD`*l z6o`hZ-r7p}hv4tvWRy8ea&e*(=?op(@Nn51k6-UUxZ!D#h)Fxb?YN@P@HH$Bz`@-i zMgSq;2t*kt3>*FuUv%8uf9aiY?q?H4<1a8ULlX-G?D&%5gvgztt%C-Wl`7hE`WoY; zJs#s;=u8Bk5OH-L+u}dE zc-8EWL@TCW0pWuA5I(Tm-=;jkNHH7<@P5r7t-je+Z1fOe(`@Yd5)h+`t8%z`r?+|E zYH!1yzeyeSyCGtZV6kU-vUvm_yiwPq2RQu@#8MtClTGr)Fai!@)dQttl%nzHCWKv2uzfF;WbGo_HzzXe1p4-7$uo@6esCnr833GjU?^2;%WAP%<0RBGpjr%<*JZea<%TC%1%Fm(vac9| zngMXcc{R{GNVq|o#4Sw;<1}C{(c2=#yBo1F6sJTJY&Z!*ipN&Nq79Z0sB}5i5=Qmi zpCqjWyHHq2T#0R&A*mLV(R!)#c)i25`^ZlJVskI+TyFkQRmh?#@Y-xfG(`GpK>z>%07*qo IM6N<$g7Cm5Jpcdz literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square150x150Logo.png b/frontend/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dc2b22cea563cca761896877ed8d72502c8fa241 GIT binary patch literal 13032 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square30x30Logo.png b/frontend/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..60bf0eadf75c86e5d25cc1da13fe5ecc2c39c559 GIT binary patch literal 2078 zcmV+(2;ujMP)%q2v2@fKtSxpMXgijv z)fq>Pk#L19Fsu4()DBYp45dn$d|w7L$xim4(ghvO{2KV_ z+$Hm-4+=-lCvt6F`pHd82H&_b<~Ep`2qG%4yaCtnEHo$PE&9r=><>InhMM}#Bal70 zUf^jnRszc83E!|N`Rx5SryfTxDP-4{&|41om~VDuv~w6qd_&luzjUVa)#`{hUuj_d z;-TjOk+N;g#m|ICGUpTKol4b;)1*uMHFL8MKCv|ZGRhN>F6J+sEPnK@OTq0qxW^;f zg69Z@bb;=ln|bV!1*zxYUSeI~E&nck;GNdstHrvQ!1<(5!-Ux5Sj-IZ@~z9_hm@9c zE=m9VKe5%jFN9tTX%YuDVJH!eouF`WsM|Wyn`O<*Zm_?u*sYJ{@7&uK*yeKV5{&S) zf#D@;b0Y7ma@VA6+_UYN`OwQ}B0oEqG|om0!Iap5_k7kT+~I_CKtiX80<7AJ0rPaZ z$s@I8-V)2;;r=XZJJD}8sl};Mn=-J3lr@S-XWVVx+a1}{8floz^ZAs;b2h>Rf?{4D z^A`SaVe^surn)X<`3X?*m}zB|{wl#5hVBPZ8SoJ>C^ggHJ& zx0Sp1si3Y+b8e32LIJZ*~&~tlQ1KZVPQ14EFNvvQ_c$BZaG4nui zke92eo8#uY4zLT0B79WUpPv6pSzi13~yl3@aY!Vu178d^4!sM@D=Xy%{JJJL?)ngsl-cqztS?SeY zO~&FDDw{A}5^59%@@`tejg+Ez9(j=&w@AtmakDw%=5h#Acvjf}6hIna>VW==n%wuW zCZH7%=)I1>o{a}fmn#of&BN852^-5mIThw!4j|1IO27=2!$K6yTml7F-~ax}>{KQn zjE2;Xz?@;%>N~$rG97V&c+7&{K$p>Y#^~L7Cb$Xw{ErmEDfhcxH^RoXMF^p8&I4{Q zxRJ`)US#I2eyHR#ESu;RU?yxh-ZOLm3(FF9_x?mxK=kz9&3dZ0L&1z8uv*~egMsD8 zd)R?N6h_bl5S7nlEzr1Es~V=hBY@**wzB?9AT$HY%MG=k_y=&W!NR0AJkVX#dURK~ z_2?_Gpf0HyL{)>vU6ICNaT?DSsfHClwJam54_rP4XwZ=jbBfkyMAasONq0b2&-iAz zBvH5gX{-OjyP?a+_H(P4zygd3HYa(W*-1Y$Yw;KR?s)h$5h#jE-$y08_f<%$sdOf7 z_$KU5AS}l0v`x4-Fg$zlYTz4XY8HKy`fjHgzkGsvIoKYcseu!oae!Q=Y8%(}ec|C< zoEbp@x~w>~BB;^Six{6>uj#+KrjZ|wE4j8-`G01;LAUvP8La~Av50E6zu%( zZY|w^R=t)Fm)B;i7OZi~W-o%i6Ra$VVl8{NmL1voxX>*yAjzj}sjk!d6ucbxl|v0H zpBijfwOJHk8)-|xibe~OjME1Qpjh+UKQ3v0dkbg-j|+CHR{8pk0ANTN33RsnE7<-1 z>mZ_t(1Vpgg{5|`!W&TAnw=gBb)0;o;?SSI6~1`*ub=^P<-=l{CUUA~50uWpwR{i} z@h5!Hn literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square310x310Logo.png b/frontend/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ca0ad132e0184b64cd2e4a38cfceab3c4b3a46 GIT binary patch literal 28507 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square44x44Logo.png b/frontend/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8756459b63d6e8dd6003b97613befbe2743441cb GIT binary patch literal 3419 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square71x71Logo.png b/frontend/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8023cc824417a29378a68471b8fb3af33fdeb0 GIT binary patch literal 6027 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�rop@t+= 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 V#?y`xQ)U1F002ovPDHLkV1n!EW;y@> literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/StoreLogo.png b/frontend/src-tauri/icons/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..17d142c0a43208db62ca28b86a3239329ac93aea GIT binary patch literal 3971 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/icon.icns b/frontend/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..a2993adc87ff15230d919da5a3a6600f0892b48d GIT binary patch literal 277003 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
j#(n6`cTK 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, + backend_bootstrap_error: Mutex>, +} + +struct RuntimePaths { + app_data_dir: PathBuf, + log_root_dir: PathBuf, + runtime_log_dir: PathBuf, + bot_log_file: PathBuf, + ocr_log_file: PathBuf, + ocr_save_dir: PathBuf, + blocked_row_cache_file: PathBuf, +} + +struct BackendLaunchPlan { + program: PathBuf, + args: Vec, + working_dir: PathBuf, + envs: HashMap, +} + +fn project_root() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .and_then(|p| p.parent()) + .map(|p| p.to_path_buf()) + .expect("project root not found") +} + +fn backend_python() -> PathBuf { + project_root().join(".venv").join("Scripts").join("python.exe") +} + +fn backend_entry() -> PathBuf { + project_root().join("backend_main.py") +} + +fn normalize_mode(value: &str) -> String { + let mode = value.trim().to_ascii_lowercase(); + match mode.as_str() { + "release" | "prod" | "production" | "bundle" | "packaged" => "release".to_string(), + _ => "dev".to_string(), + } +} + +fn backend_mode() -> String { + std::env::var("OPENCLAW_BACKEND_MODE") + .map(|value| normalize_mode(&value)) + .unwrap_or_else(|_| { + if cfg!(debug_assertions) { + "dev".to_string() + } else { + "release".to_string() + } + }) +} + +fn backend_addr() -> String { + std::env::var("APP_HOST") + .map(|host| { + let port = std::env::var("APP_PORT").unwrap_or_else(|_| "5000".to_string()); + format!("{}:{}", host, port) + }) + .unwrap_or_else(|_| "127.0.0.1:5000".to_string()) +} + +fn is_backend_alive() -> bool { + TcpStream::connect(backend_addr()).is_ok() +} + +fn wait_for_backend(child: &mut Child, timeout: Duration) -> Result<(), String> { + let started = Instant::now(); + while started.elapsed() < timeout { + if is_backend_alive() { + return Ok(()); + } + if let Ok(Some(status)) = child.try_wait() { + return Err(format!("独立后台进程已退出,退出码: {}", status)); + } + thread::sleep(Duration::from_millis(200)); + } + Err(format!("后台启动超时,未监听 {}", backend_addr())) +} + +fn ensure_dir(path: &Path) -> Result<(), String> { + std::fs::create_dir_all(path).map_err(|err| format!("创建目录失败 {}: {}", path.display(), err)) +} + +fn resolve_runtime_paths(app: &AppHandle) -> Result { + let app_data_dir = app + .path() + .app_local_data_dir() + .map_err(|err| format!("获取应用数据目录失败: {}", err))?; + let log_root_dir = app_data_dir.join("logs"); + let runtime_log_dir = log_root_dir.join("runtime"); + let bot_log_file = runtime_log_dir.join("bot").join("wechat_multi_chat_bot.log"); + let ocr_log_file = runtime_log_dir.join("ocr").join("wechat_ocr.log"); + let ocr_save_dir = log_root_dir.join("ocr_debug_images"); + let blocked_row_cache_file = log_root_dir.join("state").join("blocked_rows.json"); + + ensure_dir(&app_data_dir)?; + ensure_dir(&runtime_log_dir.join("bot"))?; + ensure_dir(&runtime_log_dir.join("ocr"))?; + ensure_dir(&ocr_save_dir)?; + ensure_dir( + blocked_row_cache_file + .parent() + .ok_or_else(|| "状态缓存目录无效".to_string())?, + )?; + + Ok(RuntimePaths { + app_data_dir, + log_root_dir, + runtime_log_dir, + bot_log_file, + ocr_log_file, + ocr_save_dir, + blocked_row_cache_file, + }) +} + +fn runtime_envs(app: &AppHandle, mode: &str) -> Result, String> { + let paths = resolve_runtime_paths(app)?; + let mut envs = HashMap::new(); + envs.insert("APP_NAME".to_string(), "AiShiliu".to_string()); + envs.insert("APP_DATA_DIR".to_string(), paths.app_data_dir.display().to_string()); + envs.insert("LOG_ROOT_DIR".to_string(), paths.log_root_dir.display().to_string()); + envs.insert( + "RUNTIME_LOG_DIR".to_string(), + paths.runtime_log_dir.display().to_string(), + ); + envs.insert("BOT_LOG_FILE".to_string(), paths.bot_log_file.display().to_string()); + envs.insert("OCR_LOG_FILE".to_string(), paths.ocr_log_file.display().to_string()); + envs.insert("OCR_SAVE_DIR".to_string(), paths.ocr_save_dir.display().to_string()); + envs.insert( + "BLOCKED_ROW_CACHE_FILE".to_string(), + paths.blocked_row_cache_file.display().to_string(), + ); + + envs.insert("OPENCLAW_BACKEND_MODE".to_string(), mode.to_string()); + envs.insert("OPENCLAW_RUNTIME_MODE".to_string(), mode.to_string()); + Ok(envs) +} + +fn release_backend_candidates(app: &AppHandle) -> Result, String> { + let resource_dir = app + .path() + .resource_dir() + .map_err(|err| format!("获取资源目录失败: {}", err))?; + let exe_dir = std::env::current_exe() + .map_err(|err| format!("获取主程序路径失败: {}", err))? + .parent() + .map(Path::to_path_buf) + .ok_or_else(|| "无法解析主程序目录".to_string())?; + + Ok(vec![ + resource_dir.join("backend").join("backend.exe"), + resource_dir.join("backend.exe"), + exe_dir.join("resources").join("backend").join("backend.exe"), + exe_dir.join("resources").join("backend.exe"), + exe_dir.join("backend").join("backend.exe"), + exe_dir.join("backend.exe"), + ]) +} + +fn release_working_dir(app: &AppHandle) -> Result { + let resource_dir = app + .path() + .resource_dir() + .map_err(|err| format!("获取资源目录失败: {}", err))?; + Ok(resource_dir) +} + +fn resolve_backend_launch_plan(app: &AppHandle) -> Result { + let mode = backend_mode(); + let envs = runtime_envs(app, &mode)?; + + if mode == "release" { + let candidates = release_backend_candidates(app)?; + let program = candidates + .into_iter() + .find(|candidate| candidate.exists()) + .ok_or_else(|| "未找到发布态后端程序 backend.exe".to_string())?; + let working_dir = release_working_dir(app)?; + return Ok(BackendLaunchPlan { + program, + args: Vec::new(), + working_dir, + envs, + }); + } + + let python = backend_python(); + if !python.exists() { + return Err(format!("未找到后端解释器: {}", python.display())); + } + let entry = backend_entry(); + if !entry.exists() { + return Err(format!("未找到后端入口: {}", entry.display())); + } + Ok(BackendLaunchPlan { + program: python, + args: vec![entry], + working_dir: project_root(), + envs, + }) +} + +fn spawn_backend(app: &AppHandle) -> Result<(), String> { + if is_backend_alive() { + return Ok(()); + } + + let plan = resolve_backend_launch_plan(app)?; + let mut command = Command::new(&plan.program); + command.current_dir(&plan.working_dir); + for arg in &plan.args { + command.arg(arg); + } + for (key, value) in &plan.envs { + command.env(key, value); + } + command + .env("OPENCLAW_PROJECT_VENV_REEXEC", "1") + .stdout(Stdio::null()) + .stderr(Stdio::null()); + + let mut child = command + .spawn() + .map_err(|err| format!("启动后台失败: {}", err))?; + if let Err(err) = wait_for_backend(&mut child, Duration::from_secs(20)) { + let _ = child.kill(); + let _ = child.wait(); + return Err(err); + } + let state = app.state::(); + let mut guard = state + .backend_child + .lock() + .map_err(|_| "后台状态锁定失败".to_string())?; + *guard = Some(child); + Ok(()) +} + +fn ps_single_quote(value: &str) -> String { + format!("'{}'", value.replace('\'', "''")) +} + +fn cleanup_orphan_backend_processes(app: &AppHandle, mode: &str) { + let script = if mode == "release" { + let targets = release_backend_candidates(app) + .unwrap_or_default() + .into_iter() + .map(|path| ps_single_quote(&path.display().to_string())) + .collect::>() + .join(","); + if targets.is_empty() { + return; + } + format!("$targets=@({}); Get-CimInstance Win32_Process | Where-Object {{ $_.ExecutablePath -and ($targets -contains $_.ExecutablePath) }} | ForEach-Object {{ Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }}", targets) + } else { + "Get-CimInstance Win32_Process | Where-Object { $_.Name -ieq 'python.exe' -and $_.CommandLine -match 'backend_main.py' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }".to_string() + }; + let _ = Command::new("powershell") + .arg("-NoProfile") + .arg("-ExecutionPolicy") + .arg("Bypass") + .arg("-Command") + .arg(script) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .status(); +} + +fn terminate_backend(app: &AppHandle) { + if let Some(state) = app.try_state::() { + if let Ok(mut guard) = state.backend_child.lock() { + if let Some(mut child) = guard.take() { + let _ = child.kill(); + let _ = child.wait(); + } + } + } + cleanup_orphan_backend_processes(app, &backend_mode()); +} + +#[tauri::command] +fn open_devtools(app: AppHandle) -> Result<(), String> { + let webview = app + .get_webview_window("main") + .ok_or_else(|| "未找到主窗口".to_string())?; + webview.open_devtools(); + Ok(()) +} + +#[tauri::command] +fn get_backend_bootstrap_error(app: AppHandle) -> Result, String> { + let state = app.state::(); + let guard = state + .backend_bootstrap_error + .lock() + .map_err(|_| "后台启动错误状态锁定失败".to_string())?; + Ok(guard.clone()) +} + +#[tauri::command] +fn restart_backend(app: AppHandle) -> Result<(), String> { + terminate_backend(&app); + spawn_backend(&app)?; + Ok(()) +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .manage(AppState { + backend_child: Mutex::new(None), + backend_bootstrap_error: Mutex::new(None), + }) + .invoke_handler(tauri::generate_handler![open_devtools, get_backend_bootstrap_error, restart_backend]) + .setup(|app| { + if cfg!(debug_assertions) { + app.handle().plugin( + tauri_plugin_log::Builder::default() + .level(log::LevelFilter::Info) + .build(), + )?; + } + if let Err(err) = spawn_backend(app.handle()) { + if let Ok(mut guard) = app.state::().backend_bootstrap_error.lock() { + *guard = Some(err.clone()); + } + } + Ok(()) + }) + .build(tauri::generate_context!()) + .expect("error while building tauri application") + .run(|app, event| { + if matches!(event, RunEvent::Exit | RunEvent::ExitRequested { .. }) { + terminate_backend(app); + } + }); +} diff --git a/frontend/src-tauri/src/main.rs b/frontend/src-tauri/src/main.rs new file mode 100644 index 0000000..ad5fe83 --- /dev/null +++ b/frontend/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + app_lib::run(); +} diff --git a/frontend/src-tauri/tauri.conf.json b/frontend/src-tauri/tauri.conf.json new file mode 100644 index 0000000..651ddb0 --- /dev/null +++ b/frontend/src-tauri/tauri.conf.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "识流 AI 助手", + "version": "0.1.0", + "identifier": "com.shiliu.aiassistant", + "build": { + "frontendDist": "../dist", + "devUrl": "http://localhost:1420", + "beforeDevCommand": "npm run dev", + "beforeBuildCommand": "" + }, + "app": { + "windows": [ + { + "title": "识流 AI 助手", + "width": 1280, + "height": 920, + "minWidth": 1100, + "minHeight": 760, + "resizable": true, + "fullscreen": false, + "decorations": false + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "resources": [ + "resources/**/*" + ], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "android": { + "debugApplicationIdSuffix": ".debug" + }, + "windows": { + "wix": { + "language": "zh-CN" + } + } + } +} diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..cb8cafe --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,149 @@ + + + diff --git a/frontend/src/api/bot.js b/frontend/src/api/bot.js new file mode 100644 index 0000000..502165f --- /dev/null +++ b/frontend/src/api/bot.js @@ -0,0 +1,43 @@ +import { getJson, postForm, postJson } from './http' + +export function getBotStatus() { + return getJson('/api/bot/status') +} + +export function getLogEvents(params = {}) { + const query = new URLSearchParams() + Object.entries(params).forEach(([key, value]) => { + if (value === undefined || value === null || value === '') return + query.set(key, String(value)) + }) + const suffix = query.toString() ? `?${query.toString()}` : '' + return getJson(`/api/logs/v2/events${suffix}`) +} + +export function getLogSummary(limit = 300) { + return getJson(`/api/logs/v2/summary?limit=${encodeURIComponent(limit)}`) +} + +export function getLogTrace(traceId) { + return getJson(`/api/logs/v2/trace/${encodeURIComponent(traceId)}`) +} + +export function getBotLogs(kind = 'bot', limit = 80) { + return getLogEvents({ module: kind, size: limit, page: 1 }) +} + +export function getLogEventJson(eventId) { + return getJson(`/api/logs/v2/event/${encodeURIComponent(eventId)}`) +} + +export function clearLogs(module = '') { + return postJson('/api/logs/v2/clear', { module }) +} + +export function startBot() { + return postForm('/api/bot/start', {}) +} + +export function stopBot() { + return postForm('/api/bot/stop', {}) +} diff --git a/frontend/src/api/client.js b/frontend/src/api/client.js new file mode 100644 index 0000000..439d5bb --- /dev/null +++ b/frontend/src/api/client.js @@ -0,0 +1 @@ +export { getJson, postForm } from './http' diff --git a/frontend/src/api/http.js b/frontend/src/api/http.js new file mode 100644 index 0000000..28554e8 --- /dev/null +++ b/frontend/src/api/http.js @@ -0,0 +1,57 @@ +const DEFAULT_BACKEND_ORIGIN = 'http://127.0.0.1:5000' + +function normalizePath(path) { + if (!path) return '/' + return path.startsWith('/') ? path : `/${path}` +} + +function isAbsoluteUrl(url) { + return /^https?:\/\//i.test(String(url || '')) +} + +function getConfiguredBackendOrigin() { + const raw = String(window.__APP_BACKEND_URL || '').trim() + if (!raw) return '' + return raw.endsWith('/') ? raw.slice(0, -1) : raw +} + +export function isTauriRuntime() { + return !!window.__TAURI_INTERNALS__ +} + +export function resolveApiUrl(path) { + if (isAbsoluteUrl(path)) return path + const normalizedPath = normalizePath(path) + const backendOrigin = getConfiguredBackendOrigin() + if (backendOrigin) return `${backendOrigin}${normalizedPath}` + if (isTauriRuntime()) return `${DEFAULT_BACKEND_ORIGIN}${normalizedPath}` + return normalizedPath +} + +export async function getJson(url) { + const resp = await fetch(resolveApiUrl(url)) + return resp.json() +} + +export async function postForm(url, payload) { + const body = new URLSearchParams(payload) + const resp = await fetch(resolveApiUrl(url), { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body, + }) + return resp.json() +} + +export async function postJson(url, payload) { + const resp = await fetch(resolveApiUrl(url), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload || {}), + }) + return resp.json() +} + +export function createEventSource(url) { + return new EventSource(resolveApiUrl(url)) +} diff --git a/frontend/src/api/messages.js b/frontend/src/api/messages.js new file mode 100644 index 0000000..7c5b9ea --- /dev/null +++ b/frontend/src/api/messages.js @@ -0,0 +1,5 @@ +import { getJson } from './http' + +export function getRecentMessages(limit = 50) { + return getJson(`/api/rules?action=messages_recent&limit=${limit}`) +} diff --git a/frontend/src/api/rules.js b/frontend/src/api/rules.js new file mode 100644 index 0000000..88aa02c --- /dev/null +++ b/frontend/src/api/rules.js @@ -0,0 +1,17 @@ +import { getJson, postForm } from './http' + +export function getRules() { + return getJson('/api/rules?action=list') +} + +export function createRule(payload) { + return postForm('/api/rules', { action: 'create', ...payload }) +} + +export function toggleRule(payload) { + return postForm('/api/rules', { action: 'toggle', ...payload }) +} + +export function deleteRule(id) { + return postForm('/api/rules', { action: 'delete', id }) +} diff --git a/frontend/src/api/settings.js b/frontend/src/api/settings.js new file mode 100644 index 0000000..8d9c98f --- /dev/null +++ b/frontend/src/api/settings.js @@ -0,0 +1,9 @@ +import { getJson, postForm } from './http' + +export function getSettings() { + return getJson('/api/rules?action=settings_get') +} + +export function saveSettings(payload) { + return postForm('/api/rules', { action: 'settings_set', ...payload }) +} diff --git a/frontend/src/components/AppTopBar.vue b/frontend/src/components/AppTopBar.vue new file mode 100644 index 0000000..2ecb13e --- /dev/null +++ b/frontend/src/components/AppTopBar.vue @@ -0,0 +1,55 @@ + + + diff --git a/frontend/src/components/RuntimeBadge.vue b/frontend/src/components/RuntimeBadge.vue new file mode 100644 index 0000000..1dbab65 --- /dev/null +++ b/frontend/src/components/RuntimeBadge.vue @@ -0,0 +1,18 @@ + + + diff --git a/frontend/src/composables/useBotStatus.js b/frontend/src/composables/useBotStatus.js new file mode 100644 index 0000000..a0d91d3 --- /dev/null +++ b/frontend/src/composables/useBotStatus.js @@ -0,0 +1,177 @@ +import { computed, onBeforeUnmount, ref } from 'vue' +import { getBotStatus, startBot, stopBot } from '../api/bot' +import { createEventSource } from '../api/http' + +export function useBotStatus(settings, loadSettings, message) { + const statusEventSource = ref(null) + const statusFallbackTimer = ref(null) + const statusHealthTimer = ref(null) + const statusConnecting = ref(false) + const lastStatusStreamAt = ref(0) + + const runtimeText = computed(() => { + if (settings.listener_runtime_status === 'running') return '运行中' + if (settings.listener_runtime_status === 'starting') return '启动中' + if (settings.listener_runtime_status === 'stopping') return '停止中' + if (settings.listener_runtime_status === 'error') return '异常' + return '已停止' + }) + + const runtimeTagType = computed(() => { + if (settings.listener_runtime_status === 'running') return 'success' + if (settings.listener_runtime_status === 'starting' || settings.listener_runtime_status === 'stopping') return 'warning' + if (settings.listener_runtime_status === 'error') return 'error' + return 'default' + }) + + function applyBotStatus(bot, fallbackEnabled) { + const nextStatus = String(bot?.status || 'stopped').toLowerCase() + settings.listener_runtime_status = nextStatus + if (nextStatus === 'running' || nextStatus === 'starting') settings.listener_enabled = true + else if (nextStatus === 'stopped' || nextStatus === 'error') settings.listener_enabled = false + else settings.listener_enabled = !!fallbackEnabled + + if (nextStatus === 'error') { + const detail = String(bot?.last_error || '').trim().split('\n').slice(-1)[0] || '' + if (detail && detail !== lastNotifiedError.value) { + lastNotifiedError.value = detail + message.error(`监听启动异常: ${detail}`) + } else if (!detail && lastNotifiedError.value !== '__unknown__') { + lastNotifiedError.value = '__unknown__' + message.error('监听启动异常,请检查微信环境、日志与配置') + } + } + } + + async function refreshBotStatus() { + const bot = await getBotStatus() + if (bot.success) applyBotStatus(bot, settings.listener_enabled) + } + + function touchStatusStream() { + lastStatusStreamAt.value = Date.now() + } + + function clearStatusFallbackTimer() { + if (statusFallbackTimer.value) { + clearInterval(statusFallbackTimer.value) + statusFallbackTimer.value = null + } + } + + function clearStatusHealthTimer() { + if (statusHealthTimer.value) { + clearInterval(statusHealthTimer.value) + statusHealthTimer.value = null + } + } + + function closeStatusStream({ reconnect = false } = {}) { + clearStatusFallbackTimer() + clearStatusHealthTimer() + if (statusEventSource.value) { + const source = statusEventSource.value + statusEventSource.value = null + source.onopen = null + source.onerror = null + source.close() + } + statusConnecting.value = false + if (reconnect) { + connectBotStatusStream(true) + } + } + + function ensureStatusFallbackPolling() { + if (statusFallbackTimer.value) return + statusFallbackTimer.value = setInterval(() => { + refreshBotStatus().catch(() => {}) + }, 15000) + } + + function startStatusHealthCheck() { + if (statusHealthTimer.value) return + statusHealthTimer.value = setInterval(() => { + const lastAt = lastStatusStreamAt.value || 0 + if (!statusEventSource.value) { + connectBotStatusStream() + return + } + if (lastAt && Date.now() - lastAt <= 45000) { + return + } + ensureStatusFallbackPolling() + closeStatusStream({ reconnect: true }) + }, 10000) + } + + function connectBotStatusStream(force = false) { + if (statusConnecting.value) return + if (statusEventSource.value && !force) return + if (statusEventSource.value && force) { + closeStatusStream() + } + statusConnecting.value = true + try { + const source = createEventSource('/api/bot/status/stream') + statusEventSource.value = source + source.addEventListener('status', (event) => { + touchStatusStream() + try { + const payload = JSON.parse(event.data || '{}') + if (payload.success) { + applyBotStatus(payload, settings.listener_enabled) + } + clearStatusFallbackTimer() + } catch (_) { + } + }) + source.addEventListener('ping', () => { + touchStatusStream() + clearStatusFallbackTimer() + }) + source.onopen = () => { + statusConnecting.value = false + touchStatusStream() + clearStatusFallbackTimer() + } + source.onerror = () => { + statusConnecting.value = false + ensureStatusFallbackPolling() + } + } catch (_) { + statusConnecting.value = false + ensureStatusFallbackPolling() + } + } + + async function onListenerChange(value) { + try { + settings.listener_enabled = !!value + settings.listener_runtime_status = value ? 'starting' : 'stopping' + const data = await (value ? startBot() : stopBot()) + if (!data.success) throw new Error(data.error || '操作失败') + settings.listener_runtime_status = data.status || (value ? 'running' : 'stopped') + settings.listener_enabled = data.status === 'running' || data.status === 'starting' + await loadSettings() + } catch (error) { + message.error(`监听切换失败: ${error}`) + await loadSettings() + } + } + + onBeforeUnmount(() => { + closeStatusStream() + }) + + return { + runtimeText, + runtimeTagType, + refreshBotStatus, + connectBotStatusStream, + startStatusHealthCheck, + onListenerChange, + closeStatusStream, + applyBotStatus, + } +} diff --git a/frontend/src/composables/useMessages.js b/frontend/src/composables/useMessages.js new file mode 100644 index 0000000..1bc2c50 --- /dev/null +++ b/frontend/src/composables/useMessages.js @@ -0,0 +1,25 @@ +import { ref } from 'vue' +import { getRecentMessages } from '../api/messages' + +export function useMessages(message) { + const loadingMessages = ref(false) + const messages = ref([]) + + async function loadMessages(limit = 50) { + loadingMessages.value = true + try { + const data = await getRecentMessages(limit) + messages.value = data.data || [] + } catch (error) { + message.error(`加载消息失败: ${error}`) + } finally { + loadingMessages.value = false + } + } + + return { + loadingMessages, + messages, + loadMessages, + } +} diff --git a/frontend/src/composables/useRulesManager.js b/frontend/src/composables/useRulesManager.js new file mode 100644 index 0000000..62e5f19 --- /dev/null +++ b/frontend/src/composables/useRulesManager.js @@ -0,0 +1,132 @@ +import { computed, h, reactive, ref } from 'vue' +import { NButton, NSpace, NTag } from 'naive-ui' +import { createRule, deleteRule, getRules, toggleRule } from '../api/rules' + +export function useRulesManager(message) { + const loadingRules = ref(false) + const creatingRule = ref(false) + const showCreateRuleModal = ref(false) + const rules = ref([]) + const filters = reactive({ keyword: '', match_type: '', status: '' }) + const createForm = reactive({ keyword: '', match_type: 'contain', reply_text: '' }) + + const filteredRules = computed(() => { + return rules.value.filter((row) => { + if (filters.keyword && !String(row.keyword || '').toLowerCase().includes(filters.keyword.toLowerCase())) return false + if (filters.match_type && row.match_type !== filters.match_type) return false + if (filters.status !== '' && Number(row.is_active) !== Number(filters.status)) return false + return true + }) + }) + + async function loadRules() { + loadingRules.value = true + try { + const data = await getRules() + rules.value = data.data || [] + } catch (error) { + message.error(`加载规则失败: ${error}`) + } finally { + loadingRules.value = false + } + } + + async function submitCreateRule() { + if (!createForm.keyword.trim() || !createForm.reply_text.trim()) { + message.warning('请填写关键词和回复内容') + return + } + creatingRule.value = true + try { + const data = await createRule({ + keyword: createForm.keyword.trim(), + match_type: createForm.match_type, + reply_text: createForm.reply_text.trim(), + }) + if (!data.success) { + message.error(data.message || '新增失败') + return + } + message.success('新增成功') + createForm.keyword = '' + createForm.reply_text = '' + showCreateRuleModal.value = false + await loadRules() + } catch (error) { + message.error(`新增失败: ${error}`) + } finally { + creatingRule.value = false + } + } + + async function handleToggleRule(row) { + try { + const data = await toggleRule({ + id: String(row.id), + is_active: Number(row.is_active) === 1 ? '0' : '1', + }) + if (!data.success) { + message.error(data.message || '切换失败') + return + } + await loadRules() + } catch (error) { + message.error(`切换失败: ${error}`) + } + } + + async function handleDeleteRule(row) { + try { + const data = await deleteRule(String(row.id)) + if (!data.success) { + message.error(data.message || '删除失败') + return + } + message.success('删除成功') + await loadRules() + } catch (error) { + message.error(`删除失败: ${error}`) + } + } + + function resetFilters() { + filters.keyword = '' + filters.match_type = '' + filters.status = '' + loadRules() + } + + const ruleColumns = [ + { title: '关键词', key: 'keyword', minWidth: 140 }, + { title: '匹配方式', key: 'match_type', width: 120, render: (row) => row.match_type === 'equal' ? '完全匹配' : '包含' }, + { title: '回复内容', key: 'reply_text', minWidth: 220 }, + { + title: '状态', key: 'is_active', width: 110, + render: (row) => h(NTag, { type: Number(row.is_active) === 1 ? 'success' : 'default', bordered: false, round: true }, { + default: () => Number(row.is_active) === 1 ? '启用' : '暂停', + }), + }, + { + title: '操作', key: 'actions', width: 190, + render: (row) => h(NSpace, { size: 8 }, { + default: () => [ + h(NButton, { size: 'small', secondary: true, type: Number(row.is_active) === 1 ? 'warning' : 'success', onClick: () => handleToggleRule(row) }, { default: () => Number(row.is_active) === 1 ? '停用' : '启用' }), + h(NButton, { size: 'small', secondary: true, type: 'error', onClick: () => handleDeleteRule(row) }, { default: () => '删除' }), + ], + }), + }, + ] + + return { + loadingRules, + creatingRule, + showCreateRuleModal, + filters, + createForm, + filteredRules, + ruleColumns, + loadRules, + submitCreateRule, + resetFilters, + } +} diff --git a/frontend/src/composables/useSettings.js b/frontend/src/composables/useSettings.js new file mode 100644 index 0000000..677e8ce --- /dev/null +++ b/frontend/src/composables/useSettings.js @@ -0,0 +1,44 @@ +import { reactive } from 'vue' +import { getSettings, saveSettings as saveSettingsApi } from '../api/settings' + +export function useSettings(message) { + const settings = reactive({ + auto_reply_enabled: false, + listener_enabled: false, + listener_runtime_status: 'stopped', + full_auto_reply_enabled: false, + reply_fallback_mode: 'ai', + }) + + async function loadSettings(applyBotStatus) { + try { + const data = await getSettings() + if (!data.success) return + settings.auto_reply_enabled = !!data.auto_reply_enabled + settings.full_auto_reply_enabled = !!data.full_auto_reply_enabled + settings.reply_fallback_mode = data.reply_fallback_mode || 'ai' + applyBotStatus({ status: data.listener_runtime_status || 'stopped' }, data.listener_enabled) + } catch (error) { + message.error(`加载设置失败: ${error}`) + } + } + + async function saveSettings(payload, applyBotStatus) { + try { + const data = await saveSettingsApi(payload) + if (!data.success) { + message.error(data.message || '保存失败') + return + } + await loadSettings(applyBotStatus) + } catch (error) { + message.error(`保存失败: ${error}`) + } + } + + return { + settings, + loadSettings, + saveSettings, + } +} diff --git a/frontend/src/composables/useWindowBridge.js b/frontend/src/composables/useWindowBridge.js new file mode 100644 index 0000000..9022454 --- /dev/null +++ b/frontend/src/composables/useWindowBridge.js @@ -0,0 +1,94 @@ +import { ref } from 'vue' + +let tauriWindow = null +let tauriCore = null + +async function ensureTauriModules() { + if (tauriWindow && tauriCore) return true + if (!window.__TAURI_INTERNALS__) return false + try { + const [{ getCurrentWindow }, { invoke }] = await Promise.all([ + import('@tauri-apps/api/window'), + import('@tauri-apps/api/core'), + ]) + tauriWindow = getCurrentWindow() + tauriCore = { invoke } + return true + } catch { + return false + } +} + +export function useWindowBridge() { + const windowBridge = ref(null) + const bridgeMode = ref('browser') + + async function initWindowBridge() { + if (window.qt && window.QWebChannel) { + bridgeMode.value = 'qt' + new window.QWebChannel(window.qt.webChannelTransport, (channel) => { + windowBridge.value = channel.objects.windowBridge || null + }) + return + } + if (await ensureTauriModules()) { + bridgeMode.value = 'tauri' + return + } + bridgeMode.value = 'browser' + } + + async function invoke(methodName) { + const bridge = windowBridge.value + if (bridge && typeof bridge[methodName] === 'function') { + bridge[methodName]() + return + } + if (!(await ensureTauriModules())) return + if (methodName === 'start_move') { + await tauriWindow.startDragging() + return + } + if (methodName === 'minimize') { + await tauriWindow.minimize() + return + } + if (methodName === 'maximize_or_restore') { + const maximized = await tauriWindow.isMaximized() + if (maximized) { + await tauriWindow.unmaximize() + } else { + await tauriWindow.maximize() + } + return + } + if (methodName === 'close_window') { + await tauriWindow.close() + return + } + if (methodName === 'open_devtools') { + try { + await tauriCore.invoke('open_devtools') + } catch { + } + return + } + if (methodName === 'restart_app') { + try { + await tauriCore.invoke('restart_backend') + } catch { + } + } + } + + return { + bridgeMode, + initWindowBridge, + startMove: () => invoke('start_move'), + minimizeWindow: () => invoke('minimize'), + maximizeOrRestore: () => invoke('maximize_or_restore'), + closeWindow: () => invoke('close_window'), + openDevtools: () => invoke('open_devtools'), + restartApp: () => invoke('restart_app'), + } +} diff --git a/frontend/src/constants/messageColumns.js b/frontend/src/constants/messageColumns.js new file mode 100644 index 0000000..775dc11 --- /dev/null +++ b/frontend/src/constants/messageColumns.js @@ -0,0 +1,10 @@ +import { formatDateTime } from '../utils/datetime' + +export const messageColumns = [ + { title: '时间', key: 'created_at', width: 180, render: (row) => formatDateTime(row.created_at) }, + { title: '微信用户', key: 'wx_nickname', width: 180 }, + { title: '方向', key: 'direction', width: 90, render: (row) => row.direction === 'out' ? '发送' : '接收' }, + { title: '内容', key: 'content', minWidth: 320 }, + { title: '气泡方向', key: 'ocr_bubble_side', width: 100 }, + { title: '置信度', key: 'ocr_confidence', width: 90 }, +] diff --git a/frontend/src/constants/options.js b/frontend/src/constants/options.js new file mode 100644 index 0000000..34f6cdf --- /dev/null +++ b/frontend/src/constants/options.js @@ -0,0 +1,21 @@ +export const fallbackModeOptions = [ + { label: 'AI兜底回复', value: 'ai' }, + { label: '不回复', value: 'none' }, +] + +export const matchTypeOptions = [ + { label: '包含', value: 'contain' }, + { label: '完全匹配', value: 'equal' }, +] + +export const matchTypeFilterOptions = [ + { label: '全部匹配方式', value: '' }, + { label: '包含', value: 'contain' }, + { label: '完全匹配', value: 'equal' }, +] + +export const ruleStatusOptions = [ + { label: '全部状态', value: '' }, + { label: '启用', value: 1 }, + { label: '暂停', value: 0 }, +] diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 0000000..3ac6bb7 --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,33 @@ +import { createApp } from 'vue' +import { createDiscreteApi } from 'naive-ui' +import App from './App.vue' +import './styles.css' + +function loadQtWebChannelScript() { + return new Promise((resolve, reject) => { + if (window.QWebChannel) { + resolve() + return + } + const script = document.createElement('script') + script.src = 'qrc:///qtwebchannel/qwebchannel.js' + script.onload = () => resolve() + script.onerror = reject + document.head.appendChild(script) + }) +} + +async function bootstrap() { + if (window.qt && !window.QWebChannel) { + try { + await loadQtWebChannelScript() + } catch (_) { + } + } + + const { message } = createDiscreteApi(['message']) + window.$message = message + createApp(App).mount('#app') +} + +bootstrap() diff --git a/frontend/src/styles.css b/frontend/src/styles.css new file mode 100644 index 0000000..8b1af62 --- /dev/null +++ b/frontend/src/styles.css @@ -0,0 +1,299 @@ +:root { + --bg: #f2f4f7; + --panel: #ffffff; + --line: #e5e7eb; + --text: #111827; + --muted: #6b7280; + --brand: #22c1c3; +} + +* { + box-sizing: border-box; +} + +html, +body, +#app { + height: 100%; +} + +body { + margin: 0; + background: linear-gradient(180deg, #f5f7fb 0%, #eef2f7 100%); + color: var(--text); + font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif; + overflow: hidden; +} + +button, +input, +select, +textarea { + font: inherit; +} + +.page-shell { + height: 100vh; + overflow: hidden; +} + +.content-root { + height: calc(100vh - 48px); + overflow: hidden; + display: flex; + flex-direction: column; +} + +.content-scroll { + flex: 1; + min-height: 0; + overflow: hidden; + display: flex; + flex-direction: column; +} + +.topbar { + height: 48px; + background: rgba(255, 255, 255, 0.92); + border-bottom: 1px solid var(--line); + backdrop-filter: blur(8px); + position: sticky; + top: 0; + z-index: 20; + user-select: none; +} + +.drag-region { + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + cursor: default; +} + +.inner { + width: min(1320px, calc(100vw - 24px)); + margin: 0 auto; +} + +.window-actions { + display: flex; + align-items: center; + gap: 4px; +} + +.win-btn { + width: 32px; + height: 28px; + border-radius: 8px; + border: 1px solid #e7ecf2; + background: #fff; + color: #4b5563; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 14px; + line-height: 1; + cursor: pointer; +} + +.win-btn:hover { + background: #f5f7fb; +} + +.win-btn.close:hover { + background: #fee2e2; + color: #991b1b; + border-color: #fecaca; +} + +.panel { + background: var(--panel); + border: 1px solid #edf0f4; + border-radius: 14px; + box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04); +} + +.hero { + background: linear-gradient(120deg, rgba(34, 193, 195, 0.15), rgba(124, 58, 237, 0.08)); + border: 1px solid #dff4f5; +} + +.tab-wrap { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; + background: #fff; + border: 1px solid #e8ecf2; + border-radius: 12px; + padding: 8px 12px 0; + box-shadow: 0 6px 14px rgba(15, 23, 42, 0.03); + overflow: hidden; +} + +.app-tabs, +.app-tabs .n-tabs-nav-scroll-content, +.app-tabs .n-tabs-pane-wrapper, +.app-tabs .n-tab-pane, +.app-tab-pane { + min-height: 0; +} + +.app-tabs { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; +} + +.app-tabs .n-tabs-nav { + flex: 0 0 auto; +} + +.app-tabs .n-tabs-pane-wrapper { + flex: 1; + min-height: 0; +} + +.app-tabs .n-tab-pane, +.app-tab-pane { + height: 100%; + display: flex; + flex-direction: column; +} + +.app-tab-pane > * { + flex: 1; + min-height: 0; +} + +.label-title { + font-weight: 600; + font-size: 14px; + color: #1f2937; +} + +.label-desc { + font-size: 12px; + color: #6b7280; + margin-top: 2px; +} + +.row-line { + border-bottom: 1px dashed #edf1f5; + padding: 14px 0; +} + +.row-line:last-child { + border-bottom: 0; +} + +.compact-card .n-card-header { + padding-bottom: 8px !important; +} + +.compact-card .n-card__content { + padding-top: 0 !important; +} + +.panel-view-shell { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; + gap: 16px; +} + +.logs-view-shell { + flex: 1; + min-height: 0; + padding: 12px 0; +} + +.log-panel { + flex: 1; + min-height: 0; + height: 100%; + display: flex; + flex-direction: column; +} + +.log-panel .n-card__content { + flex: 1; + min-height: 0; + height: 100%; + display: flex; + flex-direction: column; +} + +.log-panel .n-card-header { + flex: 0 0 auto; +} + +.log-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 12px; + flex-wrap: wrap; +} + +.log-toolbar-right { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} + +.log-path { + color: #6b7280; + font-size: 12px; + max-width: 520px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.log-stream-wrap { + height: clamp(320px, calc(100vh - 320px), 680px); + min-height: 320px; + max-height: 680px; + border: 1px solid #e6ebf2; + border-radius: 12px; + background: #0f172a; + overflow-y: auto; + overflow-x: hidden; +} + +.log-stream { + margin: 0; + padding: 14px 16px; + font-size: 12px; + line-height: 1.6; + white-space: pre-wrap; + word-break: break-word; + font-family: Consolas, "SFMono-Regular", Monaco, monospace; +} + +.log-line { + white-space: pre-wrap; +} + +.log-line--error { + color: #fca5a5; +} + +.log-line--warning { + color: #fde68a; +} + +.log-line--info { + color: #bfdbfe; +} + +.log-line--debug { + color: #cbd5e1; +} diff --git a/frontend/src/utils/datetime.js b/frontend/src/utils/datetime.js new file mode 100644 index 0000000..e2a13df --- /dev/null +++ b/frontend/src/utils/datetime.js @@ -0,0 +1,12 @@ +export function formatDateTime(value) { + if (!value) return '' + const d = new Date(value) + if (Number.isNaN(d.getTime())) return String(value) + const y = d.getFullYear() + const m = String(d.getMonth() + 1).padStart(2, '0') + const day = String(d.getDate()).padStart(2, '0') + const hh = String(d.getHours()).padStart(2, '0') + const mm = String(d.getMinutes()).padStart(2, '0') + const ss = String(d.getSeconds()).padStart(2, '0') + return `${y}-${m}-${day} ${hh}:${mm}:${ss}` +} diff --git a/frontend/src/views/LogsView.vue b/frontend/src/views/LogsView.vue new file mode 100644 index 0000000..f1c92bf --- /dev/null +++ b/frontend/src/views/LogsView.vue @@ -0,0 +1,228 @@ + + + diff --git a/frontend/src/views/MessagesView.vue b/frontend/src/views/MessagesView.vue new file mode 100644 index 0000000..cf589a5 --- /dev/null +++ b/frontend/src/views/MessagesView.vue @@ -0,0 +1,31 @@ + + + diff --git a/frontend/src/views/PanelView.vue b/frontend/src/views/PanelView.vue new file mode 100644 index 0000000..cb0bad8 --- /dev/null +++ b/frontend/src/views/PanelView.vue @@ -0,0 +1,115 @@ + + + diff --git a/frontend/src/views/RulesView.vue b/frontend/src/views/RulesView.vue new file mode 100644 index 0000000..3d1a91d --- /dev/null +++ b/frontend/src/views/RulesView.vue @@ -0,0 +1,76 @@ + + + diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..bb747ed --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,17 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue()], + server: { + host: 'localhost', + port: 1420, + proxy: { + '/api': 'http://127.0.0.1:5000', + }, + }, + build: { + outDir: 'dist', + emptyOutDir: true, + }, +}) diff --git a/legacy/.htaccess b/legacy/.htaccess new file mode 100644 index 0000000..e69de29 diff --git a/legacy/README_BOT.md b/legacy/README_BOT.md new file mode 100644 index 0000000..8e70f92 --- /dev/null +++ b/legacy/README_BOT.md @@ -0,0 +1,143 @@ +# 微信 AI 自动回复机器人 - 安装使用指南 + +## 📦 安装依赖 + +```bash +pip install wcferry requests +``` + +## 🚀 快速开始 + +### 1. 启动 PHP 后端服务 +确保 phpstudy 已启动,访问 http://127.0.0.1/shiliu_ai/admin.html 确认后端正常 + +### 2. 登录微信 +在电脑上打开微信并登录(必须是 Windows 微信客户端) + +### 3. 运行机器人 +```bash +python wechat_bot.py +``` + +## ✨ 功能特性 + +### 新版本 (wechat_bot.py) - 推荐使用 ✅ +- ✅ 基于 WeChatFerry 框架 +- ✅ 无需 OCR,100% 准确识别消息 +- ✅ 不需要固定窗口位置 +- ✅ 自动回复私聊消息 +- ✅ 可选开启群聊回复 +- ✅ 支持 DeepSeek AI 智能回复 +- ✅ 支持关键词规则匹配 +- ✅ 所有消息记录到数据库 + +### 旧版本 (wechat_auto.py) - 已保留 +- 基于 OCR 识别 +- 需要固定窗口位置 +- 识别准确率较低 +- 仅供参考学习 + +### 手动测试版 (wechat_manual.py) +- 手动输入消息测试 AI 回复 +- 用于调试和测试 + +## ⚙️ 配置说明 + +### 修改 wechat_bot.py 中的配置: + +```python +# PHP 后端接口地址 +BACKEND_URL = "http://127.0.0.1/shiliu_ai/api_receive_message.php" + +# 是否自动回复群聊(默认只回复私聊) +ENABLE_GROUP_REPLY = False # 改为 True 可开启群聊回复 +``` + +### 修改 config.php 配置 AI: + +```php +// 选择 AI 提供商:mock / openai / deepseek +define('AI_PROVIDER', 'deepseek'); + +// DeepSeek API 配置 +define('DEEPSEEK_API_KEY', '你的API密钥'); +define('DEEPSEEK_API_BASE', 'https://api.deepseek.com'); +define('DEEPSEEK_MODEL', 'deepseek-chat'); +``` + +## 📝 使用流程 + +1. **接收消息** → 机器人自动监听微信消息 +2. **规则匹配** → 先检查是否有关键词规则 +3. **AI 回复** → 没有规则则调用 DeepSeek 生成回复 +4. **自动发送** → 将回复发送给用户 +5. **记录保存** → 所有消息保存到数据库 + +## 🎯 管理后台 + +访问 http://127.0.0.1/shiliu_ai/admin.html 可以: +- 查看消息记录 +- 管理自动回复规则 +- 配置系统设置 + +## 🔧 常见问题 + +### Q: 提示 "WeChatFerry 初始化失败" +**A:** 确保: +1. 微信已经登录 +2. 已安装 wcferry: `pip install wcferry` +3. 使用的是 Windows 微信客户端 + +### Q: 机器人没有回复 +**A:** 检查: +1. PHP 后端是否正常运行 +2. 查看日志文件 `wechat_bot.log` +3. 确认 DeepSeek API Key 是否正确 + +### Q: 想要回复群聊消息 +**A:** 修改 `wechat_bot.py` 中的配置: +```python +ENABLE_GROUP_REPLY = True +``` + +### Q: 如何添加关键词规则 +**A:** 访问管理后台 admin.html,在"自动回复规则"中添加 + +## 📂 文件说明 + +``` +shiliu_ai/ +├── wechat_bot.py # 新版机器人(推荐使用)⭐ +├── wechat_auto.py # 旧版 OCR 机器人(已保留) +├── wechat_manual.py # 手动测试工具 +├── config.php # 配置文件 +├── ai_helper.php # AI 调用逻辑 +├── api_receive_message.php # 消息接收接口 +├── admin.html # 管理后台 +├── database.sql # 数据库结构 +└── wechat_bot.log # 运行日志 +``` + +## 🎉 开始使用 + +```bash +# 1. 安装依赖 +pip install wcferry requests + +# 2. 确保微信已登录 + +# 3. 启动机器人 +python wechat_bot.py + +# 4. 发送消息测试 +``` + +## 📞 技术支持 + +如有问题,请查看日志文件: +- `wechat_bot.log` - 机器人运行日志 +- `wechat_auto.log` - 旧版机器人日志(如果使用) + +--- + +**祝使用愉快!🎊** diff --git a/legacy/ai_helper.php b/legacy/ai_helper.php new file mode 100644 index 0000000..cd47ece --- /dev/null +++ b/legacy/ai_helper.php @@ -0,0 +1,310 @@ +query($sql); + $rules = $stmt->fetchAll(); + + $contentLower = mb_strtolower($content, 'UTF-8'); + error_log("=== 规则匹配开始 ==="); + error_log("用户消息原文: '{$content}'"); + error_log("转小写后: '{$contentLower}'"); + error_log("规则总数: " . count($rules)); + + foreach ($rules as $rule) { + $keyword = trim((string)$rule['keyword']); + if ($keyword === '') { + error_log("规则ID {$rule['id']}: 关键词为空,跳过"); + continue; + } + $kwLower = mb_strtolower($keyword, 'UTF-8'); + error_log("规则ID {$rule['id']}: 关键词='{$keyword}', 小写='{$kwLower}', 类型={$rule['match_type']}"); + + if ($rule['match_type'] === 'equal') { + if ($contentLower === $kwLower) { + error_log("✓ 完全匹配成功!返回规则ID {$rule['id']}"); + return $rule; + } else { + error_log("✗ 完全匹配失败: '{$contentLower}' !== '{$kwLower}'"); + } + } else { // contain + if (mb_strpos($contentLower, $kwLower, 0, 'UTF-8') !== false) { + error_log("✓ 包含匹配成功!返回规则ID {$rule['id']}"); + return $rule; + } else { + error_log("✗ 包含匹配失败"); + } + } + } + + error_log("未找到任何匹配规则"); + error_log("=== 规则匹配结束 ==="); + return null; +} + +/** + * 简单系统配置读取 / 写入 + */ +function get_setting(string $key, $default = null) +{ + $pdo = get_pdo(); + $stmt = $pdo->prepare("SELECT `value` FROM settings WHERE `key` = :k LIMIT 1"); + $stmt->execute([':k' => $key]); + $row = $stmt->fetch(); + if (!$row) { + return $default; + } + return $row['value']; +} + +function set_setting(string $key, string $value): void +{ + $pdo = get_pdo(); + $stmt = $pdo->prepare(" + INSERT INTO settings(`key`, `value`, updated_at) + VALUES(:k, :v, NOW()) + ON DUPLICATE KEY UPDATE `value` = VALUES(`value`), updated_at = NOW() + "); + $stmt->execute([':k' => $key, ':v' => $value]); +} + +/** + * 调用大模型 API(这里以 OpenAI 为例) + * 如你用国内模型,可在此处替换调用逻辑。 + */ +function call_ai(string $prompt, string $userId = ''): string +{ + error_log("=== 调用AI开始 ==="); + error_log("用户消息: '{$prompt}'"); + error_log("AI提供商: " . AI_PROVIDER); + + if (AI_PROVIDER === 'mock') { + return '【自动回复】你刚才说了:' . mb_substr($prompt, 0, 100, 'UTF-8'); + } + + // OpenAI 兼容接口 + if (AI_PROVIDER === 'openai') { + $url = rtrim(OPENAI_API_BASE, '/') . '/chat/completions'; + $headers = [ + 'Content-Type: application/json', + 'Authorization: ' . 'Bearer ' . OPENAI_API_KEY, + ]; + + $payload = [ + 'model' => OPENAI_MODEL, + 'messages' => [ + [ + 'role' => 'system', + 'content' => '你是一个专业的微信私域运营助手,用简洁自然的中文回复用户。', + ], + [ + 'role' => 'user', + 'content' => $prompt, + ], + ], + 'temperature' => 0.7, + 'user' => $userId ?: null, + ]; + + return do_llm_request($url, $headers, $payload); + } + + // DeepSeek(OpenAI 兼容风格) + if (AI_PROVIDER === 'deepseek') { + $url = rtrim(DEEPSEEK_API_BASE, '/') . '/chat/completions'; + error_log("请求URL: {$url}"); + $headers = [ + 'Content-Type: application/json', + 'Authorization: Bearer ' . DEEPSEEK_API_KEY, + ]; + + $payload = [ + 'model' => DEEPSEEK_MODEL, + 'messages' => [ + [ + 'role' => 'system', + 'content' => '你是一个简洁高效的微信助手。回复要求:1.一句话回答,不超过50字 2.不要啰嗦重复 3.直接回答问题,不要客套话 4.不要使用emoji表情', + ], + [ + 'role' => 'user', + 'content' => $prompt, + ], + ], + 'temperature' => 0.7, + 'max_tokens' => 100, // 限制回复长度 + 'user' => $userId ?: null, + ]; + + return do_llm_request($url, $headers, $payload); + } + + // Dify(对话型应用) + if (AI_PROVIDER === 'dify') { + $url = rtrim(DIFY_API_BASE, '/') . '/chat-messages'; + error_log("请求URL: {$url}"); + $headers = [ + 'Content-Type: application/json', + 'Authorization: Bearer ' . DIFY_API_KEY, + ]; + + $payload = [ + 'inputs' => (object)[], + 'query' => $prompt, + 'response_mode' => 'streaming', + 'user' => $userId ?: DIFY_USER, + 'conversation_id' => '', + ]; + + error_log("Dify payload: " . json_encode($payload, JSON_UNESCAPED_UNICODE)); + return do_dify_request($url, $headers, $payload); + } + + // 其他厂商可在此扩展 + return 'AI_PROVIDER 未配置正确,请检查 config.php。'; +} + +/** + * Dify 专用请求封装 + */ +function do_dify_request(string $url, array $headers, array $payload): string +{ + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 增加超时时间,支持streaming + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($ch, CURLOPT_BUFFERSIZE, 128); // 小缓冲区,支持流式读取 + curl_setopt($ch, CURLOPT_NOPROGRESS, false); // 允许进度回调 + + $response = curl_exec($ch); + if ($response === false) { + $err = curl_error($ch); + curl_close($ch); + error_log("cURL错误: {$err}"); + return '抱歉,Dify 服务暂时不可用,请稍后再试~(网络错误:' . $err . ')'; + } + $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + error_log("HTTP状态码: {$statusCode}"); + error_log("响应内容长度: " . strlen($response)); + error_log("响应内容: {$response}"); + + // 处理空响应 + if (empty($response)) { + error_log("Dify返回空响应"); + return '抱歉,Dify 服务返回空响应,请检查API配置。'; + } + + // 处理streaming模式的响应(SSE格式) + if (strpos($response, 'data:') !== false || strpos($response, 'event:') !== false) { + error_log("检测到streaming模式响应"); + $lines = explode("\n", $response); + $fullAnswer = ''; + + foreach ($lines as $line) { + $line = trim($line); + if (strpos($line, 'data:') === 0) { + $jsonStr = trim(substr($line, 5)); + if (empty($jsonStr) || $jsonStr === '[DONE]') { + continue; + } + + $data = json_decode($jsonStr, true); + if (json_last_error() === JSON_ERROR_NONE) { + // Dify streaming格式:{"event":"message","answer":"内容"} + if (isset($data['answer'])) { + $fullAnswer .= $data['answer']; + } + // 或者 {"event":"agent_message","answer":"内容"} + if (isset($data['event']) && $data['event'] === 'agent_message' && isset($data['answer'])) { + $fullAnswer .= $data['answer']; + } + } + } + } + + if (!empty($fullAnswer)) { + error_log("Dify回复(streaming): {$fullAnswer}"); + error_log("=== 调用AI结束 ==="); + return trim($fullAnswer); + } + } + + // 处理blocking模式的响应(JSON格式) + $data = json_decode($response, true); + if ($statusCode >= 400 || !is_array($data)) { + $msg = $data['message'] ?? '未知错误'; + error_log("Dify API错误: {$msg}"); + return '抱歉,Dify 服务请求失败,请稍后再试~(状态码 ' . $statusCode . ':' . $msg . ')'; + } + + // Dify 返回格式:{"answer": "回复内容", "conversation_id": "xxx"} + $content = $data['answer'] ?? ''; + if (!$content) { + error_log("Dify返回内容为空"); + error_log("完整响应: " . print_r($data, true)); + return '抱歉,Dify 暂时没有合理的回复。'; + } + error_log("Dify回复(blocking): {$content}"); + error_log("=== 调用AI结束 ==="); + return trim($content); +} + +/** + * 通用大模型 HTTP 请求封装 + */ +function do_llm_request(string $url, array $headers, array $payload): string +{ + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 增加超时时间,支持streaming + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($ch, CURLOPT_BUFFERSIZE, 128); // 小缓冲区,支持流式读取 + curl_setopt($ch, CURLOPT_NOPROGRESS, false); // 允许进度回调 + + $response = curl_exec($ch); + if ($response === false) { + $err = curl_error($ch); + curl_close($ch); + error_log("cURL错误: {$err}"); + return '抱歉,AI 服务暂时不可用,请稍后再试~(网络错误:' . $err . ')'; + } + $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + error_log("HTTP状态码: {$statusCode}"); + error_log("响应内容: {$response}"); + + $data = json_decode($response, true); + if ($statusCode >= 400 || !is_array($data)) { + $msg = $data['error']['message'] ?? '未知错误'; + error_log("API错误: {$msg}"); + return '抱歉,AI 服务请求失败,请稍后再试~(状态码 ' . $statusCode . ':' . $msg . ')'; + } + + $content = $data['choices'][0]['message']['content'] ?? ''; + if (!$content) { + error_log("AI返回内容为空"); + return '抱歉,AI 暂时没有合理的回复。'; + } + error_log("AI回复: {$content}"); + error_log("=== 调用AI结束 ==="); + return trim($content); +} diff --git a/legacy/ai_helper_backup.txt b/legacy/ai_helper_backup.txt new file mode 100644 index 0000000000000000000000000000000000000000..c2f938f60f655231588c9b160a3069b657e742d1 GIT binary patch literal 20540 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 W65Y1xWNNnf0xk8X54ceI&%XdfEEJdk literal 0 HcmV?d00001 diff --git a/legacy/api_receive_message.php b/legacy/api_receive_message.php new file mode 100644 index 0000000..a57e9b9 --- /dev/null +++ b/legacy/api_receive_message.php @@ -0,0 +1,97 @@ + 'Method not allowed'], 405); +} + +$raw = file_get_contents('php://input'); +$data = json_decode($raw, true); +if (!is_array($data)) { + $data = $_POST; // 兼容表单 +} + +$content = trim((string)($data['content'] ?? '')); +$wxUserId = trim((string)($data['wx_user_id'] ?? '')); +$wxNickname = trim((string)($data['wx_nickname'] ?? '')); +$isFriendRequest = (int)($data['is_friend_request'] ?? 0); + +if ($content === '' && !$isFriendRequest) { + json_response(['error' => 'content is empty'], 400); +} + +try { + $pdo = get_pdo(); + $pdo->beginTransaction(); + + // 记录收到的消息 + $stmt = $pdo->prepare(" + INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_friend_request, created_at) + VALUES (:uid, :nick, 'in', :content, :fr, NOW()) + "); + $stmt->execute([ + ':uid' => $wxUserId, + ':nick' => $wxNickname, + ':content' => $content, + ':fr' => $isFriendRequest, + ]); + $inMsgId = (int)$pdo->lastInsertId(); + + $autoOn = get_setting('auto_reply_enabled', '1') === '1'; + $replyText = ''; + $usedRuleId = null; + + if ($autoOn) { + // 先规则匹配 + $rule = find_rule_reply($content); + if ($rule) { + $replyText = (string)$rule['reply_text']; + $usedRuleId = (int)$rule['id']; + // 调试信息 + error_log("匹配到规则ID: {$usedRuleId}, 关键词: {$rule['keyword']}, 回复: {$replyText}"); + } else { + // 没有规则就走 AI + error_log("未匹配到规则,调用AI,用户消息: {$content}"); + $replyText = call_ai($content, $wxUserId); + error_log("AI返回: {$replyText}"); + } + } + + $shouldReply = $autoOn && $replyText !== ''; + $replyMsgId = null; + + if ($shouldReply) { + $stmt2 = $pdo->prepare(" + INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_ai_reply, rule_id, created_at) + VALUES (:uid, :nick, 'out', :content, :is_ai, :rule_id, NOW()) + "); + $stmt2->execute([ + ':uid' => $wxUserId, + ':nick' => $wxNickname, + ':content' => $replyText, + ':is_ai' => 1, + ':rule_id' => $usedRuleId, + ]); + $replyMsgId = (int)$pdo->lastInsertId(); + } + + $pdo->commit(); + + json_response([ + 'success' => true, + 'should_reply' => $shouldReply, + 'reply_text' => $replyText, + 'in_message_id' => $inMsgId, + 'reply_message_id' => $replyMsgId, + ]); +} catch (Throwable $e) { + if (isset($pdo) && $pdo->inTransaction()) { + $pdo->rollBack(); + } + json_response(['error' => 'server_error', 'message' => $e->getMessage()], 500); +} + + diff --git a/legacy/api_rules.php b/legacy/api_rules.php new file mode 100644 index 0000000..27997dc --- /dev/null +++ b/legacy/api_rules.php @@ -0,0 +1,99 @@ +query("SELECT * FROM auto_reply_rules ORDER BY id DESC"); + $rules = $stmt->fetchAll(); + json_response(['success' => true, 'data' => $rules]); + break; + + case 'create': + $keyword = trim((string)($_POST['keyword'] ?? '')); + $matchType = $_POST['match_type'] ?? 'contain'; + $replyText = trim((string)($_POST['reply_text'] ?? '')); + $isActive = (int)($_POST['is_active'] ?? 1); + + if ($keyword === '' || $replyText === '') { + json_response(['success' => false, 'message' => '关键词和回复内容不能为空']); + } + + if (!in_array($matchType, ['contain', 'equal'], true)) { + $matchType = 'contain'; + } + + $stmt = $pdo->prepare(" + INSERT INTO auto_reply_rules(keyword, match_type, reply_text, is_active, created_at, updated_at) + VALUES(:kw, :mt, :rt, :act, NOW(), NOW()) + "); + $stmt->execute([ + ':kw' => $keyword, + ':mt' => $matchType, + ':rt' => $replyText, + ':act' => $isActive, + ]); + json_response(['success' => true]); + break; + + case 'toggle': + $id = (int)($_POST['id'] ?? 0); + $isActive = (int)($_POST['is_active'] ?? 0); + if ($id <= 0) { + json_response(['success' => false, 'message' => '参数错误']); + } + $stmt = $pdo->prepare("UPDATE auto_reply_rules SET is_active = :act, updated_at = NOW() WHERE id = :id"); + $stmt->execute([':act' => $isActive, ':id' => $id]); + json_response(['success' => true]); + break; + + case 'delete': + $id = (int)($_POST['id'] ?? 0); + if ($id <= 0) { + json_response(['success' => false, 'message' => '参数错误']); + } + $stmt = $pdo->prepare("DELETE FROM auto_reply_rules WHERE id = :id"); + $stmt->execute([':id' => $id]); + json_response(['success' => true]); + break; + + case 'settings_get': + $autoOn = get_setting('auto_reply_enabled', '1'); + json_response(['success' => true, 'auto_reply_enabled' => $autoOn === '1']); + break; + + case 'settings_set': + $autoOn = ($_POST['auto_reply_enabled'] ?? '1') === '1' ? '1' : '0'; + set_setting('auto_reply_enabled', $autoOn); + json_response(['success' => true]); + break; + + case 'messages_recent': + $limit = max(1, min(100, (int)($_GET['limit'] ?? 50))); + $stmt = $pdo->prepare(" + SELECT * FROM messages + ORDER BY id DESC + LIMIT :lim + "); + $stmt->bindValue(':lim', $limit, PDO::PARAM_INT); + $stmt->execute(); + $rows = $stmt->fetchAll(); + json_response(['success' => true, 'data' => $rows]); + break; + + default: + json_response(['success' => false, 'message' => '未知操作']); + } +} catch (Throwable $e) { + json_response(['success' => false, 'message' => $e->getMessage()]); +} + + diff --git a/legacy/config.php b/legacy/config.php new file mode 100644 index 0000000..0569e29 --- /dev/null +++ b/legacy/config.php @@ -0,0 +1,44 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]; + + $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); + return $pdo; +} + + diff --git a/legacy/install_ocr.bat b/legacy/install_ocr.bat new file mode 100644 index 0000000..18cb19b --- /dev/null +++ b/legacy/install_ocr.bat @@ -0,0 +1,33 @@ +@echo off +chcp 65001 +echo ======================================== +echo 安装OCR微信机器人依赖 +echo ======================================== +echo. + +echo [1/5] 安装基础依赖... +pip install pillow pyautogui pyperclip opencv-python numpy requests -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [2/5] 安装PaddleOCR(推荐,准确率最高)... +pip install paddlepaddle paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [3/5] 备用:安装EasyOCR... +pip install easyocr -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [4/5] 安装键盘控制库... +pip install keyboard -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo ======================================== +echo 安装完成! +echo ======================================== +echo. +echo 使用方法: +echo 1. 打开微信并登录 +echo 2. 打开要自动回复的聊天窗口 +echo 3. 运行: python wechat_bot_fixed.py +echo. +pause diff --git a/legacy/install_wechat_bot.bat b/legacy/install_wechat_bot.bat new file mode 100644 index 0000000..9584abf --- /dev/null +++ b/legacy/install_wechat_bot.bat @@ -0,0 +1,37 @@ +@echo off +chcp 65001 +echo ======================================== +echo 安装微信自动回复依赖 +echo ======================================== +echo. + +echo [1/3] 安装UI自动化库(推荐)... +pip install uiautomation pyperclip requests -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [2/3] 安装OCR版本依赖(备用)... +pip install opencv-python numpy pillow pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [3/3] 安装PaddleOCR(可选)... +pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo ======================================== +echo 安装完成! +echo ======================================== +echo. +echo 使用方法: +echo. +echo 方案1:UI自动化版(推荐) +echo - 无需OCR,直接读取微信UI +echo - 不受窗口位置影响 +echo - 识别准确率100%% +echo 运行: python wechat_ui_bot.py +echo. +echo 方案2:OCR识别版(备用) +echo - 使用图像识别 +echo - 需要固定窗口位置 +echo 运行: python wechat_auto.py +echo. +pause diff --git a/legacy/nginx.htaccess b/legacy/nginx.htaccess new file mode 100644 index 0000000..cc2badf --- /dev/null +++ b/legacy/nginx.htaccess @@ -0,0 +1,6 @@ +location / { + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?s=$1 last; + break; + } +} \ No newline at end of file diff --git a/legacy/run_all.py b/legacy/run_all.py new file mode 100644 index 0000000..34933fc --- /dev/null +++ b/legacy/run_all.py @@ -0,0 +1,31 @@ +import os +import time +import threading +import webbrowser + +import py_backend +from wechat_multi_chat_bot import WechatMultiChatBot + +HOST = os.getenv("APP_HOST", "127.0.0.1") +PORT = int(os.getenv("APP_PORT", "5000")) +OPEN_BROWSER = os.getenv("OPEN_BROWSER", "1") == "1" + + +def run_backend(): + py_backend.start_backend(host=HOST, port=PORT) + + +def run_bot(): + bot = WechatMultiChatBot() + bot.run_forever() + + +if __name__ == "__main__": + backend_thread = threading.Thread(target=run_backend, daemon=True) + backend_thread.start() + + time.sleep(1.5) + if OPEN_BROWSER: + webbrowser.open(f"http://{HOST}:{PORT}/admin.html") + + run_bot() diff --git a/legacy/test_dify.php b/legacy/test_dify.php new file mode 100644 index 0000000..7ef87fd --- /dev/null +++ b/legacy/test_dify.php @@ -0,0 +1,57 @@ + (object)[], // 空对象 + 'query' => '你好', + 'response_mode' => 'blocking', + 'user' => DIFY_USER, +]; + +echo "请求数据:\n"; +echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; + +$ch = curl_init($url); +curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); +curl_setopt($ch, CURLOPT_POST, true); +curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +curl_setopt($ch, CURLOPT_TIMEOUT, 30); +curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); +curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + +echo "发送请求...\n"; +$response = curl_exec($ch); +$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); +curl_close($ch); + +echo "HTTP状态码: {$statusCode}\n"; +echo "响应内容:\n"; +echo $response . "\n\n"; + +if ($statusCode == 200) { + $data = json_decode($response, true); + if (isset($data['answer'])) { + echo "✓ 成功!AI回复: " . $data['answer'] . "\n"; + } else { + echo "✗ 响应格式错误\n"; + } +} else { + echo "✗ 请求失败\n"; +} diff --git a/legacy/test_dify_v2.php b/legacy/test_dify_v2.php new file mode 100644 index 0000000..8ae0d6e --- /dev/null +++ b/legacy/test_dify_v2.php @@ -0,0 +1,81 @@ + (object)[], // 空对象 + 'query' => '你好', + 'response_mode' => 'blocking', + 'user' => DIFY_USER, +]; + +echo "请求数据:\n"; +echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; + +$ch = curl_init($url); +curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); +curl_setopt($ch, CURLOPT_POST, true); +curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +curl_setopt($ch, CURLOPT_TIMEOUT, 30); +curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); +curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); +curl_setopt($ch, CURLOPT_VERBOSE, true); // 开启详细输出 + +echo "发送请求...\n"; +$response = curl_exec($ch); +$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); +$error = curl_error($ch); +curl_close($ch); + +echo "HTTP状态码: {$statusCode}\n"; +echo "响应内容长度: " . strlen($response) . " 字节\n"; + +if ($error) { + echo "cURL错误: {$error}\n"; +} + +echo "\n响应内容:\n"; +if (empty($response)) { + echo "(空响应)\n\n"; +} else { + echo $response . "\n\n"; +} + +if ($statusCode == 200) { + if (empty($response)) { + echo "✗ 响应为空\n\n"; + echo "可能的原因:\n"; + echo "1. Dify应用未发布或已停用\n"; + echo "2. API Key不正确\n"; + echo "3. response_mode='blocking' 不支持(试试改成 'streaming')\n"; + echo "4. Dify服务器问题\n"; + } else { + $data = json_decode($response, true); + if (json_last_error() !== JSON_ERROR_NONE) { + echo "✗ JSON解析失败: " . json_last_error_msg() . "\n"; + } elseif (isset($data['answer'])) { + echo "✓ 成功!AI回复: " . $data['answer'] . "\n"; + } else { + echo "✗ 响应格式错误\n"; + echo "JSON内容: " . print_r($data, true) . "\n"; + } + } +} else { + echo "✗ 请求失败(HTTP {$statusCode})\n"; +} diff --git a/legacy/wechat_bot_optimized.py b/legacy/wechat_bot_optimized.py new file mode 100644 index 0000000..fcc1f4e --- /dev/null +++ b/legacy/wechat_bot_optimized.py @@ -0,0 +1,486 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +微信自动回复机器人 - 优化版 +整合开源项目优点: +1. 快速红点检测(numpy矩阵运算,比逐像素快100倍) +2. 智能区域过滤(只检测特定X坐标范围) +3. 性能统计(详细的耗时分析) +""" + +import os +import time +import hashlib +import logging +import base64 +from datetime import datetime +from io import BytesIO +import cv2 +import numpy as np + +import requests +import pyperclip +import pyautogui +from PIL import ImageGrab +import uiautomation as auto + +# ========== 配置 ========== + +BAIDU_API_KEY = "ElIQN30iAqpEGi9zv0VlrtQX" +BAIDU_SECRET_KEY = "7wrO2wDTx7FehuelgG0NCBDFOklnqSz0" +BACKEND_URL = "http://127.0.0.1/shiliu_ai/api_receive_message.php" +LOOP_INTERVAL = 3 + +# 红点检测配置(借鉴开源项目的精确检测) +RED_DOT_CONFIG = { + 'target_color_bgr': np.array([81, 81, 255]), # 微信红点BGR颜色 + 'color_tolerance': 10, # 颜色容差 + 'x_range': (60, 200), # 检测区域X坐标范围 +} + +NO_REPLY_KEYWORDS = [ + "谢谢", "好的", "嗯", "哦", "ok", "收到", + "[图片]", "[语音]", "[视频]", "[文件]" +] + +# ========== 日志 ========== + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[ + logging.FileHandler("wechat_bot_optimized.log", encoding="utf-8"), + logging.StreamHandler() + ], +) +logger = logging.getLogger(__name__) + +# ========== OCR类 ========== + +class BaiduOCR: + """百度OCR识别""" + + def __init__(self): + self.access_token = self._get_access_token() + logger.info("✓ 百度OCR初始化成功") + + def _get_access_token(self): + url = "https://aip.baidubce.com/oauth/2.0/token" + params = { + "grant_type": "client_credentials", + "client_id": BAIDU_API_KEY, + "client_secret": BAIDU_SECRET_KEY + } + response = requests.post(url, params=params) + return response.json().get("access_token") + + def recognize(self, image_bytes): + url = f"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={self.access_token}" + + payload = { + 'image': base64.b64encode(image_bytes).decode('utf-8'), + 'detect_direction': 'false', + 'paragraph': 'false', + 'probability': 'false' + } + + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Accept': 'application/json' + } + + response = requests.post(url, headers=headers, data=payload) + result = response.json() + + if 'words_result' in result: + return [item['words'] for item in result['words_result']] + return [] + +# ========== 微信机器人类(优化版)========== + +class WechatBotOptimized: + """微信自动回复机器人 - 优化版""" + + def __init__(self): + self.ocr = BaiduOCR() + self.processed_messages = {} + self.running = False + self.performance_stats = { + 'red_dot_detect': [], + 'ocr_recognize': [], + 'total_process': [] + } + + def get_window_rect(self): + """获取微信窗口位置""" + try: + wechat_window = auto.WindowControl(searchDepth=1, Name="微信") + if wechat_window.Exists(0, 0): + rect = wechat_window.BoundingRectangle + return { + 'left': rect.left, + 'top': rect.top, + 'right': rect.right, + 'bottom': rect.bottom, + 'width': rect.right - rect.left, + 'height': rect.bottom - rect.top + } + except Exception as e: + logger.error(f"获取窗口失败: {e}") + return None + + def get_contact_list_rect(self, window_rect): + """获取联系人列表区域""" + left = window_rect['left'] + 10 + top = window_rect['top'] + 50 + right = window_rect['left'] + int(window_rect['width'] * 0.25) - 10 + bottom = window_rect['bottom'] - 50 + + return { + 'left': left, + 'top': top, + 'right': right, + 'bottom': bottom + } + + def detect_red_dots_fast(self, window_rect): + """ + 快速红点检测(借鉴开源项目) + 使用numpy矩阵运算,比逐像素遍历快100倍 + """ + start_time = time.time() + contact_rect = self.get_contact_list_rect(window_rect) + + try: + # 截图 + screenshot = ImageGrab.grab(bbox=( + contact_rect['left'], contact_rect['top'], + contact_rect['right'], contact_rect['bottom'] + )) + + # 转换为numpy数组(BGR格式) + img_np = np.array(screenshot) + img_bgr = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR) + + # 获取配置 + target_color = RED_DOT_CONFIG['target_color_bgr'] + tolerance = RED_DOT_CONFIG['color_tolerance'] + x_range = RED_DOT_CONFIG['x_range'] + + # 生成坐标网格(性能优化关键!) + height, width = img_bgr.shape[:2] + x_coords, y_coords = np.meshgrid( + np.arange(width), + np.arange(height) + ) + + # 颜色匹配(矩阵运算,比循环快100倍) + lower_bound = target_color - tolerance + upper_bound = target_color + tolerance + color_mask = np.all((lower_bound <= img_bgr) & (img_bgr <= upper_bound), axis=-1) + + # 区域过滤(只检测特定X坐标范围) + region_mask = (x_coords >= x_range[0]) & (x_coords <= x_range[1]) + + # 获取候选坐标 + matched_points = np.column_stack(( + x_coords[color_mask & region_mask], + y_coords[color_mask & region_mask] + )) + + if matched_points.size == 0: + return [] + + # 按Y坐标分组(同一联系人的多个红点合并) + red_dots = [] + used = set() + + for i, point in enumerate(matched_points): + if i in used: + continue + + # 找到Y坐标相近的点 + group = [point] + for j, other in enumerate(matched_points): + if j != i and j not in used: + if abs(point[1] - other[1]) < 50: + group.append(other) + used.add(j) + + # 计算平均位置 + avg_x = int(np.mean([p[0] for p in group])) + avg_y = int(np.mean([p[1] for p in group])) + + red_dots.append({ + 'x': contact_rect['left'] + avg_x, + 'y': contact_rect['top'] + avg_y + }) + used.add(i) + + # 记录性能 + elapsed = time.time() - start_time + self.performance_stats['red_dot_detect'].append(elapsed) + + return red_dots + + except Exception as e: + logger.error(f"红点检测失败: {e}") + return [] + + def click_contact_by_red_dot(self, red_dot, window_rect): + """点击联系人""" + contact_rect = self.get_contact_list_rect(window_rect) + + click_x = (contact_rect['left'] + contact_rect['right']) // 2 + click_y = red_dot['y'] + + pyautogui.click(click_x, click_y) + time.sleep(2.5) + + logger.info(f"点击联系人位置: ({click_x}, {click_y})") + + def get_latest_message_area(self, window_rect): + """获取最新消息区域""" + chat_left = window_rect['left'] + int(window_rect['width'] * 0.30) + chat_right = window_rect['right'] - 20 + chat_top = window_rect['top'] + int(window_rect['height'] * 0.15) + chat_bottom = window_rect['bottom'] - int(window_rect['height'] * 0.20) + + return { + 'left': chat_left, + 'top': max(chat_bottom - 300, chat_top), + 'right': chat_right, + 'bottom': chat_bottom + } + + def process_current_chat(self, window_rect, contact_key): + """处理当前聊天""" + start_time = time.time() + msg_rect = self.get_latest_message_area(window_rect) + + try: + screenshot = ImageGrab.grab(bbox=( + msg_rect['left'], msg_rect['top'], + msg_rect['right'], msg_rect['bottom'] + )) + + # OCR识别 + ocr_start = time.time() + img_byte_arr = BytesIO() + screenshot.save(img_byte_arr, format='PNG') + img_bytes = img_byte_arr.getvalue() + + lines = self.ocr.recognize(img_bytes) + ocr_elapsed = time.time() - ocr_start + self.performance_stats['ocr_recognize'].append(ocr_elapsed) + + if not lines: + return False + + # 过滤消息(严格过滤) + import re + valid_lines = [] + for line in lines: + if len(line) < 3: + continue + if re.match(r'^\d{1,2}:\d{2}$', line): + continue + if any(char in line for char in ['©', 'ò', 'v0', 'V0']): + continue + valid_lines.append(line) + + if not valid_lines: + return False + + latest = valid_lines[-1] + + print(f" [识别] {latest}") + + # 判断是否需要回复 + if not self.should_reply(latest): + print(f" [跳过] 不需要回复") + return False + + if not self.is_new_message(latest, contact_key): + print(f" [跳过] 已处理") + return False + + print(f" [新消息] {latest}") + + # 获取AI回复 + reply = self.get_ai_reply(latest) + if reply: + print(f" [AI回复] {reply}") + self.send_message(reply, window_rect) + + # 记录性能 + total_elapsed = time.time() - start_time + self.performance_stats['total_process'].append(total_elapsed) + + return True + + return False + + except Exception as e: + logger.error(f"处理聊天失败: {e}") + return False + + def should_reply(self, message): + """判断是否需要回复""" + if not message or len(message) < 2: + return False + + for keyword in NO_REPLY_KEYWORDS: + if keyword in message: + return False + + return True + + def is_new_message(self, message, contact_key): + """判断是否为新消息""" + msg_hash = hashlib.md5(message.encode()).hexdigest() + + if contact_key in self.processed_messages: + if msg_hash in self.processed_messages[contact_key]: + return False + else: + self.processed_messages[contact_key] = set() + + self.processed_messages[contact_key].add(msg_hash) + return True + + def get_ai_reply(self, message): + """获取AI回复""" + try: + response = requests.post( + BACKEND_URL, + json={'message': message}, + timeout=10 + ) + + if response.status_code == 200: + data = response.json() + return data.get('reply', '') + except Exception as e: + logger.error(f"AI回复失败: {e}") + + return None + + def send_message(self, text, window_rect): + """发送消息""" + try: + original_clipboard = pyperclip.paste() + + pyperclip.copy(text) + time.sleep(0.1) + + pyautogui.hotkey('ctrl', 'v') + time.sleep(0.1) + + pyautogui.press('enter') + time.sleep(0.3) + + pyperclip.copy(original_clipboard) + + print(f"✓ 已发送") + + except Exception as e: + logger.error(f"发送消息失败: {e}") + + def print_performance_stats(self): + """打印性能统计""" + if not self.performance_stats['red_dot_detect']: + return + + print("\n" + "="*70) + print("性能统计") + print("="*70) + + avg_red_dot = np.mean(self.performance_stats['red_dot_detect']) * 1000 + avg_ocr = np.mean(self.performance_stats['ocr_recognize']) * 1000 if self.performance_stats['ocr_recognize'] else 0 + avg_total = np.mean(self.performance_stats['total_process']) * 1000 if self.performance_stats['total_process'] else 0 + + print(f"红点检测平均耗时: {avg_red_dot:.1f}ms") + print(f"OCR识别平均耗时: {avg_ocr:.1f}ms") + print(f"总处理平均耗时: {avg_total:.1f}ms") + print("="*70 + "\n") + + def run_forever(self): + """启动监听""" + print("=" * 70) + print("微信自动回复(优化版)") + print("=" * 70) + print("\n优化特性:") + print(" ✓ 快速红点检测(numpy矩阵运算,比逐像素快100倍)") + print(" ✓ 智能区域过滤(只检测特定X坐标范围)") + print(" ✓ 性能统计(详细的耗时分析)") + print("=" * 70) + print("\n监听中... 按 Ctrl+C 停止\n") + + self.running = True + round_count = 0 + + # 初始化窗口 + logger.info("正在查找微信窗口...") + window_rect = self.get_window_rect() + if not window_rect: + logger.error("未找到微信窗口") + return + logger.info("✓ 找到微信窗口") + + while self.running: + try: + round_count += 1 + print(f"\n{'='*70}") + print(f"[第 {round_count} 轮检查] {datetime.now().strftime('%H:%M:%S')}") + print(f"{'='*70}") + + # 快速检测红点 + red_dots = self.detect_red_dots_fast(window_rect) + + if not red_dots: + print("未检测到新消息") + time.sleep(LOOP_INTERVAL) + continue + + print(f"检测到 {len(red_dots)} 个新消息") + + # 处理每个红点 + for i, red_dot in enumerate(red_dots, 1): + print(f"\n[处理第 {i}/{len(red_dots)} 个新消息]") + + self.click_contact_by_red_dot(red_dot, window_rect) + + contact_key = f"{red_dot['x']}_{red_dot['y']}" + self.process_current_chat(window_rect, contact_key) + + time.sleep(1) + + # 每10轮打印一次性能统计 + if round_count % 10 == 0: + self.print_performance_stats() + + print(f"\n本轮处理完成,等待 {LOOP_INTERVAL} 秒...\n") + time.sleep(LOOP_INTERVAL) + + except Exception as e: + logger.error(f"循环出错: {e}") + import traceback + traceback.print_exc() + time.sleep(3) + + def stop(self): + self.running = False + + +if __name__ == "__main__": + try: + bot = WechatBotOptimized() + bot.run_forever() + except KeyboardInterrupt: + bot.stop() + print("\n程序已停止") + except Exception as e: + print(f"\n错误: {e}") + import traceback + traceback.print_exc() diff --git a/main.py b/main.py new file mode 100644 index 0000000..b13deda --- /dev/null +++ b/main.py @@ -0,0 +1,62 @@ +import os +import subprocess +import sys +from pathlib import Path + +PROJECT_ROOT = Path(__file__).resolve().parent +VENV_ROOT = PROJECT_ROOT / ".venv" +VENV_DIR = VENV_ROOT / "Scripts" +VENV_PYTHON = VENV_DIR / "python.exe" +VENV_PYTHONW = VENV_DIR / "pythonw.exe" + + +def _resolve(path): + try: + return Path(path).resolve() + except Exception: + return None + + +def _running_in_project_venv(): + current_prefix = _resolve(sys.prefix) + if current_prefix == _resolve(VENV_ROOT): + return True + current_executable = _resolve(sys.executable) + allowed_targets = {_resolve(VENV_PYTHON), _resolve(VENV_PYTHONW)} + return current_executable in allowed_targets + + +def _pick_reexec_python(): + current_name = Path(sys.executable).name.lower() + if current_name == "pythonw.exe" and VENV_PYTHONW.exists(): + return VENV_PYTHONW + if VENV_PYTHON.exists(): + return VENV_PYTHON + if VENV_PYTHONW.exists(): + return VENV_PYTHONW + raise RuntimeError(f"未找到项目 .venv 解释器: {VENV_PYTHON}") + + +def ensure_project_venv(): + if _running_in_project_venv(): + return + if os.environ.get("OPENCLAW_PROJECT_VENV_REEXEC") == "1": + raise RuntimeError("重启后仍未进入项目 .venv,请检查 .venv 是否损坏或系统 Python 安装是否异常") + env = os.environ.copy() + env["OPENCLAW_PROJECT_VENV_REEXEC"] = "1" + target_python = _pick_reexec_python() + subprocess.Popen([str(target_python), str(PROJECT_ROOT / "main.py")], cwd=str(PROJECT_ROOT), env=env) + raise SystemExit(0) + + +ensure_project_venv() + +from PySide6.QtWidgets import QApplication + +from app.presentation.main_window import MainWindow + + +if __name__ == "__main__": + app = QApplication(sys.argv) + w = MainWindow() + sys.exit(app.exec()) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..17b5720 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,17 @@ +opencv-contrib-python==4.13.0.92 +numpy==2.2.6 +requests==2.32.5 +pyperclip==1.11.0 +pyautogui==0.9.54 +Pillow==12.2.0 +uiautomation==2.0.29 +keyboard==0.13.5 +Flask==3.1.2 +PySide6==6.10.0 +PySide6-Essentials==6.10.0 +PySide6-Addons==6.10.0 +PyMySQL==1.1.2 +python-dotenv==1.1.1 + +rapidocr-onnxruntime==1.4.4 +onnxruntime==1.23.2 diff --git a/vendor/paddleocr/.gitkeep b/vendor/paddleocr/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vendor/paddleocr/models/.gitkeep b/vendor/paddleocr/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.jpg b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0312ba840c4669ff0b769dc1be942bb1d3367199 GIT binary patch literal 6897 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 KHf4Da3;zR!23ltT literal 0 HcmV?d00001 diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json new file mode 100644 index 0000000..3245f94 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json @@ -0,0 +1,13 @@ +{ + "input_path": "/root/.paddlex/predict_input/img_textline180_demo.jpg", + "page_index": null, + "class_ids": [ + 1 + ], + "scores": [ + 0.9926199913024902 + ], + "label_names": [ + "180_degree" + ] +} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json new file mode 100644 index 0000000..7491116 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json @@ -0,0 +1 @@ +{"base_code":{"magic":"pir","trainable":true,"version":1},"program":{"regions":[{"#":"region_0","blocks":[{"#":"block_0","args":[],"ops":[{"#":"p","A":[0,1,1,"linear_0.b_0_deepcopy_145"],"DA":[],"O":{"%":1,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_0.w_0_deepcopy_144"],"DA":[],"O":{"%":2,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1280,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_31.w_0_deepcopy_143"],"DA":[],"O":{"%":3,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1280,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_2_deepcopy_142"],"DA":[],"O":{"%":4,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_1_deepcopy_141"],"DA":[],"O":{"%":5,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.b_0_deepcopy_140"],"DA":[],"O":{"%":6,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_0_deepcopy_139"],"DA":[],"O":{"%":7,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_30.w_0_deepcopy_138"],"DA":[],"O":{"%":8,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.b_0_deepcopy_137"],"DA":[],"O":{"%":9,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.w_0_deepcopy_136"],"DA":[],"O":{"%":10,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.b_0_deepcopy_135"],"DA":[],"O":{"%":11,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.w_0_deepcopy_134"],"DA":[],"O":{"%":12,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_2_deepcopy_133"],"DA":[],"O":{"%":13,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_1_deepcopy_132"],"DA":[],"O":{"%":14,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.b_0_deepcopy_131"],"DA":[],"O":{"%":15,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_0_deepcopy_130"],"DA":[],"O":{"%":16,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_27.w_0_deepcopy_129"],"DA":[],"O":{"%":17,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_2_deepcopy_128"],"DA":[],"O":{"%":18,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_1_deepcopy_127"],"DA":[],"O":{"%":19,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.b_0_deepcopy_126"],"DA":[],"O":{"%":20,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_0_deepcopy_125"],"DA":[],"O":{"%":21,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_26.w_0_deepcopy_124"],"DA":[],"O":{"%":22,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.b_0_deepcopy_123"],"DA":[],"O":{"%":23,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.w_0_deepcopy_122"],"DA":[],"O":{"%":24,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.b_0_deepcopy_121"],"DA":[],"O":{"%":25,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.w_0_deepcopy_120"],"DA":[],"O":{"%":26,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_2_deepcopy_119"],"DA":[],"O":{"%":27,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_1_deepcopy_118"],"DA":[],"O":{"%":28,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.b_0_deepcopy_117"],"DA":[],"O":{"%":29,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_0_deepcopy_116"],"DA":[],"O":{"%":30,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_23.w_0_deepcopy_115"],"DA":[],"O":{"%":31,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_2_deepcopy_114"],"DA":[],"O":{"%":32,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_1_deepcopy_113"],"DA":[],"O":{"%":33,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.b_0_deepcopy_112"],"DA":[],"O":{"%":34,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_0_deepcopy_111"],"DA":[],"O":{"%":35,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_22.w_0_deepcopy_110"],"DA":[],"O":{"%":36,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_2_deepcopy_109"],"DA":[],"O":{"%":37,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_1_deepcopy_108"],"DA":[],"O":{"%":38,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.b_0_deepcopy_107"],"DA":[],"O":{"%":39,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_0_deepcopy_106"],"DA":[],"O":{"%":40,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_21.w_0_deepcopy_105"],"DA":[],"O":{"%":41,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_2_deepcopy_104"],"DA":[],"O":{"%":42,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_1_deepcopy_103"],"DA":[],"O":{"%":43,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.b_0_deepcopy_102"],"DA":[],"O":{"%":44,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_0_deepcopy_101"],"DA":[],"O":{"%":45,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_20.w_0_deepcopy_100"],"DA":[],"O":{"%":46,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_2_deepcopy_99"],"DA":[],"O":{"%":47,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_1_deepcopy_98"],"DA":[],"O":{"%":48,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.b_0_deepcopy_97"],"DA":[],"O":{"%":49,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_0_deepcopy_96"],"DA":[],"O":{"%":50,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_19.w_0_deepcopy_95"],"DA":[],"O":{"%":51,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_2_deepcopy_94"],"DA":[],"O":{"%":52,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_1_deepcopy_93"],"DA":[],"O":{"%":53,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.b_0_deepcopy_92"],"DA":[],"O":{"%":54,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_0_deepcopy_91"],"DA":[],"O":{"%":55,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_18.w_0_deepcopy_90"],"DA":[],"O":{"%":56,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_2_deepcopy_89"],"DA":[],"O":{"%":57,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_1_deepcopy_88"],"DA":[],"O":{"%":58,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.b_0_deepcopy_87"],"DA":[],"O":{"%":59,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_0_deepcopy_86"],"DA":[],"O":{"%":60,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_17.w_0_deepcopy_85"],"DA":[],"O":{"%":61,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_2_deepcopy_84"],"DA":[],"O":{"%":62,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_1_deepcopy_83"],"DA":[],"O":{"%":63,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.b_0_deepcopy_82"],"DA":[],"O":{"%":64,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_0_deepcopy_81"],"DA":[],"O":{"%":65,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_16.w_0_deepcopy_80"],"DA":[],"O":{"%":66,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_2_deepcopy_79"],"DA":[],"O":{"%":67,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_1_deepcopy_78"],"DA":[],"O":{"%":68,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.b_0_deepcopy_77"],"DA":[],"O":{"%":69,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_0_deepcopy_76"],"DA":[],"O":{"%":70,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_15.w_0_deepcopy_75"],"DA":[],"O":{"%":71,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_2_deepcopy_74"],"DA":[],"O":{"%":72,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_1_deepcopy_73"],"DA":[],"O":{"%":73,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.b_0_deepcopy_72"],"DA":[],"O":{"%":74,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_0_deepcopy_71"],"DA":[],"O":{"%":75,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_14.w_0_deepcopy_70"],"DA":[],"O":{"%":76,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_2_deepcopy_69"],"DA":[],"O":{"%":77,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_1_deepcopy_68"],"DA":[],"O":{"%":78,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.b_0_deepcopy_67"],"DA":[],"O":{"%":79,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_0_deepcopy_66"],"DA":[],"O":{"%":80,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_13.w_0_deepcopy_65"],"DA":[],"O":{"%":81,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_2_deepcopy_64"],"DA":[],"O":{"%":82,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_1_deepcopy_63"],"DA":[],"O":{"%":83,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.b_0_deepcopy_62"],"DA":[],"O":{"%":84,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_0_deepcopy_61"],"DA":[],"O":{"%":85,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_12.w_0_deepcopy_60"],"DA":[],"O":{"%":86,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_2_deepcopy_59"],"DA":[],"O":{"%":87,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_1_deepcopy_58"],"DA":[],"O":{"%":88,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.b_0_deepcopy_57"],"DA":[],"O":{"%":89,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_0_deepcopy_56"],"DA":[],"O":{"%":90,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_11.w_0_deepcopy_55"],"DA":[],"O":{"%":91,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_2_deepcopy_54"],"DA":[],"O":{"%":92,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_1_deepcopy_53"],"DA":[],"O":{"%":93,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.b_0_deepcopy_52"],"DA":[],"O":{"%":94,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_0_deepcopy_51"],"DA":[],"O":{"%":95,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_10.w_0_deepcopy_50"],"DA":[],"O":{"%":96,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_2_deepcopy_49"],"DA":[],"O":{"%":97,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_1_deepcopy_48"],"DA":[],"O":{"%":98,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.b_0_deepcopy_47"],"DA":[],"O":{"%":99,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_0_deepcopy_46"],"DA":[],"O":{"%":100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_9.w_0_deepcopy_45"],"DA":[],"O":{"%":101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_2_deepcopy_44"],"DA":[],"O":{"%":102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_1_deepcopy_43"],"DA":[],"O":{"%":103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.b_0_deepcopy_42"],"DA":[],"O":{"%":104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_0_deepcopy_41"],"DA":[],"O":{"%":105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_8.w_0_deepcopy_40"],"DA":[],"O":{"%":106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_2_deepcopy_39"],"DA":[],"O":{"%":107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_1_deepcopy_38"],"DA":[],"O":{"%":108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.b_0_deepcopy_37"],"DA":[],"O":{"%":109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_0_deepcopy_36"],"DA":[],"O":{"%":110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_7.w_0_deepcopy_35"],"DA":[],"O":{"%":111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_2_deepcopy_34"],"DA":[],"O":{"%":112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_1_deepcopy_33"],"DA":[],"O":{"%":113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.b_0_deepcopy_32"],"DA":[],"O":{"%":114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_0_deepcopy_31"],"DA":[],"O":{"%":115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_6.w_0_deepcopy_30"],"DA":[],"O":{"%":116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_2_deepcopy_29"],"DA":[],"O":{"%":117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_1_deepcopy_28"],"DA":[],"O":{"%":118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.b_0_deepcopy_27"],"DA":[],"O":{"%":119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_0_deepcopy_26"],"DA":[],"O":{"%":120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_5.w_0_deepcopy_25"],"DA":[],"O":{"%":121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_2_deepcopy_24"],"DA":[],"O":{"%":122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_1_deepcopy_23"],"DA":[],"O":{"%":123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.b_0_deepcopy_22"],"DA":[],"O":{"%":124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_0_deepcopy_21"],"DA":[],"O":{"%":125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_4.w_0_deepcopy_20"],"DA":[],"O":{"%":126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_2_deepcopy_19"],"DA":[],"O":{"%":127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_1_deepcopy_18"],"DA":[],"O":{"%":128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.b_0_deepcopy_17"],"DA":[],"O":{"%":129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_0_deepcopy_16"],"DA":[],"O":{"%":130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_3.w_0_deepcopy_15"],"DA":[],"O":{"%":131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_2_deepcopy_14"],"DA":[],"O":{"%":132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_1_deepcopy_13"],"DA":[],"O":{"%":133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.b_0_deepcopy_12"],"DA":[],"O":{"%":134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_0_deepcopy_11"],"DA":[],"O":{"%":135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_2.w_0_deepcopy_10"],"DA":[],"O":{"%":136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,16,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_2_deepcopy_9"],"DA":[],"O":{"%":137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_1_deepcopy_8"],"DA":[],"O":{"%":138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.b_0_deepcopy_7"],"DA":[],"O":{"%":139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_0_deepcopy_6"],"DA":[],"O":{"%":140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_1.w_0_deepcopy_5"],"DA":[],"O":{"%":141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_2_deepcopy_4"],"DA":[],"O":{"%":142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_1_deepcopy_3"],"DA":[],"O":{"%":143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.b_0_deepcopy_2"],"DA":[],"O":{"%":144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_0_deepcopy_1"],"DA":[],"O":{"%":145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_0.w_0_deepcopy_0"],"DA":[],"O":{"%":146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,3,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"1.data","A":[{"AT":{"#":"0.a_str","D":"x"},"N":"name"},{"AT":{"#":"1.a_intarray","D":[-1,3,80,160]},"N":"shape"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[0,0,""]},"N":"place"}],"I":[],"O":[{"%":147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3,80,160],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":147},{"%":146}],"O":[{"%":148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":148},{"%":143},{"%":142},{"%":145},{"%":144}],"O":[{"%":149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}},{"%":150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":149}],"O":[{"%":155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":16},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":155},{"%":141}],"O":[{"%":156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":156},{"%":138},{"%":137},{"%":140},{"%":139}],"O":[{"%":157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}},{"%":158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":157}],"O":[{"%":163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":163},{"%":136}],"O":[{"%":164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":164},{"%":133},{"%":132},{"%":135},{"%":134}],"O":[{"%":165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,40,80],"NCHW",[],0]}},{"%":166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":165}],"O":[{"%":171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":32},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":171},{"%":131}],"O":[{"%":172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":172},{"%":128},{"%":127},{"%":130},{"%":129}],"O":[{"%":173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,20,80],"NCHW",[],0]}},{"%":174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":173}],"O":[{"%":179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":179},{"%":126}],"O":[{"%":180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":180},{"%":123},{"%":122},{"%":125},{"%":124}],"O":[{"%":181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}},{"%":182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":181}],"O":[{"%":187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":64},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":187},{"%":121}],"O":[{"%":188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":188},{"%":118},{"%":117},{"%":120},{"%":119}],"O":[{"%":189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}},{"%":190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":189}],"O":[{"%":195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":195},{"%":116}],"O":[{"%":196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":196},{"%":113},{"%":112},{"%":115},{"%":114}],"O":[{"%":197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}},{"%":198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":197}],"O":[{"%":203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":64},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":203},{"%":111}],"O":[{"%":204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":204},{"%":108},{"%":107},{"%":110},{"%":109}],"O":[{"%":205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,10,80],"NCHW",[],0]}},{"%":206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":205}],"O":[{"%":211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":211},{"%":106}],"O":[{"%":212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":212},{"%":103},{"%":102},{"%":105},{"%":104}],"O":[{"%":213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}},{"%":214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":213}],"O":[{"%":219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":219},{"%":101}],"O":[{"%":220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":220},{"%":98},{"%":97},{"%":100},{"%":99}],"O":[{"%":221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}},{"%":222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":221}],"O":[{"%":227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":227},{"%":96}],"O":[{"%":228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":228},{"%":93},{"%":92},{"%":95},{"%":94}],"O":[{"%":229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}},{"%":230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":229}],"O":[{"%":235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":235},{"%":91}],"O":[{"%":236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":236},{"%":88},{"%":87},{"%":90},{"%":89}],"O":[{"%":237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,5,80],"NCHW",[],0]}},{"%":238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":237}],"O":[{"%":243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":243},{"%":86}],"O":[{"%":244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":244},{"%":83},{"%":82},{"%":85},{"%":84}],"O":[{"%":245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":245}],"O":[{"%":251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":251},{"%":81}],"O":[{"%":252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":252},{"%":78},{"%":77},{"%":80},{"%":79}],"O":[{"%":253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":253}],"O":[{"%":259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":259},{"%":76}],"O":[{"%":260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":260},{"%":73},{"%":72},{"%":75},{"%":74}],"O":[{"%":261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":261}],"O":[{"%":267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":267},{"%":71}],"O":[{"%":268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":268},{"%":68},{"%":67},{"%":70},{"%":69}],"O":[{"%":269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":269}],"O":[{"%":275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":275},{"%":66}],"O":[{"%":276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":276},{"%":63},{"%":62},{"%":65},{"%":64}],"O":[{"%":277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":277}],"O":[{"%":283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":283},{"%":61}],"O":[{"%":284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":284},{"%":58},{"%":57},{"%":60},{"%":59}],"O":[{"%":285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":285}],"O":[{"%":291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":291},{"%":56}],"O":[{"%":292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":292},{"%":53},{"%":52},{"%":55},{"%":54}],"O":[{"%":293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":293}],"O":[{"%":299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":299},{"%":51}],"O":[{"%":300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":300},{"%":48},{"%":47},{"%":50},{"%":49}],"O":[{"%":301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":301}],"O":[{"%":307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":307},{"%":46}],"O":[{"%":308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":308},{"%":43},{"%":42},{"%":45},{"%":44}],"O":[{"%":309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":309}],"O":[{"%":315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":315},{"%":41}],"O":[{"%":316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":316},{"%":38},{"%":37},{"%":40},{"%":39}],"O":[{"%":317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":317}],"O":[{"%":323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":323},{"%":36}],"O":[{"%":324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":324},{"%":33},{"%":32},{"%":35},{"%":34}],"O":[{"%":325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":325}],"O":[{"%":331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":331},{"%":31}],"O":[{"%":332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":332},{"%":28},{"%":27},{"%":30},{"%":29}],"O":[{"%":333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}},{"%":334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":333}],"O":[{"%":339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":true},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[{"%":339},{"%":340}],"O":[{"%":341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":341},{"%":26}],"O":[{"%":342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":25},{"%":343}],"O":[{"%":344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":342},{"%":344}],"O":[{"%":345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/ReLU/"},"N":"struct_name"}],"I":[{"%":345}],"O":[{"%":346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":346},{"%":24}],"O":[{"%":347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":23},{"%":348}],"O":[{"%":349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":347},{"%":349}],"O":[{"%":350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardsigmoid","A":[{"AT":{"#":"0.a_f32","D":0.16666670143604279},"N":"slope"},{"AT":{"#":"0.a_f32","D":0.5},"N":"offset"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Hardsigmoid/"},"N":"struct_name"}],"I":[{"%":350}],"O":[{"%":351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.multiply","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/"},"N":"struct_name"}],"I":[{"%":339},{"%":351}],"O":[{"%":352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":352},{"%":22}],"O":[{"%":353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":353},{"%":19},{"%":18},{"%":21},{"%":20}],"O":[{"%":354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}},{"%":355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":354}],"O":[{"%":360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":512},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":360},{"%":17}],"O":[{"%":361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":361},{"%":14},{"%":13},{"%":16},{"%":15}],"O":[{"%":362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}},{"%":363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":362}],"O":[{"%":368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":true},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[{"%":368},{"%":369}],"O":[{"%":370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":370},{"%":12}],"O":[{"%":371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":11},{"%":372}],"O":[{"%":373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":371},{"%":373}],"O":[{"%":374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/ReLU/"},"N":"struct_name"}],"I":[{"%":374}],"O":[{"%":375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":375},{"%":10}],"O":[{"%":376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":9},{"%":377}],"O":[{"%":378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":376},{"%":378}],"O":[{"%":379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardsigmoid","A":[{"AT":{"#":"0.a_f32","D":0.16666670143604279},"N":"slope"},{"AT":{"#":"0.a_f32","D":0.5},"N":"offset"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Hardsigmoid/"},"N":"struct_name"}],"I":[{"%":379}],"O":[{"%":380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.multiply","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/"},"N":"struct_name"}],"I":[{"%":368},{"%":380}],"O":[{"%":381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":381},{"%":8}],"O":[{"%":382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":382},{"%":5},{"%":4},{"%":7},{"%":6}],"O":[{"%":383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}},{"%":384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":383}],"O":[{"%":389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":true},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPLCNet/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[{"%":389},{"%":390}],"O":[{"%":391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Conv2D/"},"N":"struct_name"}],"I":[{"%":391},{"%":3}],"O":[{"%":392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Hardswish/"},"N":"struct_name"}],"I":[{"%":392}],"O":[{"%":393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.20000000298023224},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"downgrade_in_infer"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Dropout/"},"N":"struct_name"}],"I":[{"%":393},{"%":0},{"%":394}],"O":[{"%":395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280,1,1],"NCHW",[],0]}},{"%":396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,1280,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.flatten","A":[{"AT":{"#":"0.a_i32","D":1},"N":"start_axis"},{"AT":{"#":"0.a_i32","D":3},"N":"stop_axis"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Flatten/"},"N":"struct_name"}],"I":[{"%":395}],"O":[{"%":397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Linear/"},"N":"struct_name"}],"I":[{"%":397},{"%":2}],"O":[{"%":398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Linear/"},"N":"struct_name"}],"I":[{"%":398},{"%":1}],"O":[{"%":399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":-1},"N":"axis"},{"AT":{"#":"0.a_str","D":"/Softmax/"},"N":"struct_name"}],"I":[{"%":399}],"O":[{"%":400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.fetch","A":[{"AT":{"#":"0.a_str","D":"fetch_name_0"},"N":"name"},{"AT":{"#":"0.a_i32","D":0},"N":"col"}],"I":[{"%":400}],"O":[{"%":401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"persistable"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]}]}]}]}} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml new file mode 100644 index 0000000..6197759 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml @@ -0,0 +1,46 @@ +Global: + model_name: PP-LCNet_x1_0_textline_ori +Hpi: + backend_configs: + paddle_infer: + trt_dynamic_shapes: &id001 + x: + - - 1 + - 3 + - 80 + - 160 + - - 1 + - 3 + - 80 + - 160 + - - 8 + - 3 + - 80 + - 160 + tensorrt: + dynamic_shapes: *id001 +PreProcess: + transform_ops: + - ResizeImage: + size: + - 160 + - 80 + - NormalizeImage: + channel_num: 3 + mean: + - 0.485 + - 0.456 + - 0.406 + order: '' + scale: 0.00392156862745098 + std: + - 0.229 + - 0.224 + - 0.225 + - ToCHWImage: null +PostProcess: + Topk: + topk: 1 + label_list: + - 0_degree + - 180_degree diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/.msc b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.msc new file mode 100644 index 0000000000000000000000000000000000000000..8d9cbbe7ca555ed67151aa026a619e7e835e47d9 GIT binary patch literal 366 zcmZo*nVQVV00yyBG-{`4^sodZmSjxn;ZDxaOUq2x%PP*#o6^G(lvVYg>)l0gIpb5d|mZ&Q^?ZJhj0PdJLEV)7-2?1N@hV~QDSZ}iH=Ft0{|;0 BbT$A0 literal 0 HcmV?d00001 diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv new file mode 100644 index 0000000..9427b67 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv @@ -0,0 +1 @@ +Revision:master,CreatedAt:1751519009 \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md b/vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md new file mode 100644 index 0000000..e653b28 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md @@ -0,0 +1,220 @@ +--- +license: apache-2.0 +library_name: PaddleOCR +language: +- en +- zh +pipeline_tag: image-to-text +tags: +- OCR +- PaddlePaddle +- PaddleOCR +--- + +# PP-OCRv5_server_det + +## Introduction + +PP-OCRv5_server_det is one of the PP-OCRv5_det series, the latest generation of text detection models developed by the PaddleOCR team. Designed for high-performance applications, it supports the detection of text in diverse scenarios—including handwriting, vertical, rotated, and curved text—across multiple languages such as Simplified Chinese, Traditional Chinese, English, and Japanese. Key features include robust handling of complex layouts, varying text sizes, and challenging backgrounds, making it suitable for practical applications like document analysis, license plate recognition, and scene text detection. The key accuracy metrics are as follow: + +| Handwritten Chinese | Handwritten English | Printed Chinese | Printed English | Traditional Chinese | Ancient Text | Japanese | General Scenario | Pinyin | Rotation | Distortion | Artistic Text | Average | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 0.803 | 0.841 | 0.945 | 0.917 | 0.815 | 0.676 | 0.772 | 0.797 | 0.671 | 0.8 | 0.876 | 0.673 | 0.827 | + +## Quick Start + +### Installation + +1. PaddlePaddle + +Please refer to the following commands to install PaddlePaddle using pip: + +```bash +# for CUDA11.8 +python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ + +# for CUDA12.6 +python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/ + +# for CPU +python -m pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ +``` + +For details about PaddlePaddle installation, please refer to the [PaddlePaddle official website](https://www.paddlepaddle.org.cn/en/install/quick). + +2. PaddleOCR + +Install the latest version of the PaddleOCR inference package from PyPI: + +```bash +python -m pip install paddleocr +``` + +### Model Usage + +You can quickly experience the functionality with a single command: + +```bash +paddleocr text_detection \ + --model_name PP-OCRv5_server_det \ + -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png +``` + +You can also integrate the model inference of the text detection module into your project. Before running the following code, please download the sample image to your local machine. + +```python +from paddleocr import TextDetection +model = TextDetection(model_name="PP-OCRv5_server_det") +output = model.predict(input="3ul2Rq4Sk5Cn-l69D695U.png", batch_size=1) +for res in output: + res.print() + res.save_to_img(save_path="./output/") + res.save_to_json(save_path="./output/res.json") +``` + +After running, the obtained result is as follows: + +```json +{'res': {'input_path': '/root/.paddlex/predict_input/3ul2Rq4Sk5Cn-l69D695U.png', 'page_index': None, 'dt_polys': array([[[ 632, 1429], + ..., + [ 632, 1450]], + + ..., + + [[ 353, 102], + ..., + [ 353, 125]]], dtype=int16), 'dt_scores': [0.8436300312712586, 0.7779392262863483, ..., 0.8491056329808098]}} +``` + +The visualized image is as follows: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/rs6R4Ij5bfSeQ4mwLhcz6.jpeg) + +For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/module_usage/text_detection.html#iii-quick-start). + +### Pipeline Usage + +The ability of a single model is limited. But the pipeline consists of several models can provide more capacity to resolve difficult problems in real-world scenarios. + +#### PP-OCRv5 + +The general OCR pipeline is used to solve text recognition tasks by extracting text information from images and outputting it in text form. And there are 5 modules in the pipeline: +* Document Image Orientation Classification Module (Optional) +* Text Image Unwarping Module (Optional) +* Text Line Orientation Classification Module (Optional) +* Text Detection Module +* Text Recognition Module + +Run a single command to quickly experience the OCR pipeline: + +```bash +paddleocr ocr -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png \ + --text_detection_model_name PP-OCRv5_server_det \ + --text_recognition_model_name PP-OCRv5_server_rec \ + --use_doc_orientation_classify False \ + --use_doc_unwarping False \ + --use_textline_orientation True \ + --save_path ./output \ + --device gpu:0 +``` + +Results are printed to the terminal: + +```json +{'res': {'input_path': '/root/.paddlex/predict_input/3ul2Rq4Sk5Cn-l69D695U.png', 'page_index': None, 'model_settings': {'use_doc_preprocessor': True, 'use_textline_orientation': True}, 'doc_preprocessor_res': {'input_path': None, 'page_index': None, 'model_settings': {'use_doc_orientation_classify': False, 'use_doc_unwarping': False}, 'angle': -1}, 'dt_polys': array([[[ 352, 105], + ..., + [ 352, 128]], + + ..., + + [[ 632, 1431], + ..., + [ 632, 1447]]], dtype=int16), 'text_det_params': {'limit_side_len': 64, 'limit_type': 'min', 'thresh': 0.3, 'max_side_limit': 4000, 'box_thresh': 0.6, 'unclip_ratio': 1.5}, 'text_type': 'general', 'textline_orientation_angles': array([0, ..., 0]), 'text_rec_score_thresh': 0.0, 'rec_texts': ['Algorithms for the Markov Entropy Decomposition', 'Andrew J. Ferris and David Poulin', 'Département de Physique, Université de Sherbrooke, Québec, JlK 2R1, Canada', '(Dated: October 31, 2018)', 'The Markov entropy decomposition (MED) is a recently-proposed, cluster-based simulation method for fi-', 'nite temperature quantum systems with arbitrary geometry. In this paper, we detail numerical algorithms for', 'performing the required steps of the MED, principally solving a minimization problem with a preconditioned', 'arXiv:1212.1442v1 [cond-mat.stat-mech] 6Dec 2012', "Newton's algorithm, as well as how to extract global susceptibilities and thermal responses. We demonstrate", 'the power of the method with the spin-1/2 XXZ model on the 2D square lattice, including the extraction of', 'critical points and details of each phase. Although the method shares some qualitative similarities with exact-', 'diagonalization, we show the MED is both more accurate and significantly more flexible.', 'PACS numbers: 05.10.−a,02.50.Ng, 03.67.−a,74.40.Kb', 'I.INTRODUCTION', 'This approximation becomes exact in the case of a 1D quan', 'tum (or classical) Markov chain [10], and leads to an expo-', 'Although the equations governing quantum many-body', 'nential reduction of cost for exact entropy calculations when', 'systems are simple to write down, finding solutions for the', 'the global density matrix is a higher-dimensional Markov net-', 'majority of systems remains incredibly difficult. Modern', 'work state [12, 13].', 'physics finds itself in need of new tools to compute the emer-', 'The second approximation used in the MED approach is', 'gent behavior of large, many-body systems.', 'related to the N-representibility problem. Given a set of lo-', 'There has been a great variety of tools developed to tackle', 'cal but overlapping reduced density matrices {pi}, it is a very', 'many-body problems, but in general, large 2D and 3D quan-', 'challenging problem to determine if there exists a global den-', 'tum systems remain hard to deal with. Most systems are', 'sity operator which is positive semi-definite and whose partial', 'thought to be non-integrable, so exact analytic solutions are', 'trace agrees with each ρi. This problem is QMA-hard (the', 'not usually expected. Direct numerical diagonalization can be', 'quantum analogue of NP) [14, 15], and is hopelessly diffi-', 'performed for relatively small systems — however the emer-', 'cult to enforce. Thus, the second approximation employed', 'gent behavior of a system in the thermodynamic limit may be', 'involves ignoring global consistency with a positive opera-', 'difficult to extract, especially in systems with large correlation', 'tor, while requiring local consistency on any overlapping re-', 'lengths. Monte Carlo approaches are technically exact (up to', 'gions between the ρi. At the zero-temperature limit, the MED', 'sampling error), but suffer from the so-called sign problem', 'approach becomes analogous to the variational nth-order re-', 'for fermionic, frustrated, or dynamical problems. Thus we are', 'duced density matrix approach, where positivity is enforced', 'limited to search for clever approximations to solve the ma-', 'on all reduced density matrices of size n [16–18].', 'jority of many-body problems.', 'The MED approach is an extremely flexible cluster method.', 'Over the past century, hundreds of such approximations', 'applicable to both translationally invariant systems of any di-', 'have been proposed, and we will mention just a few notable', 'mension in the thermodynamic limit, as well as finite systems', 'examples applicable to quantum lattice models. Mean-field', 'or systems without translational invariance (e.g. disordered', 'theory is simple and frequently arrives at the correct quali-', 'lattices, or harmonically trapped atoms in optical lattices).', 'tative description, but often fails when correlations are im-', 'The free energy given by MED is guaranteed to lower bound', 'portant. Density-matrix renormalisation group (DMRG) [1]', 'the true free energy, which in turn lower-bounds the ground', 'is efficient and extremely accurate at solving 1D problems,', 'state energy — thus providing a natural complement to varia-', 'but the computational cost grows exponentially with system', 'tional approaches which upper-bound the ground state energy.', 'size in two- or higher-dimensions [2, 3]. Related tensor-', 'The ability to provide a rigorous ground-state energy window', 'network techniques designed for 2D systems are still in their', 'is a powerful validation tool, creating a very compelling rea-', 'infancy [4–6]. Series-expansion methods [7] can be success-', 'son to use this approach.', 'ful, but may diverge or otherwise converge slowly, obscuring', 'In this paper we paper we present a pedagogical introduc-', 'the state in certain regimes. There exist a variety of cluster-', 'tion to MED, including numerical implementation issues and', 'based techniques, such as dynamical-mean-field theory [8]', 'applications to 2D quantum lattice models in the thermody-', 'and density-matrix embedding [9]', 'namiclimit.InSec.II.wegiveabriefderiyationofthe', 'Here we discuss the so-called Markov entropy decompo-', 'Markov entropy decomposition. Section III outlines a robust', 'sition (MED), recently proposed by Poulin & Hastings [10]', 'numerical strategy for optimizing the clusters that make up', '(and analogous to a slightly earlier classical algorithm [11]).', 'the decomposition. In Sec. IV we show how we can extend', 'This is a self-consistent cluster method for finite temperature', 'these algorithms to extract non-trivial information, such as', 'systems that takes advantage of an approximation of the (von', 'specific heat and susceptibilities. We present an application of', 'Neumann) entropy. In [10], it was shown that the entropy', 'the method to the spin-1/2 XXZ model on a 2D square lattice', 'per site can be rigorously upper bounded using only local in-', 'in Sec. V, describing how to characterize the phase diagram', 'formation — a local, reduced density matrix on N sites, say.', 'and determine critical points, before concluding in Sec. VI.'], 'rec_scores': array([0.99276221, ..., 0.95760632]), 'rec_polys': array([[[ 352, 105], + ..., + [ 352, 128]], + + ..., + + [[ 632, 1431], + ..., + [ 632, 1447]]], dtype=int16), 'rec_boxes': array([[ 352, ..., 128], + ..., + [ 632, ..., 1447]], dtype=int16)}} +``` + +If save_path is specified, the visualization results will be saved under `save_path`. The visualization output is shown below: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/SfWsVpad7eKD3I2uLYpnS.png) + +The command-line method is for quick experience. For project integration, also only a few codes are needed as well: + +```python +from paddleocr import PaddleOCR + +ocr = PaddleOCR( + text_detection_model_name="PP-OCRv5_server_det", + text_recognition_model_name="PP-OCRv5_server_rec", + use_doc_orientation_classify=False, # Disables document orientation classification model via this parameter + use_doc_unwarping=False, # Disables text image rectification model via this parameter + use_textline_orientation=False, # Disables text line orientation classification model via this parameter +) +result = ocr.predict("./3ul2Rq4Sk5Cn-l69D695U.png") +for res in result: + res.print() + res.save_to_img("output") + res.save_to_json("output") +``` + +For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/OCR.html#2-quick-start). + +#### PP-StructureV3 + +Layout analysis is a technique used to extract structured information from document images. PP-StructureV3 includes the following six modules: +* Layout Detection Module +* General OCR Pipeline +* Document Image Preprocessing Pipeline (Optional) +* Table Recognition Pipeline (Optional) +* Seal Recognition Pipeline (Optional) +* Formula Recognition Pipeline (Optional) + +Run a single command to quickly experience the PP-StructureV3 pipeline: + +```bash +paddleocr pp_structurev3 -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/mG4tnwfrvECoFMu-S9mxo.png \ + --text_detection_model_name PP-OCRv5_server_det \ + --use_doc_orientation_classify False \ + --use_doc_unwarping False \ + --use_textline_orientation False \ + --device gpu:0 +``` + +Results would be printed to the terminal. If save_path is specified, the results will be saved under `save_path`. The predicted markdown visualization is shown below: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/SfxF0X4drBTNGnfFOtZij.png) + +Just a few lines of code can experience the inference of the pipeline. Taking the PP-StructureV3 pipeline as an example: + +```python +from paddleocr import PPStructureV3 + +pipeline = PPStructureV3( + text_detection_model_name="PP-OCRv5_server_det", + use_doc_orientation_classify=False, # Use use_doc_orientation_classify to enable/disable document orientation classification model + use_doc_unwarping=False, # Use use_doc_unwarping to enable/disable document unwarping module + use_textline_orientation=False, # Use use_textline_orientation to enable/disable textline orientation classification model + device="gpu:0", # Use device to specify GPU for model inference + ) +output = pipeline.predict("./pp_structure_v3_demo.png") +for res in output: + res.print() # Print the structured prediction output + res.save_to_json(save_path="output") ## Save the current image's structured result in JSON format + res.save_to_markdown(save_path="output") ## Save the current image's result in Markdown format +``` + +The default model used in pipeline is `PP-OCRv5_server_det`, and you can specify other text detection model by argument `text_detection_model_name`. And you can also use the local model file by argument `text_detection_model_dir`. For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/PP-StructureV3.html#2-quick-start). + +## Links + +[PaddleOCR Repo](https://github.com/paddlepaddle/paddleocr) + +[PaddleOCR Documentation](https://paddlepaddle.github.io/PaddleOCR/latest/en/index.html) diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json b/vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json new file mode 100644 index 0000000..5d2c6fe --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json @@ -0,0 +1,111 @@ +{ + "Global": { + "model_name": "PP-OCRv5_server_det" + }, + "Hpi": { + "backend_configs": { + "paddle_infer": { + "trt_dynamic_shapes": { + "x": [ + [ + 1, + 3, + 32, + 32 + ], + [ + 1, + 3, + 736, + 736 + ], + [ + 1, + 3, + 4000, + 4000 + ] + ] + } + }, + "tensorrt": { + "dynamic_shapes": { + "x": [ + [ + 1, + 3, + 32, + 32 + ], + [ + 1, + 3, + 736, + 736 + ], + [ + 1, + 3, + 4000, + 4000 + ] + ] + } + } + } + }, + "PreProcess": { + "transform_ops": [ + { + "DecodeImage": { + "channel_first": false, + "img_mode": "BGR" + } + }, + { + "DetLabelEncode": null + }, + { + "DetResizeForTest": { + "resize_long": 960 + } + }, + { + "NormalizeImage": { + "mean": [ + 0.485, + 0.456, + 0.406 + ], + "order": "hwc", + "scale": "1./255.", + "std": [ + 0.229, + 0.224, + 0.225 + ] + } + }, + { + "ToCHWImage": null + }, + { + "KeepKeys": { + "keep_keys": [ + "image", + "shape", + "polys", + "ignore_tags" + ] + } + } + ] + }, + "PostProcess": { + "name": "DBPostProcess", + "thresh": 0.3, + "box_thresh": 0.6, + "max_candidates": 1000, + "unclip_ratio": 1.5 + } +} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json new file mode 100644 index 0000000..7b582d6 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json @@ -0,0 +1 @@ +{"base_code":{"magic":"pir","trainable":true,"version":1},"program":{"regions":[{"#":"region_0","blocks":[{"#":"block_0","args":[],"ops":[{"#":"p","A":[0,1,1,"conv2d_143.b_0"],"DA":[],"O":{"%":1,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_143.w_0"],"DA":[],"O":{"%":2,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.w_2"],"DA":[],"O":{"%":3,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.w_1"],"DA":[],"O":{"%":4,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.b_0"],"DA":[],"O":{"%":5,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.w_0"],"DA":[],"O":{"%":6,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_142.w_0"],"DA":[],"O":{"%":7,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,65,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_1.b_0"],"DA":[],"O":{"%":8,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_1.w_0"],"DA":[],"O":{"%":9,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,1,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.w_2"],"DA":[],"O":{"%":10,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.w_1"],"DA":[],"O":{"%":11,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.b_0"],"DA":[],"O":{"%":12,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.w_0"],"DA":[],"O":{"%":13,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_0.b_0"],"DA":[],"O":{"%":14,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_0.w_0"],"DA":[],"O":{"%":15,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.w_2"],"DA":[],"O":{"%":16,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.w_1"],"DA":[],"O":{"%":17,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.b_0"],"DA":[],"O":{"%":18,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.w_0"],"DA":[],"O":{"%":19,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_140.w_0"],"DA":[],"O":{"%":20,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_2"],"DA":[],"O":{"%":21,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_1"],"DA":[],"O":{"%":22,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.b_0"],"DA":[],"O":{"%":23,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_0"],"DA":[],"O":{"%":24,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_139.b_0"],"DA":[],"O":{"%":25,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_139.w_0"],"DA":[],"O":{"%":26,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_138.b_0"],"DA":[],"O":{"%":27,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_138.w_0"],"DA":[],"O":{"%":28,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_137.b_0"],"DA":[],"O":{"%":29,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_137.w_0"],"DA":[],"O":{"%":30,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_136.b_0"],"DA":[],"O":{"%":31,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_136.w_0"],"DA":[],"O":{"%":32,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_135.b_0"],"DA":[],"O":{"%":33,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_135.w_0"],"DA":[],"O":{"%":34,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_134.b_0"],"DA":[],"O":{"%":35,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_134.w_0"],"DA":[],"O":{"%":36,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_133.b_0"],"DA":[],"O":{"%":37,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_133.w_0"],"DA":[],"O":{"%":38,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_132.b_0"],"DA":[],"O":{"%":39,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_132.w_0"],"DA":[],"O":{"%":40,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_131.b_0"],"DA":[],"O":{"%":41,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_131.w_0"],"DA":[],"O":{"%":42,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_130.b_0"],"DA":[],"O":{"%":43,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_130.w_0"],"DA":[],"O":{"%":44,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_129.b_0"],"DA":[],"O":{"%":45,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_129.w_0"],"DA":[],"O":{"%":46,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_2"],"DA":[],"O":{"%":47,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_1"],"DA":[],"O":{"%":48,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.b_0"],"DA":[],"O":{"%":49,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_0"],"DA":[],"O":{"%":50,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_128.b_0"],"DA":[],"O":{"%":51,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_128.w_0"],"DA":[],"O":{"%":52,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_127.b_0"],"DA":[],"O":{"%":53,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_127.w_0"],"DA":[],"O":{"%":54,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_126.b_0"],"DA":[],"O":{"%":55,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_126.w_0"],"DA":[],"O":{"%":56,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_125.b_0"],"DA":[],"O":{"%":57,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_125.w_0"],"DA":[],"O":{"%":58,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_124.b_0"],"DA":[],"O":{"%":59,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_124.w_0"],"DA":[],"O":{"%":60,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_123.b_0"],"DA":[],"O":{"%":61,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_123.w_0"],"DA":[],"O":{"%":62,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_122.b_0"],"DA":[],"O":{"%":63,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_122.w_0"],"DA":[],"O":{"%":64,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_121.b_0"],"DA":[],"O":{"%":65,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_121.w_0"],"DA":[],"O":{"%":66,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_120.b_0"],"DA":[],"O":{"%":67,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_120.w_0"],"DA":[],"O":{"%":68,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_119.b_0"],"DA":[],"O":{"%":69,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_119.w_0"],"DA":[],"O":{"%":70,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_118.b_0"],"DA":[],"O":{"%":71,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_118.w_0"],"DA":[],"O":{"%":72,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_2"],"DA":[],"O":{"%":73,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_1"],"DA":[],"O":{"%":74,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.b_0"],"DA":[],"O":{"%":75,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_0"],"DA":[],"O":{"%":76,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_117.b_0"],"DA":[],"O":{"%":77,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_117.w_0"],"DA":[],"O":{"%":78,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_116.b_0"],"DA":[],"O":{"%":79,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_116.w_0"],"DA":[],"O":{"%":80,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_115.b_0"],"DA":[],"O":{"%":81,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_115.w_0"],"DA":[],"O":{"%":82,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_114.b_0"],"DA":[],"O":{"%":83,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_114.w_0"],"DA":[],"O":{"%":84,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_113.b_0"],"DA":[],"O":{"%":85,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_113.w_0"],"DA":[],"O":{"%":86,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_112.b_0"],"DA":[],"O":{"%":87,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_112.w_0"],"DA":[],"O":{"%":88,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_111.b_0"],"DA":[],"O":{"%":89,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_111.w_0"],"DA":[],"O":{"%":90,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_110.b_0"],"DA":[],"O":{"%":91,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_110.w_0"],"DA":[],"O":{"%":92,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_109.b_0"],"DA":[],"O":{"%":93,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_109.w_0"],"DA":[],"O":{"%":94,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_108.b_0"],"DA":[],"O":{"%":95,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_108.w_0"],"DA":[],"O":{"%":96,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_107.b_0"],"DA":[],"O":{"%":97,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_107.w_0"],"DA":[],"O":{"%":98,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_2"],"DA":[],"O":{"%":99,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_1"],"DA":[],"O":{"%":100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.b_0"],"DA":[],"O":{"%":101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_0"],"DA":[],"O":{"%":102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_106.b_0"],"DA":[],"O":{"%":103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_106.w_0"],"DA":[],"O":{"%":104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_105.b_0"],"DA":[],"O":{"%":105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_105.w_0"],"DA":[],"O":{"%":106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_104.b_0"],"DA":[],"O":{"%":107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_104.w_0"],"DA":[],"O":{"%":108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_103.b_0"],"DA":[],"O":{"%":109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_103.w_0"],"DA":[],"O":{"%":110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_102.b_0"],"DA":[],"O":{"%":111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_102.w_0"],"DA":[],"O":{"%":112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_101.b_0"],"DA":[],"O":{"%":113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_101.w_0"],"DA":[],"O":{"%":114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_100.b_0"],"DA":[],"O":{"%":115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_100.w_0"],"DA":[],"O":{"%":116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_99.b_0"],"DA":[],"O":{"%":117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_99.w_0"],"DA":[],"O":{"%":118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_98.b_0"],"DA":[],"O":{"%":119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_98.w_0"],"DA":[],"O":{"%":120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_97.b_0"],"DA":[],"O":{"%":121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_97.w_0"],"DA":[],"O":{"%":122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_96.b_0"],"DA":[],"O":{"%":123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_96.w_0"],"DA":[],"O":{"%":124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_95.w_0"],"DA":[],"O":{"%":125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_91.w_0"],"DA":[],"O":{"%":126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_87.w_0"],"DA":[],"O":{"%":127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_83.w_0"],"DA":[],"O":{"%":128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_94.w_0"],"DA":[],"O":{"%":129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_90.w_0"],"DA":[],"O":{"%":130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_86.w_0"],"DA":[],"O":{"%":131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_93.w_0"],"DA":[],"O":{"%":132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_89.w_0"],"DA":[],"O":{"%":133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_85.w_0"],"DA":[],"O":{"%":134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_82.w_0"],"DA":[],"O":{"%":135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_92.w_0"],"DA":[],"O":{"%":136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,2048,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_88.w_0"],"DA":[],"O":{"%":137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_84.w_0"],"DA":[],"O":{"%":138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_81.w_0"],"DA":[],"O":{"%":139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_2"],"DA":[],"O":{"%":140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_1"],"DA":[],"O":{"%":141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.b_0"],"DA":[],"O":{"%":142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_0"],"DA":[],"O":{"%":143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_79.w_0"],"DA":[],"O":{"%":144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_2"],"DA":[],"O":{"%":145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_1"],"DA":[],"O":{"%":146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.b_0"],"DA":[],"O":{"%":147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_0"],"DA":[],"O":{"%":148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_78.w_0"],"DA":[],"O":{"%":149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,3328,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_2"],"DA":[],"O":{"%":150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_1"],"DA":[],"O":{"%":151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.b_0"],"DA":[],"O":{"%":152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_0"],"DA":[],"O":{"%":153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_77.w_0"],"DA":[],"O":{"%":154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_2"],"DA":[],"O":{"%":155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_1"],"DA":[],"O":{"%":156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.b_0"],"DA":[],"O":{"%":157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_0"],"DA":[],"O":{"%":158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_76.w_0"],"DA":[],"O":{"%":159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_2"],"DA":[],"O":{"%":160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_1"],"DA":[],"O":{"%":161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.b_0"],"DA":[],"O":{"%":162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_0"],"DA":[],"O":{"%":163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_75.w_0"],"DA":[],"O":{"%":164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_2"],"DA":[],"O":{"%":165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_1"],"DA":[],"O":{"%":166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.b_0"],"DA":[],"O":{"%":167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_0"],"DA":[],"O":{"%":168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_74.w_0"],"DA":[],"O":{"%":169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_2"],"DA":[],"O":{"%":170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_1"],"DA":[],"O":{"%":171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.b_0"],"DA":[],"O":{"%":172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_0"],"DA":[],"O":{"%":173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_73.w_0"],"DA":[],"O":{"%":174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_2"],"DA":[],"O":{"%":175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_1"],"DA":[],"O":{"%":176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.b_0"],"DA":[],"O":{"%":177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_0"],"DA":[],"O":{"%":178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_72.w_0"],"DA":[],"O":{"%":179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_2"],"DA":[],"O":{"%":180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_1"],"DA":[],"O":{"%":181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.b_0"],"DA":[],"O":{"%":182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_0"],"DA":[],"O":{"%":183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_71.w_0"],"DA":[],"O":{"%":184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_2"],"DA":[],"O":{"%":185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_1"],"DA":[],"O":{"%":186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.b_0"],"DA":[],"O":{"%":187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_0"],"DA":[],"O":{"%":188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_70.w_0"],"DA":[],"O":{"%":189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_2"],"DA":[],"O":{"%":190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_1"],"DA":[],"O":{"%":191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.b_0"],"DA":[],"O":{"%":192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_0"],"DA":[],"O":{"%":193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_69.w_0"],"DA":[],"O":{"%":194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_2"],"DA":[],"O":{"%":195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_1"],"DA":[],"O":{"%":196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.b_0"],"DA":[],"O":{"%":197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_0"],"DA":[],"O":{"%":198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_68.w_0"],"DA":[],"O":{"%":199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_2"],"DA":[],"O":{"%":200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_1"],"DA":[],"O":{"%":201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.b_0"],"DA":[],"O":{"%":202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_0"],"DA":[],"O":{"%":203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_67.w_0"],"DA":[],"O":{"%":204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_2"],"DA":[],"O":{"%":205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_1"],"DA":[],"O":{"%":206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.b_0"],"DA":[],"O":{"%":207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_0"],"DA":[],"O":{"%":208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_66.w_0"],"DA":[],"O":{"%":209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_2"],"DA":[],"O":{"%":210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_1"],"DA":[],"O":{"%":211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.b_0"],"DA":[],"O":{"%":212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_0"],"DA":[],"O":{"%":213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_65.w_0"],"DA":[],"O":{"%":214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_2"],"DA":[],"O":{"%":215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_1"],"DA":[],"O":{"%":216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.b_0"],"DA":[],"O":{"%":217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_0"],"DA":[],"O":{"%":218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_64.w_0"],"DA":[],"O":{"%":219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_2"],"DA":[],"O":{"%":220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_1"],"DA":[],"O":{"%":221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.b_0"],"DA":[],"O":{"%":222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_0"],"DA":[],"O":{"%":223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_63.w_0"],"DA":[],"O":{"%":224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_2"],"DA":[],"O":{"%":225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_1"],"DA":[],"O":{"%":226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.b_0"],"DA":[],"O":{"%":227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_0"],"DA":[],"O":{"%":228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_62.w_0"],"DA":[],"O":{"%":229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_2"],"DA":[],"O":{"%":230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_1"],"DA":[],"O":{"%":231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.b_0"],"DA":[],"O":{"%":232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_0"],"DA":[],"O":{"%":233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_61.w_0"],"DA":[],"O":{"%":234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_2"],"DA":[],"O":{"%":235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_1"],"DA":[],"O":{"%":236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.b_0"],"DA":[],"O":{"%":237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_0"],"DA":[],"O":{"%":238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_60.w_0"],"DA":[],"O":{"%":239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_2"],"DA":[],"O":{"%":240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_1"],"DA":[],"O":{"%":241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.b_0"],"DA":[],"O":{"%":242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_0"],"DA":[],"O":{"%":243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_59.w_0"],"DA":[],"O":{"%":244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_2"],"DA":[],"O":{"%":245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_1"],"DA":[],"O":{"%":246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.b_0"],"DA":[],"O":{"%":247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_0"],"DA":[],"O":{"%":248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_58.w_0"],"DA":[],"O":{"%":249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_2"],"DA":[],"O":{"%":250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_1"],"DA":[],"O":{"%":251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.b_0"],"DA":[],"O":{"%":252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_0"],"DA":[],"O":{"%":253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_57.w_0"],"DA":[],"O":{"%":254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_2"],"DA":[],"O":{"%":255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_1"],"DA":[],"O":{"%":256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.b_0"],"DA":[],"O":{"%":257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_0"],"DA":[],"O":{"%":258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_56.w_0"],"DA":[],"O":{"%":259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_2"],"DA":[],"O":{"%":260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_1"],"DA":[],"O":{"%":261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.b_0"],"DA":[],"O":{"%":262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_0"],"DA":[],"O":{"%":263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_55.w_0"],"DA":[],"O":{"%":264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_2"],"DA":[],"O":{"%":265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_1"],"DA":[],"O":{"%":266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.b_0"],"DA":[],"O":{"%":267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_0"],"DA":[],"O":{"%":268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_54.w_0"],"DA":[],"O":{"%":269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_2"],"DA":[],"O":{"%":270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_1"],"DA":[],"O":{"%":271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.b_0"],"DA":[],"O":{"%":272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_0"],"DA":[],"O":{"%":273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_53.w_0"],"DA":[],"O":{"%":274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_2"],"DA":[],"O":{"%":275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_1"],"DA":[],"O":{"%":276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.b_0"],"DA":[],"O":{"%":277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_0"],"DA":[],"O":{"%":278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_52.w_0"],"DA":[],"O":{"%":279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_2"],"DA":[],"O":{"%":280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_1"],"DA":[],"O":{"%":281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.b_0"],"DA":[],"O":{"%":282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_0"],"DA":[],"O":{"%":283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_51.w_0"],"DA":[],"O":{"%":284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_2"],"DA":[],"O":{"%":285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_1"],"DA":[],"O":{"%":286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.b_0"],"DA":[],"O":{"%":287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_0"],"DA":[],"O":{"%":288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_50.w_0"],"DA":[],"O":{"%":289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_2"],"DA":[],"O":{"%":290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_1"],"DA":[],"O":{"%":291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.b_0"],"DA":[],"O":{"%":292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_0"],"DA":[],"O":{"%":293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_49.w_0"],"DA":[],"O":{"%":294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_2"],"DA":[],"O":{"%":295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_1"],"DA":[],"O":{"%":296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.b_0"],"DA":[],"O":{"%":297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_0"],"DA":[],"O":{"%":298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_48.w_0"],"DA":[],"O":{"%":299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_2"],"DA":[],"O":{"%":300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_1"],"DA":[],"O":{"%":301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.b_0"],"DA":[],"O":{"%":302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_0"],"DA":[],"O":{"%":303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_47.w_0"],"DA":[],"O":{"%":304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_2"],"DA":[],"O":{"%":305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_1"],"DA":[],"O":{"%":306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.b_0"],"DA":[],"O":{"%":307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_0"],"DA":[],"O":{"%":308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_46.w_0"],"DA":[],"O":{"%":309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_2"],"DA":[],"O":{"%":310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_1"],"DA":[],"O":{"%":311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.b_0"],"DA":[],"O":{"%":312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_0"],"DA":[],"O":{"%":313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_45.w_0"],"DA":[],"O":{"%":314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_2"],"DA":[],"O":{"%":315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_1"],"DA":[],"O":{"%":316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.b_0"],"DA":[],"O":{"%":317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_0"],"DA":[],"O":{"%":318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_44.w_0"],"DA":[],"O":{"%":319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_2"],"DA":[],"O":{"%":320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_1"],"DA":[],"O":{"%":321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.b_0"],"DA":[],"O":{"%":322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_0"],"DA":[],"O":{"%":323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_43.w_0"],"DA":[],"O":{"%":324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_2"],"DA":[],"O":{"%":325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_1"],"DA":[],"O":{"%":326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.b_0"],"DA":[],"O":{"%":327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_0"],"DA":[],"O":{"%":328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_42.w_0"],"DA":[],"O":{"%":329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_2"],"DA":[],"O":{"%":330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_1"],"DA":[],"O":{"%":331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.b_0"],"DA":[],"O":{"%":332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_0"],"DA":[],"O":{"%":333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_41.w_0"],"DA":[],"O":{"%":334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_2"],"DA":[],"O":{"%":335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_1"],"DA":[],"O":{"%":336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.b_0"],"DA":[],"O":{"%":337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_0"],"DA":[],"O":{"%":338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_40.w_0"],"DA":[],"O":{"%":339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_2"],"DA":[],"O":{"%":340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_1"],"DA":[],"O":{"%":341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.b_0"],"DA":[],"O":{"%":342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_0"],"DA":[],"O":{"%":343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_39.w_0"],"DA":[],"O":{"%":344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_2"],"DA":[],"O":{"%":345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_1"],"DA":[],"O":{"%":346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.b_0"],"DA":[],"O":{"%":347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_0"],"DA":[],"O":{"%":348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_38.w_0"],"DA":[],"O":{"%":349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_2"],"DA":[],"O":{"%":350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_1"],"DA":[],"O":{"%":351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.b_0"],"DA":[],"O":{"%":352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_0"],"DA":[],"O":{"%":353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_37.w_0"],"DA":[],"O":{"%":354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_2"],"DA":[],"O":{"%":355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_1"],"DA":[],"O":{"%":356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.b_0"],"DA":[],"O":{"%":357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_0"],"DA":[],"O":{"%":358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_36.w_0"],"DA":[],"O":{"%":359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_2"],"DA":[],"O":{"%":360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_1"],"DA":[],"O":{"%":361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.b_0"],"DA":[],"O":{"%":362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_0"],"DA":[],"O":{"%":363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_35.w_0"],"DA":[],"O":{"%":364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1664,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_2"],"DA":[],"O":{"%":365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_1"],"DA":[],"O":{"%":366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.b_0"],"DA":[],"O":{"%":367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_0"],"DA":[],"O":{"%":368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_34.w_0"],"DA":[],"O":{"%":369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_2"],"DA":[],"O":{"%":370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_1"],"DA":[],"O":{"%":371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.b_0"],"DA":[],"O":{"%":372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_0"],"DA":[],"O":{"%":373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_33.w_0"],"DA":[],"O":{"%":374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_2"],"DA":[],"O":{"%":375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_1"],"DA":[],"O":{"%":376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.b_0"],"DA":[],"O":{"%":377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_0"],"DA":[],"O":{"%":378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_32.w_0"],"DA":[],"O":{"%":379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_2"],"DA":[],"O":{"%":380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_1"],"DA":[],"O":{"%":381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.b_0"],"DA":[],"O":{"%":382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_0"],"DA":[],"O":{"%":383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_31.w_0"],"DA":[],"O":{"%":384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_2"],"DA":[],"O":{"%":385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_1"],"DA":[],"O":{"%":386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.b_0"],"DA":[],"O":{"%":387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_0"],"DA":[],"O":{"%":388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_30.w_0"],"DA":[],"O":{"%":389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_2"],"DA":[],"O":{"%":390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_1"],"DA":[],"O":{"%":391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.b_0"],"DA":[],"O":{"%":392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_0"],"DA":[],"O":{"%":393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.w_0"],"DA":[],"O":{"%":394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_2"],"DA":[],"O":{"%":395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_1"],"DA":[],"O":{"%":396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.b_0"],"DA":[],"O":{"%":397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_0"],"DA":[],"O":{"%":398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.w_0"],"DA":[],"O":{"%":399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_2"],"DA":[],"O":{"%":400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_1"],"DA":[],"O":{"%":401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.b_0"],"DA":[],"O":{"%":402,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_0"],"DA":[],"O":{"%":403,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_27.w_0"],"DA":[],"O":{"%":404,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_2"],"DA":[],"O":{"%":405,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_1"],"DA":[],"O":{"%":406,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.b_0"],"DA":[],"O":{"%":407,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_0"],"DA":[],"O":{"%":408,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_26.w_0"],"DA":[],"O":{"%":409,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_2"],"DA":[],"O":{"%":410,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_1"],"DA":[],"O":{"%":411,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.b_0"],"DA":[],"O":{"%":412,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_0"],"DA":[],"O":{"%":413,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.w_0"],"DA":[],"O":{"%":414,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_2"],"DA":[],"O":{"%":415,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_1"],"DA":[],"O":{"%":416,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.b_0"],"DA":[],"O":{"%":417,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_0"],"DA":[],"O":{"%":418,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.w_0"],"DA":[],"O":{"%":419,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_2"],"DA":[],"O":{"%":420,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_1"],"DA":[],"O":{"%":421,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.b_0"],"DA":[],"O":{"%":422,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_0"],"DA":[],"O":{"%":423,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_23.w_0"],"DA":[],"O":{"%":424,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_2"],"DA":[],"O":{"%":425,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_1"],"DA":[],"O":{"%":426,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.b_0"],"DA":[],"O":{"%":427,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_0"],"DA":[],"O":{"%":428,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_22.w_0"],"DA":[],"O":{"%":429,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_2"],"DA":[],"O":{"%":430,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_1"],"DA":[],"O":{"%":431,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.b_0"],"DA":[],"O":{"%":432,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_0"],"DA":[],"O":{"%":433,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_21.w_0"],"DA":[],"O":{"%":434,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_2"],"DA":[],"O":{"%":435,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_1"],"DA":[],"O":{"%":436,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.b_0"],"DA":[],"O":{"%":437,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_0"],"DA":[],"O":{"%":438,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_20.w_0"],"DA":[],"O":{"%":439,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,704,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_2"],"DA":[],"O":{"%":440,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_1"],"DA":[],"O":{"%":441,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.b_0"],"DA":[],"O":{"%":442,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_0"],"DA":[],"O":{"%":443,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_19.w_0"],"DA":[],"O":{"%":444,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_2"],"DA":[],"O":{"%":445,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_1"],"DA":[],"O":{"%":446,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.b_0"],"DA":[],"O":{"%":447,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_0"],"DA":[],"O":{"%":448,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_18.w_0"],"DA":[],"O":{"%":449,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_2"],"DA":[],"O":{"%":450,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_1"],"DA":[],"O":{"%":451,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.b_0"],"DA":[],"O":{"%":452,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_0"],"DA":[],"O":{"%":453,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_17.w_0"],"DA":[],"O":{"%":454,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_2"],"DA":[],"O":{"%":455,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_1"],"DA":[],"O":{"%":456,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.b_0"],"DA":[],"O":{"%":457,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_0"],"DA":[],"O":{"%":458,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_16.w_0"],"DA":[],"O":{"%":459,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_2"],"DA":[],"O":{"%":460,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_1"],"DA":[],"O":{"%":461,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.b_0"],"DA":[],"O":{"%":462,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_0"],"DA":[],"O":{"%":463,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_15.w_0"],"DA":[],"O":{"%":464,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_2"],"DA":[],"O":{"%":465,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_1"],"DA":[],"O":{"%":466,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.b_0"],"DA":[],"O":{"%":467,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_0"],"DA":[],"O":{"%":468,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_14.w_0"],"DA":[],"O":{"%":469,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,128,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_2"],"DA":[],"O":{"%":470,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_1"],"DA":[],"O":{"%":471,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.b_0"],"DA":[],"O":{"%":472,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_0"],"DA":[],"O":{"%":473,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_13.w_0"],"DA":[],"O":{"%":474,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_2"],"DA":[],"O":{"%":475,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_1"],"DA":[],"O":{"%":476,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.b_0"],"DA":[],"O":{"%":477,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_0"],"DA":[],"O":{"%":478,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_12.w_0"],"DA":[],"O":{"%":479,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_2"],"DA":[],"O":{"%":480,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_1"],"DA":[],"O":{"%":481,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.b_0"],"DA":[],"O":{"%":482,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_0"],"DA":[],"O":{"%":483,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_11.w_0"],"DA":[],"O":{"%":484,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,336,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_2"],"DA":[],"O":{"%":485,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_1"],"DA":[],"O":{"%":486,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.b_0"],"DA":[],"O":{"%":487,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_0"],"DA":[],"O":{"%":488,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_10.w_0"],"DA":[],"O":{"%":489,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_2"],"DA":[],"O":{"%":490,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_1"],"DA":[],"O":{"%":491,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.b_0"],"DA":[],"O":{"%":492,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_0"],"DA":[],"O":{"%":493,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_9.w_0"],"DA":[],"O":{"%":494,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_2"],"DA":[],"O":{"%":495,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_1"],"DA":[],"O":{"%":496,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.b_0"],"DA":[],"O":{"%":497,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_0"],"DA":[],"O":{"%":498,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_8.w_0"],"DA":[],"O":{"%":499,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_2"],"DA":[],"O":{"%":500,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_1"],"DA":[],"O":{"%":501,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.b_0"],"DA":[],"O":{"%":502,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_0"],"DA":[],"O":{"%":503,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_7.w_0"],"DA":[],"O":{"%":504,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_2"],"DA":[],"O":{"%":505,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_1"],"DA":[],"O":{"%":506,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.b_0"],"DA":[],"O":{"%":507,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_0"],"DA":[],"O":{"%":508,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_6.w_0"],"DA":[],"O":{"%":509,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_2"],"DA":[],"O":{"%":510,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_1"],"DA":[],"O":{"%":511,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.b_0"],"DA":[],"O":{"%":512,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_0"],"DA":[],"O":{"%":513,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_5.w_0"],"DA":[],"O":{"%":514,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_2"],"DA":[],"O":{"%":515,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_1"],"DA":[],"O":{"%":516,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.b_0"],"DA":[],"O":{"%":517,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_0"],"DA":[],"O":{"%":518,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_4.w_0"],"DA":[],"O":{"%":519,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_2"],"DA":[],"O":{"%":520,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_1"],"DA":[],"O":{"%":521,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.b_0"],"DA":[],"O":{"%":522,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_0"],"DA":[],"O":{"%":523,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_3.w_0"],"DA":[],"O":{"%":524,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_2"],"DA":[],"O":{"%":525,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_1"],"DA":[],"O":{"%":526,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.b_0"],"DA":[],"O":{"%":527,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_0"],"DA":[],"O":{"%":528,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_2.w_0"],"DA":[],"O":{"%":529,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,16,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_2"],"DA":[],"O":{"%":530,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_1"],"DA":[],"O":{"%":531,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.b_0"],"DA":[],"O":{"%":532,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_0"],"DA":[],"O":{"%":533,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_1.w_0"],"DA":[],"O":{"%":534,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,32,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_2"],"DA":[],"O":{"%":535,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_1"],"DA":[],"O":{"%":536,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.b_0"],"DA":[],"O":{"%":537,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_0"],"DA":[],"O":{"%":538,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_0.w_0"],"DA":[],"O":{"%":539,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,3,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"1.data","A":[{"AT":{"#":"0.a_str","D":"x"},"N":"name"},{"AT":{"#":"1.a_intarray","D":[-1,3,-1,-1]},"N":"shape"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[0,0,""]},"N":"place"}],"I":[],"O":[{"%":540,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":540},{"%":539}],"O":[{"%":541,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":541},{"%":536},{"%":535},{"%":538},{"%":537}],"O":[{"%":542,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}},{"%":543,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":544,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":545,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":546,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":547,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":542}],"O":[{"%":548,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":548},{"%":534}],"O":[{"%":549,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":549},{"%":531},{"%":530},{"%":533},{"%":532}],"O":[{"%":550,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,-1,-1],"NCHW",[],0]}},{"%":551,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":552,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":553,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":554,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":555,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":550}],"O":[{"%":556,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":556},{"%":529}],"O":[{"%":557,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":557},{"%":526},{"%":525},{"%":528},{"%":527}],"O":[{"%":558,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}},{"%":559,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":560,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":561,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":562,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":563,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":558}],"O":[{"%":564,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2},{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":565,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":true},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"max"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":false},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[{"%":548},{"%":565}],"O":[{"%":566,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[],"O":[{"%":567,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":566},{"%":564}],"O":[{"%":568,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":568},{"%":567}],"O":[{"%":569,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":569},{"%":524}],"O":[{"%":570,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":570},{"%":521},{"%":520},{"%":523},{"%":522}],"O":[{"%":571,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}},{"%":572,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":573,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":574,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":575,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":576,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":571}],"O":[{"%":577,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":577},{"%":519}],"O":[{"%":578,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":578},{"%":516},{"%":515},{"%":518},{"%":517}],"O":[{"%":579,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":580,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":581,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":582,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":583,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":584,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":579}],"O":[{"%":585,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":585},{"%":514}],"O":[{"%":586,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":586},{"%":511},{"%":510},{"%":513},{"%":512}],"O":[{"%":587,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":588,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":589,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":590,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":591,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":592,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":587}],"O":[{"%":593,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":593},{"%":509}],"O":[{"%":594,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":594},{"%":506},{"%":505},{"%":508},{"%":507}],"O":[{"%":595,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":596,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":597,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":598,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":599,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":600,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":595}],"O":[{"%":601,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":601},{"%":504}],"O":[{"%":602,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":602},{"%":501},{"%":500},{"%":503},{"%":502}],"O":[{"%":603,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":604,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":605,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":606,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":607,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":608,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":603}],"O":[{"%":609,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":609},{"%":499}],"O":[{"%":610,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":610},{"%":496},{"%":495},{"%":498},{"%":497}],"O":[{"%":611,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":612,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":613,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":614,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":615,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":616,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":611}],"O":[{"%":617,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":617},{"%":494}],"O":[{"%":618,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":618},{"%":491},{"%":490},{"%":493},{"%":492}],"O":[{"%":619,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":620,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":621,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":622,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":623,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":624,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":619}],"O":[{"%":625,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":625},{"%":489}],"O":[{"%":626,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":626},{"%":486},{"%":485},{"%":488},{"%":487}],"O":[{"%":627,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":628,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":629,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":630,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":631,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":632,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":627}],"O":[{"%":633,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":634,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":585},{"%":593},{"%":601},{"%":609},{"%":617},{"%":625},{"%":633}],"O":[{"%":635,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":635},{"%":634}],"O":[{"%":636,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,336,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":636},{"%":484}],"O":[{"%":637,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":637},{"%":481},{"%":480},{"%":483},{"%":482}],"O":[{"%":638,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":639,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":640,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":641,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":642,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":643,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":638}],"O":[{"%":644,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":644},{"%":479}],"O":[{"%":645,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":645},{"%":476},{"%":475},{"%":478},{"%":477}],"O":[{"%":646,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}},{"%":647,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":648,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":649,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":650,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":651,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":646}],"O":[{"%":652,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":652},{"%":474}],"O":[{"%":653,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":653},{"%":471},{"%":470},{"%":473},{"%":472}],"O":[{"%":654,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}},{"%":655,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":656,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":657,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":658,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":659,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":654},{"%":469}],"O":[{"%":660,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":660},{"%":466},{"%":465},{"%":468},{"%":467}],"O":[{"%":661,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":662,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":663,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":664,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":665,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":666,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":661}],"O":[{"%":667,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":667},{"%":464}],"O":[{"%":668,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":668},{"%":461},{"%":460},{"%":463},{"%":462}],"O":[{"%":669,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":670,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":671,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":672,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":673,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":674,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":669}],"O":[{"%":675,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":675},{"%":459}],"O":[{"%":676,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":676},{"%":456},{"%":455},{"%":458},{"%":457}],"O":[{"%":677,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":678,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":679,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":680,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":681,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":682,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":677}],"O":[{"%":683,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":683},{"%":454}],"O":[{"%":684,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":684},{"%":451},{"%":450},{"%":453},{"%":452}],"O":[{"%":685,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":686,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":687,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":688,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":689,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":690,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":685}],"O":[{"%":691,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":691},{"%":449}],"O":[{"%":692,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":692},{"%":446},{"%":445},{"%":448},{"%":447}],"O":[{"%":693,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":694,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":695,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":696,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":697,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":698,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":693}],"O":[{"%":699,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":699},{"%":444}],"O":[{"%":700,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":700},{"%":441},{"%":440},{"%":443},{"%":442}],"O":[{"%":701,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":702,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":703,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":704,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":705,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":706,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":701}],"O":[{"%":707,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":708,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":654},{"%":667},{"%":675},{"%":683},{"%":691},{"%":699},{"%":707}],"O":[{"%":709,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":709},{"%":708}],"O":[{"%":710,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,704,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":710},{"%":439}],"O":[{"%":711,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":711},{"%":436},{"%":435},{"%":438},{"%":437}],"O":[{"%":712,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}},{"%":713,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":714,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":715,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":716,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":717,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":712}],"O":[{"%":718,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":718},{"%":434}],"O":[{"%":719,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":719},{"%":431},{"%":430},{"%":433},{"%":432}],"O":[{"%":720,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":721,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":722,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":723,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":724,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":725,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":720}],"O":[{"%":726,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":512},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":726},{"%":429}],"O":[{"%":727,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":727},{"%":426},{"%":425},{"%":428},{"%":427}],"O":[{"%":728,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":729,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":730,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":731,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":732,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":733,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":728},{"%":424}],"O":[{"%":734,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":734},{"%":421},{"%":420},{"%":423},{"%":422}],"O":[{"%":735,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":736,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":737,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":738,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":739,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":740,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":735},{"%":419}],"O":[{"%":741,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":741},{"%":416},{"%":415},{"%":418},{"%":417}],"O":[{"%":742,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":743,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":744,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":745,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":746,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":747,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":742}],"O":[{"%":748,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":748},{"%":414}],"O":[{"%":749,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":749},{"%":411},{"%":410},{"%":413},{"%":412}],"O":[{"%":750,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":751,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":752,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":753,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":754,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":755,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":750},{"%":409}],"O":[{"%":756,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":756},{"%":406},{"%":405},{"%":408},{"%":407}],"O":[{"%":757,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":758,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":759,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":760,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":761,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":762,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":757}],"O":[{"%":763,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":763},{"%":404}],"O":[{"%":764,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":764},{"%":401},{"%":400},{"%":403},{"%":402}],"O":[{"%":765,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":766,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":767,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":768,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":769,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":770,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":765},{"%":399}],"O":[{"%":771,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":771},{"%":396},{"%":395},{"%":398},{"%":397}],"O":[{"%":772,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":773,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":774,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":775,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":776,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":777,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":772}],"O":[{"%":778,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":778},{"%":394}],"O":[{"%":779,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":779},{"%":391},{"%":390},{"%":393},{"%":392}],"O":[{"%":780,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":781,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":782,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":783,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":784,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":785,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":780},{"%":389}],"O":[{"%":786,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":786},{"%":386},{"%":385},{"%":388},{"%":387}],"O":[{"%":787,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":788,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":789,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":790,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":791,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":792,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":787}],"O":[{"%":793,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":793},{"%":384}],"O":[{"%":794,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":794},{"%":381},{"%":380},{"%":383},{"%":382}],"O":[{"%":795,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":796,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":797,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":798,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":799,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":800,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":795},{"%":379}],"O":[{"%":801,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":801},{"%":376},{"%":375},{"%":378},{"%":377}],"O":[{"%":802,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":803,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":804,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":805,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":806,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":807,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":802}],"O":[{"%":808,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":808},{"%":374}],"O":[{"%":809,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":809},{"%":371},{"%":370},{"%":373},{"%":372}],"O":[{"%":810,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":811,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":812,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":813,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":814,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":815,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":810},{"%":369}],"O":[{"%":816,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":816},{"%":366},{"%":365},{"%":368},{"%":367}],"O":[{"%":817,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":818,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":819,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":820,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":821,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":822,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":817}],"O":[{"%":823,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":824,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":728},{"%":748},{"%":763},{"%":778},{"%":793},{"%":808},{"%":823}],"O":[{"%":825,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":825},{"%":824}],"O":[{"%":826,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1664,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":826},{"%":364}],"O":[{"%":827,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":827},{"%":361},{"%":360},{"%":363},{"%":362}],"O":[{"%":828,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":829,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":830,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":831,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":832,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":833,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":828}],"O":[{"%":834,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":834},{"%":359}],"O":[{"%":835,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":835},{"%":356},{"%":355},{"%":358},{"%":357}],"O":[{"%":836,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":837,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":838,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":839,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":840,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":841,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":836}],"O":[{"%":842,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":842},{"%":354}],"O":[{"%":843,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":843},{"%":351},{"%":350},{"%":353},{"%":352}],"O":[{"%":844,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":845,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":846,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":847,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":848,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":849,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":844},{"%":349}],"O":[{"%":850,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":850},{"%":346},{"%":345},{"%":348},{"%":347}],"O":[{"%":851,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":852,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":853,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":854,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":855,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":856,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":851}],"O":[{"%":857,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":857},{"%":344}],"O":[{"%":858,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":858},{"%":341},{"%":340},{"%":343},{"%":342}],"O":[{"%":859,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":860,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":861,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":862,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":863,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":864,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":859},{"%":339}],"O":[{"%":865,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":865},{"%":336},{"%":335},{"%":338},{"%":337}],"O":[{"%":866,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":867,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":868,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":869,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":870,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":871,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":866}],"O":[{"%":872,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":872},{"%":334}],"O":[{"%":873,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":873},{"%":331},{"%":330},{"%":333},{"%":332}],"O":[{"%":874,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":875,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":876,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":877,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":878,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":879,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":874},{"%":329}],"O":[{"%":880,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":880},{"%":326},{"%":325},{"%":328},{"%":327}],"O":[{"%":881,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":882,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":883,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":884,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":885,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":886,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":881}],"O":[{"%":887,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":887},{"%":324}],"O":[{"%":888,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":888},{"%":321},{"%":320},{"%":323},{"%":322}],"O":[{"%":889,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":890,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":891,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":892,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":893,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":894,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":889},{"%":319}],"O":[{"%":895,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":895},{"%":316},{"%":315},{"%":318},{"%":317}],"O":[{"%":896,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":897,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":898,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":899,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":900,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":901,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":896}],"O":[{"%":902,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":902},{"%":314}],"O":[{"%":903,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":903},{"%":311},{"%":310},{"%":313},{"%":312}],"O":[{"%":904,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":905,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":906,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":907,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":908,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":909,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":904},{"%":309}],"O":[{"%":910,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":910},{"%":306},{"%":305},{"%":308},{"%":307}],"O":[{"%":911,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":912,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":913,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":914,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":915,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":916,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":911}],"O":[{"%":917,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":917},{"%":304}],"O":[{"%":918,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":918},{"%":301},{"%":300},{"%":303},{"%":302}],"O":[{"%":919,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":920,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":921,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":922,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":923,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":924,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":919},{"%":299}],"O":[{"%":925,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":925},{"%":296},{"%":295},{"%":298},{"%":297}],"O":[{"%":926,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":927,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":928,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":929,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":930,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":931,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":926}],"O":[{"%":932,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[],"O":[{"%":933,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":842},{"%":857},{"%":872},{"%":887},{"%":902},{"%":917},{"%":932}],"O":[{"%":934,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":934},{"%":933}],"O":[{"%":935,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":935},{"%":294}],"O":[{"%":936,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":936},{"%":291},{"%":290},{"%":293},{"%":292}],"O":[{"%":937,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":938,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":939,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":940,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":941,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":942,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":937}],"O":[{"%":943,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":943},{"%":289}],"O":[{"%":944,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":944},{"%":286},{"%":285},{"%":288},{"%":287}],"O":[{"%":945,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":946,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":947,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":948,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":949,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":950,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":945}],"O":[{"%":951,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":951},{"%":842}],"O":[{"%":952,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":952},{"%":284}],"O":[{"%":953,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":953},{"%":281},{"%":280},{"%":283},{"%":282}],"O":[{"%":954,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":955,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":956,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":957,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":958,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":959,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":954},{"%":279}],"O":[{"%":960,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":960},{"%":276},{"%":275},{"%":278},{"%":277}],"O":[{"%":961,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":962,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":963,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":964,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":965,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":966,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":961}],"O":[{"%":967,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":967},{"%":274}],"O":[{"%":968,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":968},{"%":271},{"%":270},{"%":273},{"%":272}],"O":[{"%":969,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":970,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":971,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":972,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":973,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":974,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":969},{"%":269}],"O":[{"%":975,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":975},{"%":266},{"%":265},{"%":268},{"%":267}],"O":[{"%":976,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":977,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":978,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":979,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":980,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":981,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":976}],"O":[{"%":982,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":982},{"%":264}],"O":[{"%":983,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":983},{"%":261},{"%":260},{"%":263},{"%":262}],"O":[{"%":984,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":985,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":986,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":987,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":988,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":989,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":984},{"%":259}],"O":[{"%":990,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":990},{"%":256},{"%":255},{"%":258},{"%":257}],"O":[{"%":991,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":992,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":993,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":994,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":995,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":996,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":991}],"O":[{"%":997,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":997},{"%":254}],"O":[{"%":998,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":998},{"%":251},{"%":250},{"%":253},{"%":252}],"O":[{"%":999,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1000,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1001,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1002,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1003,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1004,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":999},{"%":249}],"O":[{"%":1005,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1005},{"%":246},{"%":245},{"%":248},{"%":247}],"O":[{"%":1006,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1007,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1008,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1009,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1010,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1011,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1006}],"O":[{"%":1012,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1012},{"%":244}],"O":[{"%":1013,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1013},{"%":241},{"%":240},{"%":243},{"%":242}],"O":[{"%":1014,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1015,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1016,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1017,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1018,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1019,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1014},{"%":239}],"O":[{"%":1020,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1020},{"%":236},{"%":235},{"%":238},{"%":237}],"O":[{"%":1021,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1022,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1023,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1024,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1025,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1026,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1021}],"O":[{"%":1027,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1027},{"%":234}],"O":[{"%":1028,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1028},{"%":231},{"%":230},{"%":233},{"%":232}],"O":[{"%":1029,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1030,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1031,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1032,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1033,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1034,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1029},{"%":229}],"O":[{"%":1035,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1035},{"%":226},{"%":225},{"%":228},{"%":227}],"O":[{"%":1036,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1037,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1038,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1039,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1040,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1041,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1036}],"O":[{"%":1042,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1043,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":952},{"%":967},{"%":982},{"%":997},{"%":1012},{"%":1027},{"%":1042}],"O":[{"%":1044,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":1044},{"%":1043}],"O":[{"%":1045,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1045},{"%":224}],"O":[{"%":1046,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1046},{"%":221},{"%":220},{"%":223},{"%":222}],"O":[{"%":1047,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":1048,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1049,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1050,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1051,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1052,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":1047}],"O":[{"%":1053,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1053},{"%":219}],"O":[{"%":1054,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1054},{"%":216},{"%":215},{"%":218},{"%":217}],"O":[{"%":1055,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":1056,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1057,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1058,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1059,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1060,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1055}],"O":[{"%":1061,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":1061},{"%":952}],"O":[{"%":1062,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1024},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1062},{"%":214}],"O":[{"%":1063,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1063},{"%":211},{"%":210},{"%":213},{"%":212}],"O":[{"%":1064,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":1065,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1066,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1067,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1068,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1069,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1064},{"%":209}],"O":[{"%":1070,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1070},{"%":206},{"%":205},{"%":208},{"%":207}],"O":[{"%":1071,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1072,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1073,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1074,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1075,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1076,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1071},{"%":204}],"O":[{"%":1077,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1077},{"%":201},{"%":200},{"%":203},{"%":202}],"O":[{"%":1078,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1079,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1080,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1081,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1082,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1083,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1078}],"O":[{"%":1084,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1084},{"%":199}],"O":[{"%":1085,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1085},{"%":196},{"%":195},{"%":198},{"%":197}],"O":[{"%":1086,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1087,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1088,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1089,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1090,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1091,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1086},{"%":194}],"O":[{"%":1092,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1092},{"%":191},{"%":190},{"%":193},{"%":192}],"O":[{"%":1093,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1094,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1095,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1096,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1097,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1098,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1093}],"O":[{"%":1099,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1099},{"%":189}],"O":[{"%":1100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1100},{"%":186},{"%":185},{"%":188},{"%":187}],"O":[{"%":1101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1101},{"%":184}],"O":[{"%":1107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1107},{"%":181},{"%":180},{"%":183},{"%":182}],"O":[{"%":1108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1108}],"O":[{"%":1114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1114},{"%":179}],"O":[{"%":1115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1115},{"%":176},{"%":175},{"%":178},{"%":177}],"O":[{"%":1116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1116},{"%":174}],"O":[{"%":1122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1122},{"%":171},{"%":170},{"%":173},{"%":172}],"O":[{"%":1123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1123}],"O":[{"%":1129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1129},{"%":169}],"O":[{"%":1130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1130},{"%":166},{"%":165},{"%":168},{"%":167}],"O":[{"%":1131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1131},{"%":164}],"O":[{"%":1137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1137},{"%":161},{"%":160},{"%":163},{"%":162}],"O":[{"%":1138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1138}],"O":[{"%":1144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1144},{"%":159}],"O":[{"%":1145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1145},{"%":156},{"%":155},{"%":158},{"%":157}],"O":[{"%":1146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1146},{"%":154}],"O":[{"%":1152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1152},{"%":151},{"%":150},{"%":153},{"%":152}],"O":[{"%":1153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1153}],"O":[{"%":1159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":1160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":1064},{"%":1084},{"%":1099},{"%":1114},{"%":1129},{"%":1144},{"%":1159}],"O":[{"%":1161,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":1161},{"%":1160}],"O":[{"%":1162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3328,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1162},{"%":149}],"O":[{"%":1163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1163},{"%":146},{"%":145},{"%":148},{"%":147}],"O":[{"%":1164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":1165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":1164}],"O":[{"%":1170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1170},{"%":144}],"O":[{"%":1171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1171},{"%":141},{"%":140},{"%":143},{"%":142}],"O":[{"%":1172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,-1,-1],"NCHW",[],0]}},{"%":1173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1172}],"O":[{"%":1178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D/"},"N":"struct_name"}],"I":[{"%":1178},{"%":136}],"O":[{"%":1179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1062},{"%":137}],"O":[{"%":1180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":726},{"%":138}],"O":[{"%":1181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":652},{"%":139}],"O":[{"%":1182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1179},{"%":0},{"%":0},{"%":0}],"O":[{"%":1183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1180},{"%":1183}],"O":[{"%":1184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1184},{"%":0},{"%":0},{"%":0}],"O":[{"%":1185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1181},{"%":1185}],"O":[{"%":1186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1186},{"%":0},{"%":0},{"%":0}],"O":[{"%":1187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1182},{"%":1187}],"O":[{"%":1188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1179},{"%":132}],"O":[{"%":1189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1184},{"%":133}],"O":[{"%":1190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1186},{"%":134}],"O":[{"%":1191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1188},{"%":135}],"O":[{"%":1192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1192},{"%":131}],"O":[{"%":1193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1191},{"%":1193}],"O":[{"%":1194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1194},{"%":130}],"O":[{"%":1195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1190},{"%":1195}],"O":[{"%":1196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1196},{"%":129}],"O":[{"%":1197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1189},{"%":1197}],"O":[{"%":1198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_11/"},"N":"struct_name"}],"I":[{"%":1192},{"%":128}],"O":[{"%":1199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_12/"},"N":"struct_name"}],"I":[{"%":1194},{"%":127}],"O":[{"%":1200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_13/"},"N":"struct_name"}],"I":[{"%":1196},{"%":126}],"O":[{"%":1201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_14/"},"N":"struct_name"}],"I":[{"%":1198},{"%":125}],"O":[{"%":1202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[{"%":1202},{"%":46}],"O":[{"%":1203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[{"%":45},{"%":1204}],"O":[{"%":1205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[{"%":1203},{"%":1205}],"O":[{"%":1206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1206},{"%":30}],"O":[{"%":1207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":29},{"%":1208}],"O":[{"%":1209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1207},{"%":1209}],"O":[{"%":1210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1206},{"%":42}],"O":[{"%":1211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":41},{"%":1212}],"O":[{"%":1213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1211},{"%":1213}],"O":[{"%":1214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1206},{"%":36}],"O":[{"%":1215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":35},{"%":1216}],"O":[{"%":1217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1215},{"%":1217}],"O":[{"%":1218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1210},{"%":1214}],"O":[{"%":1219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1219},{"%":1218}],"O":[{"%":1220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1220},{"%":28}],"O":[{"%":1221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":27},{"%":1222}],"O":[{"%":1223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1221},{"%":1223}],"O":[{"%":1224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1220},{"%":40}],"O":[{"%":1225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":39},{"%":1226}],"O":[{"%":1227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1225},{"%":1227}],"O":[{"%":1228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1220},{"%":34}],"O":[{"%":1229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":33},{"%":1230}],"O":[{"%":1231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1229},{"%":1231}],"O":[{"%":1232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1224},{"%":1228}],"O":[{"%":1233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1233},{"%":1232}],"O":[{"%":1234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1234},{"%":26}],"O":[{"%":1235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":25},{"%":1236}],"O":[{"%":1237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1235},{"%":1237}],"O":[{"%":1238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1234},{"%":38}],"O":[{"%":1239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":37},{"%":1240}],"O":[{"%":1241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1239},{"%":1241}],"O":[{"%":1242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1234},{"%":32}],"O":[{"%":1243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":31},{"%":1244}],"O":[{"%":1245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1243},{"%":1245}],"O":[{"%":1246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1238},{"%":1242}],"O":[{"%":1247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1247},{"%":1246}],"O":[{"%":1248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1248},{"%":44}],"O":[{"%":1249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":43},{"%":1250}],"O":[{"%":1251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1249},{"%":1251}],"O":[{"%":1252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1252},{"%":22},{"%":21},{"%":24},{"%":23}],"O":[{"%":1253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/ReLU/"},"N":"struct_name"}],"I":[{"%":1253}],"O":[{"%":1259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1202},{"%":1259}],"O":[{"%":1260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1201},{"%":72}],"O":[{"%":1261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":71},{"%":1262}],"O":[{"%":1263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1261},{"%":1263}],"O":[{"%":1264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1264},{"%":56}],"O":[{"%":1265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":55},{"%":1266}],"O":[{"%":1267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1265},{"%":1267}],"O":[{"%":1268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1264},{"%":68}],"O":[{"%":1269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":67},{"%":1270}],"O":[{"%":1271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1269},{"%":1271}],"O":[{"%":1272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1264},{"%":62}],"O":[{"%":1273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":61},{"%":1274}],"O":[{"%":1275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1273},{"%":1275}],"O":[{"%":1276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1268},{"%":1272}],"O":[{"%":1277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1277},{"%":1276}],"O":[{"%":1278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1278},{"%":54}],"O":[{"%":1279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":53},{"%":1280}],"O":[{"%":1281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1279},{"%":1281}],"O":[{"%":1282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1278},{"%":66}],"O":[{"%":1283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":65},{"%":1284}],"O":[{"%":1285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1283},{"%":1285}],"O":[{"%":1286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1278},{"%":60}],"O":[{"%":1287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":59},{"%":1288}],"O":[{"%":1289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1287},{"%":1289}],"O":[{"%":1290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1282},{"%":1286}],"O":[{"%":1291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1291},{"%":1290}],"O":[{"%":1292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1292},{"%":52}],"O":[{"%":1293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":51},{"%":1294}],"O":[{"%":1295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1293},{"%":1295}],"O":[{"%":1296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1292},{"%":64}],"O":[{"%":1297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":63},{"%":1298}],"O":[{"%":1299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1297},{"%":1299}],"O":[{"%":1300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1292},{"%":58}],"O":[{"%":1301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":57},{"%":1302}],"O":[{"%":1303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1301},{"%":1303}],"O":[{"%":1304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1296},{"%":1300}],"O":[{"%":1305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1305},{"%":1304}],"O":[{"%":1306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1306},{"%":70}],"O":[{"%":1307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":69},{"%":1308}],"O":[{"%":1309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1307},{"%":1309}],"O":[{"%":1310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1310},{"%":48},{"%":47},{"%":50},{"%":49}],"O":[{"%":1311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1311}],"O":[{"%":1317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1201},{"%":1317}],"O":[{"%":1318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":1200},{"%":98}],"O":[{"%":1319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":97},{"%":1320}],"O":[{"%":1321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":1319},{"%":1321}],"O":[{"%":1322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1322},{"%":82}],"O":[{"%":1323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":81},{"%":1324}],"O":[{"%":1325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1323},{"%":1325}],"O":[{"%":1326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1322},{"%":94}],"O":[{"%":1327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":93},{"%":1328}],"O":[{"%":1329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1327},{"%":1329}],"O":[{"%":1330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1322},{"%":88}],"O":[{"%":1331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":87},{"%":1332}],"O":[{"%":1333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1331},{"%":1333}],"O":[{"%":1334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1326},{"%":1330}],"O":[{"%":1335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1335},{"%":1334}],"O":[{"%":1336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1336},{"%":80}],"O":[{"%":1337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":79},{"%":1338}],"O":[{"%":1339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1337},{"%":1339}],"O":[{"%":1340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1336},{"%":92}],"O":[{"%":1341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":91},{"%":1342}],"O":[{"%":1343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1341},{"%":1343}],"O":[{"%":1344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1336},{"%":86}],"O":[{"%":1345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":85},{"%":1346}],"O":[{"%":1347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1345},{"%":1347}],"O":[{"%":1348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1340},{"%":1344}],"O":[{"%":1349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1349},{"%":1348}],"O":[{"%":1350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1350},{"%":78}],"O":[{"%":1351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":77},{"%":1352}],"O":[{"%":1353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1351},{"%":1353}],"O":[{"%":1354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1350},{"%":90}],"O":[{"%":1355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":89},{"%":1356}],"O":[{"%":1357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1355},{"%":1357}],"O":[{"%":1358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1350},{"%":84}],"O":[{"%":1359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":83},{"%":1360}],"O":[{"%":1361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1359},{"%":1361}],"O":[{"%":1362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1354},{"%":1358}],"O":[{"%":1363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1363},{"%":1362}],"O":[{"%":1364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1364},{"%":96}],"O":[{"%":1365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":95},{"%":1366}],"O":[{"%":1367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1365},{"%":1367}],"O":[{"%":1368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1368},{"%":74},{"%":73},{"%":76},{"%":75}],"O":[{"%":1369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/ReLU/"},"N":"struct_name"}],"I":[{"%":1369}],"O":[{"%":1375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1200},{"%":1375}],"O":[{"%":1376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":1199},{"%":124}],"O":[{"%":1377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":123},{"%":1378}],"O":[{"%":1379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":1377},{"%":1379}],"O":[{"%":1380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1380},{"%":108}],"O":[{"%":1381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":107},{"%":1382}],"O":[{"%":1383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1381},{"%":1383}],"O":[{"%":1384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1380},{"%":120}],"O":[{"%":1385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":119},{"%":1386}],"O":[{"%":1387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1385},{"%":1387}],"O":[{"%":1388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1380},{"%":114}],"O":[{"%":1389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":113},{"%":1390}],"O":[{"%":1391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1389},{"%":1391}],"O":[{"%":1392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1384},{"%":1388}],"O":[{"%":1393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1393},{"%":1392}],"O":[{"%":1394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1394},{"%":106}],"O":[{"%":1395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":105},{"%":1396}],"O":[{"%":1397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1395},{"%":1397}],"O":[{"%":1398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1394},{"%":118}],"O":[{"%":1399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":117},{"%":1400}],"O":[{"%":1401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1399},{"%":1401}],"O":[{"%":1402,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1394},{"%":112}],"O":[{"%":1403,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1404,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":111},{"%":1404}],"O":[{"%":1405,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1403},{"%":1405}],"O":[{"%":1406,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1398},{"%":1402}],"O":[{"%":1407,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1407},{"%":1406}],"O":[{"%":1408,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1408},{"%":104}],"O":[{"%":1409,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1410,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":103},{"%":1410}],"O":[{"%":1411,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1409},{"%":1411}],"O":[{"%":1412,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1408},{"%":116}],"O":[{"%":1413,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1414,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":115},{"%":1414}],"O":[{"%":1415,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1413},{"%":1415}],"O":[{"%":1416,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1408},{"%":110}],"O":[{"%":1417,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1418,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":109},{"%":1418}],"O":[{"%":1419,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1417},{"%":1419}],"O":[{"%":1420,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1412},{"%":1416}],"O":[{"%":1421,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1421},{"%":1420}],"O":[{"%":1422,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1422},{"%":122}],"O":[{"%":1423,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1424,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":121},{"%":1424}],"O":[{"%":1425,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1423},{"%":1425}],"O":[{"%":1426,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1426},{"%":100},{"%":99},{"%":102},{"%":101}],"O":[{"%":1427,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1428,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1429,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1430,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1431,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1432,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/ReLU/"},"N":"struct_name"}],"I":[{"%":1427}],"O":[{"%":1433,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1199},{"%":1433}],"O":[{"%":1434,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":8.0},{"#":"0.a_f32","D":8.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1260},{"%":0},{"%":0},{"%":0}],"O":[{"%":1435,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":4.0},{"#":"0.a_f32","D":4.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1318},{"%":0},{"%":0},{"%":0}],"O":[{"%":1436,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1376},{"%":0},{"%":0},{"%":0}],"O":[{"%":1437,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[],"O":[{"%":1438,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1435},{"%":1436},{"%":1437},{"%":1434}],"O":[{"%":1439,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1439},{"%":1438}],"O":[{"%":1440,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2D/"},"N":"struct_name"}],"I":[{"%":1440},{"%":20}],"O":[{"%":1441,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":false},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm/"},"N":"struct_name"}],"I":[{"%":1441},{"%":17},{"%":16},{"%":19},{"%":18}],"O":[{"%":1442,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1443,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1444,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1445,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1446,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1447,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm/"},"N":"struct_name"}],"I":[{"%":1442}],"O":[{"%":1448,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[],"O":[{"%":1449,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[0],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.conv2d_transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_array","D":[]},"N":"output_padding"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[{"%":1448},{"%":15},{"%":1449}],"O":[{"%":1450,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":64},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[],"O":[{"%":1451,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[{"%":14},{"%":1451}],"O":[{"%":1452,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[{"%":1450},{"%":1452}],"O":[{"%":1453,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":false},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm_1/"},"N":"struct_name"}],"I":[{"%":1453},{"%":11},{"%":10},{"%":13},{"%":12}],"O":[{"%":1454,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1455,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1456,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1457,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1458,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1459,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm_1/"},"N":"struct_name"}],"I":[{"%":1454}],"O":[{"%":1460,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1461,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[0],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.conv2d_transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_array","D":[]},"N":"output_padding"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[{"%":1460},{"%":9},{"%":1461}],"O":[{"%":1462,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1463,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[{"%":8},{"%":1463}],"O":[{"%":1464,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,1,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[{"%":1462},{"%":1464}],"O":[{"%":1465,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.sigmoid","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/"},"N":"struct_name"}],"I":[{"%":1465}],"O":[{"%":1466,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Upsample/"},"N":"struct_name"}],"I":[{"%":1460},{"%":0},{"%":0},{"%":0}],"O":[{"%":1467,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/"},"N":"struct_name"}],"I":[],"O":[{"%":1468,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/"},"N":"struct_name"}],"I":[{"%":1466},{"%":1467}],"O":[{"%":1469,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/"},"N":"struct_name"}],"I":[{"%":1469},{"%":1468}],"O":[{"%":1470,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,65,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":1470},{"%":7}],"O":[{"%":1471,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":false},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/ConvBNLayer/BatchNorm/"},"N":"struct_name"}],"I":[{"%":1471},{"%":4},{"%":3},{"%":6},{"%":5}],"O":[{"%":1472,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1473,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1474,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1475,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1476,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1477,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/ConvBNLayer/"},"N":"struct_name"}],"I":[{"%":1472}],"O":[{"%":1478,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":1478},{"%":2}],"O":[{"%":1479,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1480,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":1},{"%":1480}],"O":[{"%":1481,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,1,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":1479},{"%":1481}],"O":[{"%":1482,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.sigmoid","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[{"%":1482}],"O":[{"%":1483,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[{"%":1466},{"%":1483}],"O":[{"%":1484,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.5},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[],"O":[{"%":1485,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.scale","A":[{"AT":{"#":"0.a_f32","D":0.0},"N":"bias"},{"AT":{"#":"0.a_bool","D":true},"N":"bias_after_scale"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[{"%":1484},{"%":1485}],"O":[{"%":1486,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.fetch","A":[{"AT":{"#":"0.a_str","D":"fetch_name_0"},"N":"name"},{"AT":{"#":"0.a_i32","D":0},"N":"col"}],"I":[{"%":1486}],"O":[{"%":1487,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"persistable"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]}]}]}]}} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml new file mode 100644 index 0000000..c4f1631 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml @@ -0,0 +1,53 @@ +Global: + model_name: PP-OCRv5_server_det +Hpi: + backend_configs: + paddle_infer: + trt_dynamic_shapes: &id001 + x: + - - 1 + - 3 + - 32 + - 32 + - - 1 + - 3 + - 736 + - 736 + - - 1 + - 3 + - 4000 + - 4000 + tensorrt: + dynamic_shapes: *id001 +PreProcess: + transform_ops: + - DecodeImage: + channel_first: false + img_mode: BGR + - DetLabelEncode: null + - DetResizeForTest: + resize_long: 960 + - NormalizeImage: + mean: + - 0.485 + - 0.456 + - 0.406 + order: hwc + scale: 1./255. + std: + - 0.229 + - 0.224 + - 0.225 + - ToCHWImage: null + - KeepKeys: + keep_keys: + - image + - shape + - polys + - ignore_tags +PostProcess: + name: DBPostProcess + thresh: 0.3 + box_thresh: 0.6 + max_candidates: 1000 + unclip_ratio: 1.5 diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.msc b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.msc new file mode 100644 index 0000000000000000000000000000000000000000..c5481415a6837f4d0e98ab9b3d305c0f9803164c GIT binary patch literal 366 zcmZo*nVQVV00yyBG-{`4^sodZmSjxn;S6$hbn$i7%T1Zm!x5BPmRX#cpEspP!_dgU z+}tS9EXCB^%-q7z)WXm_CDqhCF*(U1G08N|z}O@;$;{HyU`i>_uneXi?&SQuw9It9 ztYV<{3>MN2;LXfSOD#&xOHS3R%*`Ro2tI@nWIIC`VMakpW", + "?", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "[", + "]", + "_", + "`", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "©", + "°", + "²", + "´", + "½", + "Á", + "Ä", + "Å", + "Ç", + "È", + "É", + "Í", + "Ó", + "Ö", + "×", + "Ü", + "ß", + "à", + "á", + "â", + "ã", + "ä", + "å", + "æ", + "ç", + "è", + "é", + "ê", + "ë", + "í", + "ð", + "ñ", + "ò", + "ó", + "ô", + "õ", + "ö", + "ø", + "ú", + "û", + "ü", + "ý", + "ā", + "ă", + "ą", + "ć", + "Č", + "č", + "đ", + "ē", + "ė", + "ę", + "ğ", + "ī", + "ı", + "Ł", + "ł", + "ń", + "ň", + "ō", + "ř", + "Ş", + "ş", + "Š", + "š", + "ţ", + "ū", + "ż", + "Ž", + "ž", + "Ș", + "ș", + "ț", + "Δ", + "α", + "λ", + "μ", + "φ", + "Г", + "О", + "а", + "в", + "л", + "о", + "р", + "с", + "т", + "я", + "ồ", + "—", + "―", + "’", + "“", + "”", + "…", + "℃", + "→", + "∇", + "−", + "■", + "☆", + "、", + "。", + "々", + "〆", + "〈", + "〉", + "「", + "」", + "『", + "』", + "〔", + "〕", + "〜", + "!", + "#", + "%", + "&", + "(", + ")", + "+", + ",", + "-", + ".", + "/", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + ":", + ";", + "=", + "?", + "@", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "~", + "・", + "ǎ", + "ǒ", + "ě", + "ǐ", + "ì", + "ǔ", + "ù", + "ǖ", + "ǘ", + "ǚ", + "ǜ", + "【", + "】", + "《", + "》", + "‥", + "{", + "}", + "\\", + "|", + "@", + "^", + "~", + "÷", + "∕", + "∙", + "⋅", + "·", + "⊕", + "⊖", + "⊗", + "⊘", + "⊙", + "±", + "∓", + "∩", + "∪", + "□", + "⊎", + "⊓", + "⊔", + "≠", + "≈", + "≡", + "≤", + "≥", + "≪", + "≫", + "≲", + "≳", + "≶", + "≷", + "≺", + "≻", + "≼", + "≽", + "∈", + "∉", + "⊂", + "⊃", + "⊆", + "⊇", + "⊄", + "⊅", + "∅", + "∖", + "∁", + "∆", + "∧", + "∨", + "¬", + "⊻", + "⊼", + "⊽", + "←", + "↔", + "⇒", + "⇐", + "⇔", + "∀", + "∃", + "∄", + "∴", + "∵", + "∝", + "∞", + "⊥", + "∟", + "∠", + "∡", + "∢", + "′", + "″", + "∥", + "⊾", + "⊿", + "∂", + "∫", + "∬", + "∭", + "∮", + "∯", + "∰", + "∑", + "∏", + "√", + "∛", + "∜", + "∱", + "∲", + "∳", + "∶", + "∷", + "∼", + "®", + "≄", + "≅", + "≃", + "≦", + "≧", + "⊈", + "⊉", + "⊢", + "⊤", + "⊨", + "⊧", + "℉", + "Ω", + "℧", + "Å", + "⌀", + "ℏ", + "⅀", + "⍺", + "⍵", + "¢", + "€", + "£", + "¥", + "¥", + "₿", + "↑", + "↓", + "↕", + "↖", + "↗", + "↘", + "↙", + "↺", + "↻", + "↼", + "↽", + "↾", + "↿", + "⇀", + "⇁", + "⇂", + "⇃", + "⇋", + "⇌", + "ª", + "º", + "⁰", + "¹", + "³", + "⁴", + "⁵", + "⁶", + "⁷", + "⁸", + "⁹", + "⁺", + "⁻", + "⁼", + "⁽", + "⁾", + "ⁿ", + "₀", + "₁", + "₂", + "₃", + "₄", + "₅", + "₆", + "₇", + "₈", + "₉", + "₊", + "₋", + "₌", + "₍", + "₎", + "Ⅰ", + "Ⅱ", + "Ⅲ", + "Ⅳ", + "Ⅴ", + "Ⅵ", + "Ⅶ", + "Ⅷ", + "Ⅸ", + "Ⅹ", + "Ⅺ", + "Ⅻ", + "ⅰ", + "ⅱ", + "ⅲ", + "ⅳ", + "ⅴ", + "ⅵ", + "ⅶ", + "ⅷ", + "ⅸ", + "ⅹ", + "ⅺ", + "ⅻ", + "☰", + "☱", + "☲", + "☳", + "☴", + "☵", + "☶", + "☷", + "♀", + "♂", + "♳", + "♴", + "♵", + "♶", + "♷", + "♸", + "♹", + "♺", + "♩", + "♪", + "♫", + "♬", + "⚪", + "⚫", + "⚬", + "✶", + "✷", + "✸", + "➀", + "➁", + "➂", + "➃", + "➄", + "➅", + "➆", + "➇", + "➈", + "➉", + "➊", + "➋", + "➌", + "➍", + "➎", + "➏", + "➐", + "➑", + "➒", + "➓", + "⏀", + "⏁", + "⏂", + "⏃", + "⏄", + "⏅", + "⏆", + "⏇", + "⏈", + "⏉", + "⏊", + "⏋", + "⏌", + "⏚", + "⏴", + "⏵", + "⏶", + "⏷", + "⏸", + "⏹", + "⏺", + "⏻", + "⏼", + "Α", + "Β", + "Γ", + "Ε", + "Ζ", + "Η", + "Θ", + "Ι", + "Κ", + "Λ", + "Μ", + "Ν", + "Ξ", + "Ο", + "Π", + "Ρ", + "Σ", + "Τ", + "Υ", + "Φ", + "Χ", + "Ψ", + "β", + "γ", + "δ", + "ε", + "ζ", + "η", + "θ", + "ι", + "κ", + "ν", + "ξ", + "ο", + "π", + "ρ", + "σ", + "τ", + "υ", + "χ", + "ψ", + "ω", + "ϐ", + "ϑ", + "ϒ", + "ϕ", + "█", + "ϖ", + "ϰ", + "ϱ", + "ϴ", + "ϵ", + "ϝ", + "Ϟ", + "ϟ", + "Ϡ", + "ϡ", + "Ϣ", + "ϣ", + "Ϥ", + "ϥ", + "Ϧ", + "ϧ", + "Ϩ", + "ϩ", + "Ϫ", + "ϫ", + "Ϭ", + "ϭ", + "Ϯ", + "ϯ", + "∸", + "∹", + "∺", + "∻", + "∽", + "∾", + "∿", + "≀", + "≁", + "≂", + "≆", + "≇", + "≉", + "≊", + "≋", + "≌", + "≍", + "≎", + "≏", + "≐", + "≑", + "≒", + "≓", + "≔", + "≕", + "≖", + "≗", + "≘", + "≙", + "≚", + "≛", + "≜", + "≝", + "≞", + "≟", + "≢", + "≣", + "≨", + "≩", + "≬", + "≭", + "≮", + "≯", + "≰", + "≱", + "≴", + "≵", + "≸", + "≹", + "≾", + "≿", + "⊀", + "⊁", + "⊊", + "⊋", + "⊌", + "⊍", + "⊏", + "⊐", + "⊑", + "⊒", + "⊚", + "⊛", + "⊜", + "⊝", + "⊞", + "⊟", + "⊠", + "⊡", + "⊣", + "⊦", + "⊩", + "⊪", + "⊫", + "⊬", + "⊭", + "⊮", + "⊯", + "⊰", + "⊱", + "⊲", + "⊳", + "⊴", + "⊵", + "⊶", + "⊷", + "⊸", + "⊹", + "⊺", + "ℎ", + "℘", + "ℜ", + "ℑ", + "ℵ", + "ℶ", + "ℷ", + "ℸ", + "⌬", + "⌭", + "⌮", + "⌯", + "⎔", + "¤", + "₠", + "₡", + "₢", + "₣", + "₤", + "₥", + "₦", + "₧", + "₨", + "₩", + "₪", + "₫", + "₭", + "₮", + "₯", + "₰", + "₱", + "₲", + "₳", + "₴", + "₵", + "₶", + "₷", + "₸", + "₹", + "₺", + "₻", + "₼", + "₽", + "₾", + "↚", + "↛", + "↜", + "↝", + "↞", + "↟", + "↠", + "↡", + "↢", + "↣", + "↤", + "↥", + "↦", + "↧", + "↨", + "↩", + "↪", + "↫", + "↬", + "↭", + "↮", + "↯", + "↰", + "↱", + "↲", + "↳", + "↴", + "↵", + "↶", + "↷", + "↸", + "↹", + "⇄", + "⇅", + "⇆", + "⇇", + "⇈", + "⇉", + "⇊", + "⇍", + "⇎", + "⇏", + "⇑", + "⇓", + "⇕", + "⇖", + "⇗", + "⇘", + "⇙", + "⇚", + "⇛", + "⇜", + "⇝", + "⇞", + "⇟", + "⇠", + "⇡", + "⇢", + "⇣", + "⇤", + "⇥", + "⇦", + "⇧", + "⇨", + "⇩", + "⇪", + "⇫", + "⇬", + "⇭", + "⇮", + "⇯", + "⇰", + "⇱", + "⇲", + "⇳", + "⇴", + "⇵", + "⇶", + "⇷", + "⇸", + "⇹", + "⇺", + "⇻", + "⇼", + "⇽", + "⇾", + "⇿", + "ↀ", + "ↁ", + "ↂ", + "☀", + "☁", + "☂", + "☃", + "☄", + "★", + "☇", + "☈", + "☉", + "☊", + "☋", + "☌", + "☍", + "☎", + "☏", + "☐", + "☑", + "☒", + "☓", + "☔", + "☕", + "☖", + "☗", + "☘", + "☙", + "☚", + "☛", + "☜", + "☝", + "☞", + "☟", + "☠", + "☡", + "☢", + "☣", + "☤", + "☥", + "☦", + "☧", + "☨", + "☩", + "☪", + "☫", + "☬", + "☭", + "☮", + "☯", + "☸", + "☹", + "☺", + "☻", + "☼", + "☽", + "☾", + "☿", + "♁", + "♃", + "♄", + "♅", + "♆", + "♇", + "♔", + "♕", + "♖", + "♗", + "♘", + "♙", + "♚", + "♛", + "♜", + "♝", + "♞", + "♟", + "♠", + "♡", + "♢", + "♣", + "♤", + "♥", + "♦", + "♧", + "♨", + "♭", + "♮", + "♯", + "♰", + "♱", + "♲", + "♻", + "♼", + "♽", + "♾", + "⚀", + "⚁", + "⚂", + "⚃", + "⚄", + "⚅", + "⚆", + "⚇", + "⚈", + "⚉", + "⚊", + "⚋", + "⚌", + "⚍", + "⚎", + "⚏", + "⚐", + "⚑", + "⚒", + "⚓", + "⚔", + "⚕", + "⚖", + "⚗", + "⚘", + "⚙", + "⚚", + "⚛", + "⚜", + "⚝", + "⚞", + "⚟", + "⚠", + "⚡", + "⚢", + "⚣", + "⚤", + "⚥", + "⚦", + "⚧", + "⚨", + "⚩", + "⚭", + "⚮", + "⚯", + "⚰", + "⚱", + "⚲", + "⚳", + "⚴", + "⚵", + "⚶", + "⚷", + "⚸", + "⚹", + "⚺", + "⚻", + "⚼", + "⚿", + "⛀", + "⛁", + "⛂", + "⛃", + "⛆", + "⛇", + "⛈", + "⛉", + "⛊", + "⛋", + "⛌", + "⛍", + "⛏", + "⛐", + "⛑", + "⛒", + "⛓", + "⛕", + "⛖", + "⛗", + "⛘", + "⛙", + "⛚", + "⛛", + "⛜", + "⛝", + "⛞", + "⛠", + "⛡", + "⛢", + "⛣", + "⛤", + "⛥", + "⛦", + "⛧", + "⛨", + "⛩", + "⛪", + "⛫", + "⛬", + "⛭", + "⛮", + "⛯", + "⛶", + "⛾", + "⛿", + "✆", + "✇", + "✈", + "✉", + "✌", + "✍", + "✎", + "✏", + "✐", + "✑", + "✒", + "✓", + "✔", + "✕", + "✙", + "✚", + "✛", + "✜", + "✝", + "✞", + "✟", + "✠", + "✡", + "✢", + "✣", + "✤", + "✥", + "✦", + "✧", + "✩", + "✪", + "✫", + "✬", + "✭", + "✮", + "✯", + "✰", + "✱", + "✲", + "✳", + "✴", + "✵", + "✹", + "✺", + "✻", + "✼", + "✽", + "✾", + "✿", + "❀", + "❁", + "❂", + "❃", + "❄", + "❅", + "❆", + "❇", + "❈", + "❉", + "❊", + "❋", + "❍", + "❏", + "❐", + "❑", + "❒", + "❖", + "❘", + "❙", + "❚", + "❛", + "❜", + "❝", + "❞", + "❡", + "❢", + "❣", + "❤", + "❥", + "❦", + "❧", + "❨", + "❩", + "❪", + "❫", + "❬", + "❭", + "❮", + "❯", + "❰", + "❱", + "❲", + "❳", + "❴", + "❵", + "❶", + "❷", + "❸", + "❹", + "❺", + "❻", + "❼", + "❽", + "❾", + "❿", + "①", + "②", + "③", + "④", + "⑤", + "⑥", + "⑦", + "⑧", + "⑨", + "⑩", + "➔", + "➕", + "➖", + "➗", + "➘", + "➙", + "➚", + "➛", + "➜", + "➝", + "➞", + "➟", + "➠", + "➡", + "➢", + "➣", + "➤", + "➥", + "➦", + "➧", + "➨", + "➩", + "➪", + "➫", + "➬", + "➭", + "➮", + "➯", + "➰", + "➱", + "➲", + "➳", + "➴", + "➵", + "➶", + "➷", + "➸", + "➹", + "➺", + "➻", + "➼", + "➽", + "➾", + "➿", + "⌘", + "⌥", + "⌃", + "⎋", + "⌫", + "⌦", + "⏏", + "⌤", + "⌧", + "⌨", + "⎆", + "⎇", + "⎈", + "⎉", + "⎊", + "⎌", + "⎍", + "⎎", + "⎏", + "⎐", + "⎑", + "⎒", + "⎓", + "⎕", + "⎖", + "⎗", + "⎘", + "⎙", + "⎚", + "⎛", + "⎜", + "⎝", + "⎞", + "⎟", + "⎠", + "⎡", + "⎢", + "⎣", + "⎤", + "⎥", + "⎦", + "⎧", + "⎨", + "⎩", + "⎪", + "⎫", + "⎬", + "⎭", + "⎮", + "⎯", + "⎰", + "⎱", + "⎲", + "⎳", + "⎴", + "⎵", + "⎶", + "⎷", + "⎸", + "⎹", + "⎺", + "⎻", + "⎼", + "⎽", + "⎾", + "⎿", + "⏍", + "⏎", + "⏐", + "⏑", + "⏒", + "⏓", + "⏔", + "⏕", + "⏖", + "⏗", + "⏘", + "⏙", + "⏛", + "⏜", + "⏝", + "⏞", + "⏟", + "⏠", + "⏡", + "⏢", + "⏣", + "⏤", + "⏥", + "⏦", + "⏧", + "⏨", + "⏭", + "⏮", + "⏯", + "⏱", + "⏲", + "▲", + "▽", + "◐", + "⏽", + "⏾", + "⏿", + "ɐ", + "ɑ", + "ɒ", + "ɓ", + "ɔ", + "ɕ", + "ɖ", + "ɗ", + "ɘ", + "ə", + "ɚ", + "ɛ", + "ɜ", + "ɝ", + "ɞ", + "ɟ", + "ɠ", + "ɡ", + "ɢ", + "ɣ", + "ɤ", + "ɥ", + "ɦ", + "ɧ", + "ɨ", + "ɩ", + "ɪ", + "ɫ", + "ɬ", + "ɭ", + "ɮ", + "ɯ", + "ɰ", + "ɱ", + "ɲ", + "ɳ", + "ɴ", + "ɵ", + "ɶ", + "ɷ", + "ɸ", + "ɹ", + "ɺ", + "ɻ", + "ɼ", + "ɽ", + "ɾ", + "ɿ", + "ʀ", + "ʁ", + "ʂ", + "ʃ", + "ʄ", + "ʅ", + "ʆ", + "ʇ", + "ʈ", + "ʉ", + "ʊ", + "ʋ", + "ʌ", + "ʍ", + "ʎ", + "ʏ", + "ʐ", + "ʑ", + "ʒ", + "ʓ", + "ʔ", + "ʕ", + "ʖ", + "ʗ", + "ʘ", + "ʙ", + "ʚ", + "ʛ", + "ʜ", + "ʝ", + "ʞ", + "ʟ", + "ʠ", + "ʡ", + "ʢ", + "ʣ", + "ʤ", + "ʥ", + "ʦ", + "ʧ", + "ʨ", + "ʩ", + "ʪ", + "ʫ", + "ʬ", + "ʭ", + "ʮ", + "ʯ", + "━", + "Ǝ", + "Ã", + "●", + "▶", + "|", + "𝑢", + "〖", + "〗", + "︽", + "–", + "﹥", + "𝜓", + "•", + "∋", + "ƒ", + "०", + "✘", + "Е", + "◉", + "〒", + "𝒱", + "𝜆", + "⟹", + "﹪", + "◊", + "╆", + "오", + "˂", + "〉", + "𝝎", + "▪", + "△", + "▁", + "◼", + "〇", + "▷", + "▬", + "𝒮", + "†", + "ₒ", + "⼁", + "〵", + "⭐", + "╳", + "⟶", + "으", + "⬆", + "Ạ", + "◀", + "", + "▫", + "丄", + "︾", + "◥", + "‖", + "𝜌", + "ⅼ", + "▼", + "⁎", + "﹏", + "😁", + "😂", + "😃", + "😄", + "😅", + "😆", + "😉", + "😊", + "😋", + "😌", + "😍", + "😏", + "😒", + "😓", + "😔", + "😖", + "😘", + "😚", + "😜", + "😝", + "😞", + "😠", + "😡", + "😢", + "😣", + "😤", + "😥", + "😨", + "😩", + "😪", + "😫", + "😭", + "😰", + "😱", + "😲", + "😳", + "😵", + "😷", + "😸", + "😹", + "😺", + "😻", + "😼", + "😽", + "😾", + "😿", + "🙀", + "🙅", + "🙆", + "🙇", + "🙈", + "🙉", + "🙊", + "🙋", + "🙌", + "🙍", + "🙎", + "🙏", + "✂", + "✅", + "✊", + "✋", + "✖", + "✨", + "❌", + "❎", + "❓", + "❔", + "❕", + "❗", + "🚀", + "🚃", + "🚄", + "🚅", + "🚇", + "🚉", + "🚌", + "🚏", + "🚑", + "🚒", + "🚓", + "🚕", + "🚗", + "🚙", + "🚚", + "🚢", + "🚤", + "🚥", + "🚧", + "🚨", + "🚩", + "🚪", + "🚫", + "🚬", + "🚭", + "🚲", + "🚶", + "🚹", + "🚺", + "🚻", + "🚼", + "🚽", + "🚾", + "🛀", + "Ⓜ", + "🅰", + "🅱", + "🅾", + "🅿", + "🆎", + "🆑", + "🆒", + "🆓", + "🆔", + "🆕", + "🆖", + "🆗", + "🆘", + "🆙", + "🆚", + "🇩🇪", + "🇬🇧", + "🇨🇳", + "🇯🇵", + "🇫🇷", + "🇰🇷", + "🇪🇸", + "🇮🇹", + "🇷🇺", + "🇺🇸", + "🈁", + "ℹ", + "⌚", + "⌛", + "⏩", + "⏪", + "⏫", + "⏬", + "⏰", + "⏳", + "◻", + "◽", + "◾", + "♈", + "♉", + "♊", + "♋", + "♌", + "♍", + "♎", + "♏", + "♐", + "♑", + "♒", + "♓", + "♿", + "⚽", + "⚾", + "⛄", + "⛅", + "⛎", + "⛔", + "⛲", + "⛳", + "⛵", + "⛺", + "⛽", + "⤴", + "⤵", + "⬅", + "⬇", + "⬛", + "⬜", + "⭕", + "〰", + "〽", + "㊗", + "㊙", + "🀄", + "🃏", + "🌀", + "🌁", + "🌂", + "🌃", + "🌄", + "🌅", + "🌆", + "🌇", + "🌈", + "🌉", + "🌊", + "🌋", + "🌌", + "🌏", + "🌑", + "🌓", + "🌔", + "🌕", + "🌙", + "🌛", + "🌟", + "🌠", + "🌰", + "🌱", + "🌴", + "🌵", + "🌷", + "🌸", + "🌹", + "🌺", + "🌻", + "🌼", + "🌽", + "🌾", + "🌿", + "🍀", + "🍁", + "🍂", + "🍃", + "🍄", + "🍅", + "🍆", + "🍇", + "🍈", + "🍉", + "🍊", + "🍌", + "🍍", + "🍎", + "🍏", + "🍑", + "🍒", + "🍓", + "🍔", + "🍕", + "🍖", + "🍗", + "🍘", + "🍙", + "🍚", + "🍛", + "🍜", + "🍝", + "🍞", + "🍟", + "🍠", + "🍡", + "🍢", + "🍣", + "🍤", + "🍥", + "🍦", + "🍧", + "🍨", + "🍩", + "🍪", + "🍫", + "🍬", + "🍭", + "🍮", + "🍯", + "🍰", + "🍱", + "🍲", + "🍳", + "🍴", + "🍵", + "🍶", + "🍷", + "🍸", + "🍹", + "🍺", + "🍻", + "🎀", + "🎁", + "🎂", + "🎃", + "🎄", + "🎅", + "🎆", + "🎇", + "🎈", + "🎉", + "🎊", + "🎋", + "🎌", + "🎍", + "🎎", + "🎏", + "🎐", + "🎑", + "🎒", + "🎓", + "🎠", + "🎡", + "🎢", + "🎣", + "🎤", + "🎥", + "🎦", + "🎧", + "🎨", + "🎩", + "🎪", + "🎫", + "🎬", + "🎭", + "🎮", + "🎯", + "🎰", + "🎱", + "🎲", + "🎳", + "🎴", + "🎵", + "🎶", + "🎷", + "🎸", + "🎹", + "🎺", + "🎻", + "🎼", + "🎽", + "🎾", + "🎿", + "🏀", + "🏁", + "🏂", + "🏃", + "🏄", + "🏆", + "🏈", + "🏊", + "🏠", + "🏡", + "🏢", + "🏣", + "🏥", + "🏦", + "🏧", + "🏨", + "🏩", + "🏪", + "🏫", + "🏬", + "🏭", + "🏮", + "🏯", + "🏰", + "🐌", + "🐍", + "🐎", + "🐑", + "🐒", + "🐔", + "🐗", + "🐘", + "🐙", + "🐚", + "🐛", + "🐜", + "🐝", + "🐞", + "🐟", + "🐠", + "🐡", + "🐢", + "🐣", + "🐤", + "🐥", + "🐦", + "🐧", + "🐨", + "🐩", + "🐫", + "🐬", + "🐭", + "🐮", + "🐯", + "🐰", + "🐱", + "🐲", + "🐳", + "🐴", + "🐵", + "🐶", + "🐷", + "🐸", + "🐹", + "🐺", + "🐻", + "🐼", + "🐽", + "🐾", + "👀", + "👂", + "👃", + "👄", + "👅", + "👆", + "👇", + "👈", + "👉", + "👊", + "👋", + "👌", + "👍", + "👎", + "👏", + "👐", + "👑", + "👒", + "👓", + "👔", + "👕", + "👖", + "👗", + "👘", + "👙", + "👚", + "👛", + "👜", + "👝", + "👞", + "👟", + "👠", + "👡", + "👢", + "👣", + "👤", + "👦", + "👧", + "👨", + "👩", + "👪", + "👫", + "👮", + "👯", + "👰", + "👱", + "👲", + "👳", + "👴", + "👵", + "👶", + "👷", + "👸", + "👹", + "👺", + "👻", + "👼", + "👽", + "👾", + "👿", + "💀", + "💁", + "💂", + "💃", + "💄", + "💅", + "💆", + "💇", + "💈", + "💉", + "💊", + "💋", + "💌", + "💍", + "💎", + "💏", + "💐", + "💑", + "💒", + "💓", + "💔", + "💕", + "💖", + "💗", + "💘", + "💙", + "💚", + "💛", + "💜", + "💝", + "💞", + "💟", + "💠", + "💡", + "💢", + "💣", + "💤", + "💥", + "💦", + "💧", + "💨", + "💩", + "💪", + "💫", + "💬", + "💮", + "💯", + "💰", + "💲", + "💳", + "💴", + "💵", + "💸", + "💹", + "💺", + "💻", + "💼", + "💽", + "💾", + "💿", + "📀", + "📁", + "📂", + "📃", + "📄", + "📅", + "📆", + "📇", + "📈", + "📉", + "📊", + "📋", + "📌", + "📍", + "📎", + "📏", + "📐", + "📑", + "📒", + "📓", + "📔", + "📕", + "📖", + "📗", + "📘", + "📙", + "📚", + "📛", + "📜", + "📝", + "📞", + "📟", + "📠", + "📡", + "📢", + "📣", + "📤", + "📥", + "📦", + "📧", + "📨", + "📩", + "📪", + "📫", + "📮", + "📰", + "📱", + "📲", + "📳", + "📴", + "📶", + "📷", + "📹", + "📺", + "📻", + "📼", + "🔃", + "🔊", + "🔋", + "🔌", + "🔍", + "🔎", + "🔏", + "🔐", + "🔑", + "🔒", + "🔓", + "🔔", + "🔖", + "🔗", + "🔘", + "🔙", + "🔚", + "🔛", + "🔜", + "🔝", + "🔞", + "🔟", + "🔠", + "🔡", + "🔢", + "🔣", + "🔤", + "🔥", + "🔦", + "🔧", + "🔨", + "🔩", + "🔪", + "🔫", + "🔮", + "🔯", + "🔰", + "🔱", + "🔲", + "🔳", + "🔴", + "🔵", + "🔶", + "🔷", + "🔸", + "🔹", + "🔺", + "🔻", + "🔼", + "🔽", + "🕐", + "🕑", + "🕒", + "🕓", + "🕔", + "🕕", + "🕖", + "🕗", + "🕘", + "🕙", + "🕚", + "🕛", + "🗻", + "🗼", + "🗽", + "🗾", + "🗿", + "😀", + "😇", + "😈", + "😎", + "😐", + "😑", + "😕", + "😗", + "😙", + "😛", + "😟", + "😦", + "😧", + "😬", + "😮", + "😯", + "😴", + "😶", + "🚁", + "🚂", + "🚆", + "🚈", + "🚊", + "🚍", + "🚎", + "🚐", + "🚔", + "🚖", + "🚘", + "🚛", + "🚜", + "🚝", + "🚞", + "🚟", + "🚠", + "🚡", + "🚣", + "🚦", + "🚮", + "🚯", + "🚰", + "🚱", + "🚳", + "🚴", + "🚵", + "🚷", + "🚸", + "🚿", + "🛁", + "🛂", + "🛃", + "🛄", + "🛅", + "🌍", + "🌎", + "🌐", + "🌒", + "🌖", + "🌗", + "🌘", + "🌚", + "🌜", + "🌝", + "🌞", + "🌲", + "🌳", + "🍋", + "🍐", + "🍼", + "🏇", + "🏉", + "🏤", + "🐀", + "🐁", + "🐂", + "🐃", + "🐄", + "🐅", + "🐆", + "🐇", + "🐈", + "🐉", + "🐊", + "🐋", + "🐏", + "🐐", + "🐓", + "🐕", + "🐖", + "🐪", + "👥", + "👬", + "👭", + "💭", + "💶", + "💷", + "📬", + "📭", + "📯", + "📵", + "🔀", + "🔁", + "🔂", + "🔄", + "🔅", + "🔆", + "🔇", + "🔉", + "🔕", + "🔬", + "🔭", + "🕜", + "🕝", + "🕞", + "🕟", + "🕠", + "🕡", + "🕢", + "🕣", + "🕤", + "🕥", + "🕦", + "🕧" + ] + } +} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json new file mode 100644 index 0000000..6701133 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json @@ -0,0 +1 @@ +{"base_code":{"magic":"pir","trainable":true,"version":1},"program":{"regions":[{"#":"region_0","blocks":[{"#":"block_0","args":[],"ops":[{"#":"p","A":[0,1,1,"linear_9.b_0"],"DA":[],"O":{"%":1,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[18385],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_9.w_0"],"DA":[],"O":{"%":2,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,18385],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.w_2"],"DA":[],"O":{"%":3,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.w_1"],"DA":[],"O":{"%":4,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.b_0"],"DA":[],"O":{"%":5,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.w_0"],"DA":[],"O":{"%":6,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_86.w_0"],"DA":[],"O":{"%":7,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.w_2"],"DA":[],"O":{"%":8,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.w_1"],"DA":[],"O":{"%":9,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.b_0"],"DA":[],"O":{"%":10,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.w_0"],"DA":[],"O":{"%":11,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_85.w_0"],"DA":[],"O":{"%":12,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,4096,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_2"],"DA":[],"O":{"%":13,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_1"],"DA":[],"O":{"%":14,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.b_0"],"DA":[],"O":{"%":15,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_0"],"DA":[],"O":{"%":16,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_84.w_0"],"DA":[],"O":{"%":17,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048,120,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_4.b_0"],"DA":[],"O":{"%":18,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_4.w_0"],"DA":[],"O":{"%":19,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_8.b_0"],"DA":[],"O":{"%":20,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_8.w_0"],"DA":[],"O":{"%":21,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_7.b_0"],"DA":[],"O":{"%":22,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_7.w_0"],"DA":[],"O":{"%":23,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_3.b_0"],"DA":[],"O":{"%":24,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_3.w_0"],"DA":[],"O":{"%":25,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_6.b_0"],"DA":[],"O":{"%":26,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_6.w_0"],"DA":[],"O":{"%":27,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_5.b_0"],"DA":[],"O":{"%":28,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_5.w_0"],"DA":[],"O":{"%":29,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_2.b_0"],"DA":[],"O":{"%":30,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_2.w_0"],"DA":[],"O":{"%":31,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_4.b_0"],"DA":[],"O":{"%":32,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_4.w_0"],"DA":[],"O":{"%":33,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_3.b_0"],"DA":[],"O":{"%":34,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_3.w_0"],"DA":[],"O":{"%":35,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_1.b_0"],"DA":[],"O":{"%":36,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_1.w_0"],"DA":[],"O":{"%":37,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_2.b_0"],"DA":[],"O":{"%":38,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_2.w_0"],"DA":[],"O":{"%":39,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_1.b_0"],"DA":[],"O":{"%":40,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_1.w_0"],"DA":[],"O":{"%":41,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_0.b_0"],"DA":[],"O":{"%":42,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_0.w_0"],"DA":[],"O":{"%":43,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_2"],"DA":[],"O":{"%":44,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_1"],"DA":[],"O":{"%":45,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.b_0"],"DA":[],"O":{"%":46,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_0"],"DA":[],"O":{"%":47,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_83.w_0"],"DA":[],"O":{"%":48,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_2"],"DA":[],"O":{"%":49,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_1"],"DA":[],"O":{"%":50,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.b_0"],"DA":[],"O":{"%":51,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_0"],"DA":[],"O":{"%":52,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_82.w_0"],"DA":[],"O":{"%":53,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,2048,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_2"],"DA":[],"O":{"%":54,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_1"],"DA":[],"O":{"%":55,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.b_0"],"DA":[],"O":{"%":56,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_0"],"DA":[],"O":{"%":57,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_80.w_0"],"DA":[],"O":{"%":58,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_2"],"DA":[],"O":{"%":59,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_1"],"DA":[],"O":{"%":60,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.b_0"],"DA":[],"O":{"%":61,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_0"],"DA":[],"O":{"%":62,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_79.w_0"],"DA":[],"O":{"%":63,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,3328,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_2"],"DA":[],"O":{"%":64,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_1"],"DA":[],"O":{"%":65,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.b_0"],"DA":[],"O":{"%":66,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_0"],"DA":[],"O":{"%":67,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_78.w_0"],"DA":[],"O":{"%":68,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_2"],"DA":[],"O":{"%":69,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_1"],"DA":[],"O":{"%":70,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.b_0"],"DA":[],"O":{"%":71,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_0"],"DA":[],"O":{"%":72,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_77.w_0"],"DA":[],"O":{"%":73,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_2"],"DA":[],"O":{"%":74,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_1"],"DA":[],"O":{"%":75,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.b_0"],"DA":[],"O":{"%":76,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_0"],"DA":[],"O":{"%":77,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_76.w_0"],"DA":[],"O":{"%":78,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_2"],"DA":[],"O":{"%":79,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_1"],"DA":[],"O":{"%":80,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.b_0"],"DA":[],"O":{"%":81,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_0"],"DA":[],"O":{"%":82,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_75.w_0"],"DA":[],"O":{"%":83,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_2"],"DA":[],"O":{"%":84,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_1"],"DA":[],"O":{"%":85,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.b_0"],"DA":[],"O":{"%":86,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_0"],"DA":[],"O":{"%":87,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_74.w_0"],"DA":[],"O":{"%":88,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_2"],"DA":[],"O":{"%":89,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_1"],"DA":[],"O":{"%":90,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.b_0"],"DA":[],"O":{"%":91,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_0"],"DA":[],"O":{"%":92,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_73.w_0"],"DA":[],"O":{"%":93,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_2"],"DA":[],"O":{"%":94,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_1"],"DA":[],"O":{"%":95,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.b_0"],"DA":[],"O":{"%":96,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_0"],"DA":[],"O":{"%":97,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_72.w_0"],"DA":[],"O":{"%":98,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_2"],"DA":[],"O":{"%":99,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_1"],"DA":[],"O":{"%":100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.b_0"],"DA":[],"O":{"%":101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_0"],"DA":[],"O":{"%":102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_71.w_0"],"DA":[],"O":{"%":103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_2"],"DA":[],"O":{"%":104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_1"],"DA":[],"O":{"%":105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.b_0"],"DA":[],"O":{"%":106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_0"],"DA":[],"O":{"%":107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_70.w_0"],"DA":[],"O":{"%":108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_2"],"DA":[],"O":{"%":109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_1"],"DA":[],"O":{"%":110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.b_0"],"DA":[],"O":{"%":111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_0"],"DA":[],"O":{"%":112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_69.w_0"],"DA":[],"O":{"%":113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_2"],"DA":[],"O":{"%":114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_1"],"DA":[],"O":{"%":115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.b_0"],"DA":[],"O":{"%":116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_0"],"DA":[],"O":{"%":117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_68.w_0"],"DA":[],"O":{"%":118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_2"],"DA":[],"O":{"%":119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_1"],"DA":[],"O":{"%":120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.b_0"],"DA":[],"O":{"%":121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_0"],"DA":[],"O":{"%":122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_67.w_0"],"DA":[],"O":{"%":123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_2"],"DA":[],"O":{"%":124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_1"],"DA":[],"O":{"%":125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.b_0"],"DA":[],"O":{"%":126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_0"],"DA":[],"O":{"%":127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_66.w_0"],"DA":[],"O":{"%":128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_2"],"DA":[],"O":{"%":129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_1"],"DA":[],"O":{"%":130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.b_0"],"DA":[],"O":{"%":131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_0"],"DA":[],"O":{"%":132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_65.w_0"],"DA":[],"O":{"%":133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_2"],"DA":[],"O":{"%":134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_1"],"DA":[],"O":{"%":135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.b_0"],"DA":[],"O":{"%":136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_0"],"DA":[],"O":{"%":137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_64.w_0"],"DA":[],"O":{"%":138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_2"],"DA":[],"O":{"%":139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_1"],"DA":[],"O":{"%":140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.b_0"],"DA":[],"O":{"%":141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_0"],"DA":[],"O":{"%":142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_63.w_0"],"DA":[],"O":{"%":143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_2"],"DA":[],"O":{"%":144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_1"],"DA":[],"O":{"%":145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.b_0"],"DA":[],"O":{"%":146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_0"],"DA":[],"O":{"%":147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_62.w_0"],"DA":[],"O":{"%":148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_2"],"DA":[],"O":{"%":149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_1"],"DA":[],"O":{"%":150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.b_0"],"DA":[],"O":{"%":151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_0"],"DA":[],"O":{"%":152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_61.w_0"],"DA":[],"O":{"%":153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_2"],"DA":[],"O":{"%":154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_1"],"DA":[],"O":{"%":155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.b_0"],"DA":[],"O":{"%":156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_0"],"DA":[],"O":{"%":157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_60.w_0"],"DA":[],"O":{"%":158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_2"],"DA":[],"O":{"%":159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_1"],"DA":[],"O":{"%":160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.b_0"],"DA":[],"O":{"%":161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_0"],"DA":[],"O":{"%":162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_59.w_0"],"DA":[],"O":{"%":163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_2"],"DA":[],"O":{"%":164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_1"],"DA":[],"O":{"%":165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.b_0"],"DA":[],"O":{"%":166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_0"],"DA":[],"O":{"%":167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_58.w_0"],"DA":[],"O":{"%":168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_2"],"DA":[],"O":{"%":169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_1"],"DA":[],"O":{"%":170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.b_0"],"DA":[],"O":{"%":171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_0"],"DA":[],"O":{"%":172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_57.w_0"],"DA":[],"O":{"%":173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_2"],"DA":[],"O":{"%":174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_1"],"DA":[],"O":{"%":175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.b_0"],"DA":[],"O":{"%":176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_0"],"DA":[],"O":{"%":177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_56.w_0"],"DA":[],"O":{"%":178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_2"],"DA":[],"O":{"%":179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_1"],"DA":[],"O":{"%":180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.b_0"],"DA":[],"O":{"%":181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_0"],"DA":[],"O":{"%":182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_55.w_0"],"DA":[],"O":{"%":183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_2"],"DA":[],"O":{"%":184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_1"],"DA":[],"O":{"%":185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.b_0"],"DA":[],"O":{"%":186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_0"],"DA":[],"O":{"%":187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_54.w_0"],"DA":[],"O":{"%":188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_2"],"DA":[],"O":{"%":189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_1"],"DA":[],"O":{"%":190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.b_0"],"DA":[],"O":{"%":191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_0"],"DA":[],"O":{"%":192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_53.w_0"],"DA":[],"O":{"%":193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_2"],"DA":[],"O":{"%":194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_1"],"DA":[],"O":{"%":195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.b_0"],"DA":[],"O":{"%":196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_0"],"DA":[],"O":{"%":197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_52.w_0"],"DA":[],"O":{"%":198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_2"],"DA":[],"O":{"%":199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_1"],"DA":[],"O":{"%":200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.b_0"],"DA":[],"O":{"%":201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_0"],"DA":[],"O":{"%":202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_51.w_0"],"DA":[],"O":{"%":203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_2"],"DA":[],"O":{"%":204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_1"],"DA":[],"O":{"%":205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.b_0"],"DA":[],"O":{"%":206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_0"],"DA":[],"O":{"%":207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_50.w_0"],"DA":[],"O":{"%":208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_2"],"DA":[],"O":{"%":209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_1"],"DA":[],"O":{"%":210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.b_0"],"DA":[],"O":{"%":211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_0"],"DA":[],"O":{"%":212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_49.w_0"],"DA":[],"O":{"%":213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_2"],"DA":[],"O":{"%":214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_1"],"DA":[],"O":{"%":215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.b_0"],"DA":[],"O":{"%":216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_0"],"DA":[],"O":{"%":217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_48.w_0"],"DA":[],"O":{"%":218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_2"],"DA":[],"O":{"%":219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_1"],"DA":[],"O":{"%":220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.b_0"],"DA":[],"O":{"%":221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_0"],"DA":[],"O":{"%":222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_47.w_0"],"DA":[],"O":{"%":223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_2"],"DA":[],"O":{"%":224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_1"],"DA":[],"O":{"%":225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.b_0"],"DA":[],"O":{"%":226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_0"],"DA":[],"O":{"%":227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_46.w_0"],"DA":[],"O":{"%":228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_2"],"DA":[],"O":{"%":229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_1"],"DA":[],"O":{"%":230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.b_0"],"DA":[],"O":{"%":231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_0"],"DA":[],"O":{"%":232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_45.w_0"],"DA":[],"O":{"%":233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_2"],"DA":[],"O":{"%":234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_1"],"DA":[],"O":{"%":235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.b_0"],"DA":[],"O":{"%":236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_0"],"DA":[],"O":{"%":237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_44.w_0"],"DA":[],"O":{"%":238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_2"],"DA":[],"O":{"%":239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_1"],"DA":[],"O":{"%":240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.b_0"],"DA":[],"O":{"%":241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_0"],"DA":[],"O":{"%":242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_43.w_0"],"DA":[],"O":{"%":243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_2"],"DA":[],"O":{"%":244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_1"],"DA":[],"O":{"%":245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.b_0"],"DA":[],"O":{"%":246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_0"],"DA":[],"O":{"%":247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_42.w_0"],"DA":[],"O":{"%":248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_2"],"DA":[],"O":{"%":249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_1"],"DA":[],"O":{"%":250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.b_0"],"DA":[],"O":{"%":251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_0"],"DA":[],"O":{"%":252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_41.w_0"],"DA":[],"O":{"%":253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_2"],"DA":[],"O":{"%":254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_1"],"DA":[],"O":{"%":255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.b_0"],"DA":[],"O":{"%":256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_0"],"DA":[],"O":{"%":257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_40.w_0"],"DA":[],"O":{"%":258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_2"],"DA":[],"O":{"%":259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_1"],"DA":[],"O":{"%":260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.b_0"],"DA":[],"O":{"%":261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_0"],"DA":[],"O":{"%":262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_39.w_0"],"DA":[],"O":{"%":263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_2"],"DA":[],"O":{"%":264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_1"],"DA":[],"O":{"%":265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.b_0"],"DA":[],"O":{"%":266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_0"],"DA":[],"O":{"%":267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_38.w_0"],"DA":[],"O":{"%":268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_2"],"DA":[],"O":{"%":269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_1"],"DA":[],"O":{"%":270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.b_0"],"DA":[],"O":{"%":271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_0"],"DA":[],"O":{"%":272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_37.w_0"],"DA":[],"O":{"%":273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_2"],"DA":[],"O":{"%":274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_1"],"DA":[],"O":{"%":275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.b_0"],"DA":[],"O":{"%":276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_0"],"DA":[],"O":{"%":277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_36.w_0"],"DA":[],"O":{"%":278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1664,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_2"],"DA":[],"O":{"%":279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_1"],"DA":[],"O":{"%":280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.b_0"],"DA":[],"O":{"%":281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_0"],"DA":[],"O":{"%":282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_35.w_0"],"DA":[],"O":{"%":283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_2"],"DA":[],"O":{"%":284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_1"],"DA":[],"O":{"%":285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.b_0"],"DA":[],"O":{"%":286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_0"],"DA":[],"O":{"%":287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_34.w_0"],"DA":[],"O":{"%":288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_2"],"DA":[],"O":{"%":289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_1"],"DA":[],"O":{"%":290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.b_0"],"DA":[],"O":{"%":291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_0"],"DA":[],"O":{"%":292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_33.w_0"],"DA":[],"O":{"%":293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_2"],"DA":[],"O":{"%":294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_1"],"DA":[],"O":{"%":295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.b_0"],"DA":[],"O":{"%":296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_0"],"DA":[],"O":{"%":297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_32.w_0"],"DA":[],"O":{"%":298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_2"],"DA":[],"O":{"%":299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_1"],"DA":[],"O":{"%":300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.b_0"],"DA":[],"O":{"%":301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_0"],"DA":[],"O":{"%":302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_31.w_0"],"DA":[],"O":{"%":303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_2"],"DA":[],"O":{"%":304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_1"],"DA":[],"O":{"%":305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.b_0"],"DA":[],"O":{"%":306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_0"],"DA":[],"O":{"%":307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_30.w_0"],"DA":[],"O":{"%":308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_2"],"DA":[],"O":{"%":309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_1"],"DA":[],"O":{"%":310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.b_0"],"DA":[],"O":{"%":311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_0"],"DA":[],"O":{"%":312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.w_0"],"DA":[],"O":{"%":313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_2"],"DA":[],"O":{"%":314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_1"],"DA":[],"O":{"%":315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.b_0"],"DA":[],"O":{"%":316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_0"],"DA":[],"O":{"%":317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.w_0"],"DA":[],"O":{"%":318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_2"],"DA":[],"O":{"%":319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_1"],"DA":[],"O":{"%":320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.b_0"],"DA":[],"O":{"%":321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_0"],"DA":[],"O":{"%":322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_27.w_0"],"DA":[],"O":{"%":323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_2"],"DA":[],"O":{"%":324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_1"],"DA":[],"O":{"%":325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.b_0"],"DA":[],"O":{"%":326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_0"],"DA":[],"O":{"%":327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_26.w_0"],"DA":[],"O":{"%":328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_2"],"DA":[],"O":{"%":329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_1"],"DA":[],"O":{"%":330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.b_0"],"DA":[],"O":{"%":331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_0"],"DA":[],"O":{"%":332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.w_0"],"DA":[],"O":{"%":333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_2"],"DA":[],"O":{"%":334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_1"],"DA":[],"O":{"%":335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.b_0"],"DA":[],"O":{"%":336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_0"],"DA":[],"O":{"%":337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.w_0"],"DA":[],"O":{"%":338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_2"],"DA":[],"O":{"%":339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_1"],"DA":[],"O":{"%":340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.b_0"],"DA":[],"O":{"%":341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_0"],"DA":[],"O":{"%":342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_23.w_0"],"DA":[],"O":{"%":343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_2"],"DA":[],"O":{"%":344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_1"],"DA":[],"O":{"%":345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.b_0"],"DA":[],"O":{"%":346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_0"],"DA":[],"O":{"%":347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_22.w_0"],"DA":[],"O":{"%":348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_2"],"DA":[],"O":{"%":349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_1"],"DA":[],"O":{"%":350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.b_0"],"DA":[],"O":{"%":351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_0"],"DA":[],"O":{"%":352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_21.w_0"],"DA":[],"O":{"%":353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,704,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_2"],"DA":[],"O":{"%":354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_1"],"DA":[],"O":{"%":355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.b_0"],"DA":[],"O":{"%":356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_0"],"DA":[],"O":{"%":357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_20.w_0"],"DA":[],"O":{"%":358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_2"],"DA":[],"O":{"%":359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_1"],"DA":[],"O":{"%":360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.b_0"],"DA":[],"O":{"%":361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_0"],"DA":[],"O":{"%":362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_19.w_0"],"DA":[],"O":{"%":363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_2"],"DA":[],"O":{"%":364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_1"],"DA":[],"O":{"%":365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.b_0"],"DA":[],"O":{"%":366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_0"],"DA":[],"O":{"%":367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_18.w_0"],"DA":[],"O":{"%":368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_2"],"DA":[],"O":{"%":369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_1"],"DA":[],"O":{"%":370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.b_0"],"DA":[],"O":{"%":371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_0"],"DA":[],"O":{"%":372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_17.w_0"],"DA":[],"O":{"%":373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_2"],"DA":[],"O":{"%":374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_1"],"DA":[],"O":{"%":375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.b_0"],"DA":[],"O":{"%":376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_0"],"DA":[],"O":{"%":377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_16.w_0"],"DA":[],"O":{"%":378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_2"],"DA":[],"O":{"%":379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_1"],"DA":[],"O":{"%":380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.b_0"],"DA":[],"O":{"%":381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_0"],"DA":[],"O":{"%":382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_15.w_0"],"DA":[],"O":{"%":383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,128,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_2"],"DA":[],"O":{"%":384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_1"],"DA":[],"O":{"%":385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.b_0"],"DA":[],"O":{"%":386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_0"],"DA":[],"O":{"%":387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_14.w_0"],"DA":[],"O":{"%":388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_2"],"DA":[],"O":{"%":389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_1"],"DA":[],"O":{"%":390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.b_0"],"DA":[],"O":{"%":391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_0"],"DA":[],"O":{"%":392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_13.w_0"],"DA":[],"O":{"%":393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_2"],"DA":[],"O":{"%":394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_1"],"DA":[],"O":{"%":395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.b_0"],"DA":[],"O":{"%":396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_0"],"DA":[],"O":{"%":397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_12.w_0"],"DA":[],"O":{"%":398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,336,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_2"],"DA":[],"O":{"%":399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_1"],"DA":[],"O":{"%":400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.b_0"],"DA":[],"O":{"%":401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_0"],"DA":[],"O":{"%":402,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_11.w_0"],"DA":[],"O":{"%":403,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_2"],"DA":[],"O":{"%":404,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_1"],"DA":[],"O":{"%":405,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.b_0"],"DA":[],"O":{"%":406,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_0"],"DA":[],"O":{"%":407,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_10.w_0"],"DA":[],"O":{"%":408,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_2"],"DA":[],"O":{"%":409,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_1"],"DA":[],"O":{"%":410,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.b_0"],"DA":[],"O":{"%":411,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_0"],"DA":[],"O":{"%":412,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_9.w_0"],"DA":[],"O":{"%":413,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_2"],"DA":[],"O":{"%":414,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_1"],"DA":[],"O":{"%":415,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.b_0"],"DA":[],"O":{"%":416,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_0"],"DA":[],"O":{"%":417,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_8.w_0"],"DA":[],"O":{"%":418,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_2"],"DA":[],"O":{"%":419,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_1"],"DA":[],"O":{"%":420,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.b_0"],"DA":[],"O":{"%":421,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_0"],"DA":[],"O":{"%":422,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_7.w_0"],"DA":[],"O":{"%":423,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_2"],"DA":[],"O":{"%":424,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_1"],"DA":[],"O":{"%":425,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.b_0"],"DA":[],"O":{"%":426,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_0"],"DA":[],"O":{"%":427,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_6.w_0"],"DA":[],"O":{"%":428,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_2"],"DA":[],"O":{"%":429,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_1"],"DA":[],"O":{"%":430,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.b_0"],"DA":[],"O":{"%":431,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_0"],"DA":[],"O":{"%":432,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_5.w_0"],"DA":[],"O":{"%":433,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_2"],"DA":[],"O":{"%":434,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_1"],"DA":[],"O":{"%":435,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.b_0"],"DA":[],"O":{"%":436,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_0"],"DA":[],"O":{"%":437,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_4.w_0"],"DA":[],"O":{"%":438,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_2"],"DA":[],"O":{"%":439,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_1"],"DA":[],"O":{"%":440,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.b_0"],"DA":[],"O":{"%":441,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_0"],"DA":[],"O":{"%":442,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_3.w_0"],"DA":[],"O":{"%":443,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_2"],"DA":[],"O":{"%":444,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_1"],"DA":[],"O":{"%":445,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.b_0"],"DA":[],"O":{"%":446,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_0"],"DA":[],"O":{"%":447,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_2.w_0"],"DA":[],"O":{"%":448,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,16,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_2"],"DA":[],"O":{"%":449,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_1"],"DA":[],"O":{"%":450,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.b_0"],"DA":[],"O":{"%":451,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_0"],"DA":[],"O":{"%":452,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_1.w_0"],"DA":[],"O":{"%":453,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,32,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_2"],"DA":[],"O":{"%":454,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_1"],"DA":[],"O":{"%":455,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.b_0"],"DA":[],"O":{"%":456,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_0"],"DA":[],"O":{"%":457,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_0.w_0"],"DA":[],"O":{"%":458,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,3,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"1.data","A":[{"AT":{"#":"0.a_str","D":"x"},"N":"name"},{"AT":{"#":"1.a_intarray","D":[-1,3,48,-1]},"N":"shape"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[0,0,""]},"N":"place"}],"I":[],"O":[{"%":459,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3,48,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":459},{"%":458}],"O":[{"%":460,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":460},{"%":455},{"%":454},{"%":457},{"%":456}],"O":[{"%":461,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}},{"%":462,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":463,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":464,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":465,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":466,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":461}],"O":[{"%":467,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":467},{"%":453}],"O":[{"%":468,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":468},{"%":450},{"%":449},{"%":452},{"%":451}],"O":[{"%":469,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,24,-1],"NCHW",[],0]}},{"%":470,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":471,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":472,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":473,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":474,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":469}],"O":[{"%":475,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":475},{"%":448}],"O":[{"%":476,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":476},{"%":445},{"%":444},{"%":447},{"%":446}],"O":[{"%":477,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}},{"%":478,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":479,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":480,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":481,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":482,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":477}],"O":[{"%":483,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2},{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":484,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":true},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"max"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":false},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[{"%":467},{"%":484}],"O":[{"%":485,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[],"O":[{"%":486,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":485},{"%":483}],"O":[{"%":487,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":487},{"%":486}],"O":[{"%":488,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":488},{"%":443}],"O":[{"%":489,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":489},{"%":440},{"%":439},{"%":442},{"%":441}],"O":[{"%":490,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}},{"%":491,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":492,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":493,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":494,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":495,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":490}],"O":[{"%":496,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":496},{"%":438}],"O":[{"%":497,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":497},{"%":435},{"%":434},{"%":437},{"%":436}],"O":[{"%":498,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,24,-1],"NCHW",[],0]}},{"%":499,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":500,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":501,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":502,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":503,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":498}],"O":[{"%":504,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":48},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":504},{"%":433}],"O":[{"%":505,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":505},{"%":430},{"%":429},{"%":432},{"%":431}],"O":[{"%":506,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":507,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":508,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":509,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":510,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":511,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":506},{"%":428}],"O":[{"%":512,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":512},{"%":425},{"%":424},{"%":427},{"%":426}],"O":[{"%":513,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":514,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":515,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":516,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":517,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":518,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":513}],"O":[{"%":519,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":519},{"%":423}],"O":[{"%":520,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":520},{"%":420},{"%":419},{"%":422},{"%":421}],"O":[{"%":521,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":522,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":523,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":524,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":525,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":526,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":521}],"O":[{"%":527,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":527},{"%":418}],"O":[{"%":528,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":528},{"%":415},{"%":414},{"%":417},{"%":416}],"O":[{"%":529,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":530,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":531,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":532,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":533,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":534,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":529}],"O":[{"%":535,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":535},{"%":413}],"O":[{"%":536,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":536},{"%":410},{"%":409},{"%":412},{"%":411}],"O":[{"%":537,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":538,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":539,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":540,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":541,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":542,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":537}],"O":[{"%":543,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":543},{"%":408}],"O":[{"%":544,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":544},{"%":405},{"%":404},{"%":407},{"%":406}],"O":[{"%":545,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":546,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":547,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":548,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":549,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":550,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":545}],"O":[{"%":551,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":551},{"%":403}],"O":[{"%":552,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":552},{"%":400},{"%":399},{"%":402},{"%":401}],"O":[{"%":553,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":554,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":555,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":556,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":557,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":558,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":553}],"O":[{"%":559,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":560,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":506},{"%":519},{"%":527},{"%":535},{"%":543},{"%":551},{"%":559}],"O":[{"%":561,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":561},{"%":560}],"O":[{"%":562,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,336,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":562},{"%":398}],"O":[{"%":563,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":563},{"%":395},{"%":394},{"%":397},{"%":396}],"O":[{"%":564,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,12,-1],"NCHW",[],0]}},{"%":565,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":566,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":567,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":568,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":569,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":564}],"O":[{"%":570,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":570},{"%":393}],"O":[{"%":571,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":571},{"%":390},{"%":389},{"%":392},{"%":391}],"O":[{"%":572,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}},{"%":573,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":574,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":575,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":576,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":577,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":572}],"O":[{"%":578,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":578},{"%":388}],"O":[{"%":579,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":579},{"%":385},{"%":384},{"%":387},{"%":386}],"O":[{"%":580,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}},{"%":581,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":582,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":583,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":584,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":585,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":580},{"%":383}],"O":[{"%":586,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":586},{"%":380},{"%":379},{"%":382},{"%":381}],"O":[{"%":587,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":588,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":589,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":590,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":591,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":592,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":587}],"O":[{"%":593,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":593},{"%":378}],"O":[{"%":594,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":594},{"%":375},{"%":374},{"%":377},{"%":376}],"O":[{"%":595,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":596,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":597,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":598,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":599,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":600,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":595}],"O":[{"%":601,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":601},{"%":373}],"O":[{"%":602,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":602},{"%":370},{"%":369},{"%":372},{"%":371}],"O":[{"%":603,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":604,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":605,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":606,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":607,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":608,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":603}],"O":[{"%":609,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":609},{"%":368}],"O":[{"%":610,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":610},{"%":365},{"%":364},{"%":367},{"%":366}],"O":[{"%":611,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":612,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":613,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":614,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":615,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":616,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":611}],"O":[{"%":617,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":617},{"%":363}],"O":[{"%":618,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":618},{"%":360},{"%":359},{"%":362},{"%":361}],"O":[{"%":619,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":620,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":621,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":622,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":623,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":624,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":619}],"O":[{"%":625,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":625},{"%":358}],"O":[{"%":626,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":626},{"%":355},{"%":354},{"%":357},{"%":356}],"O":[{"%":627,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":628,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":629,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":630,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":631,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":632,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":627}],"O":[{"%":633,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":634,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":580},{"%":593},{"%":601},{"%":609},{"%":617},{"%":625},{"%":633}],"O":[{"%":635,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":635},{"%":634}],"O":[{"%":636,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,704,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":636},{"%":353}],"O":[{"%":637,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":637},{"%":350},{"%":349},{"%":352},{"%":351}],"O":[{"%":638,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,12,-1],"NCHW",[],0]}},{"%":639,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":640,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":641,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":642,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":643,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":638}],"O":[{"%":644,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":644},{"%":348}],"O":[{"%":645,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":645},{"%":345},{"%":344},{"%":347},{"%":346}],"O":[{"%":646,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,12,-1],"NCHW",[],0]}},{"%":647,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":648,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":649,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":650,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":651,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":646}],"O":[{"%":652,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":512},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":652},{"%":343}],"O":[{"%":653,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":653},{"%":340},{"%":339},{"%":342},{"%":341}],"O":[{"%":654,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":655,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":656,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":657,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":658,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":659,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":654},{"%":338}],"O":[{"%":660,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":660},{"%":335},{"%":334},{"%":337},{"%":336}],"O":[{"%":661,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":662,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":663,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":664,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":665,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":666,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":661},{"%":333}],"O":[{"%":667,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":667},{"%":330},{"%":329},{"%":332},{"%":331}],"O":[{"%":668,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":669,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":670,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":671,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":672,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":673,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":668}],"O":[{"%":674,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":674},{"%":328}],"O":[{"%":675,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":675},{"%":325},{"%":324},{"%":327},{"%":326}],"O":[{"%":676,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":677,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":678,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":679,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":680,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":681,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":676},{"%":323}],"O":[{"%":682,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":682},{"%":320},{"%":319},{"%":322},{"%":321}],"O":[{"%":683,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":684,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":685,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":686,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":687,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":688,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":683}],"O":[{"%":689,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":689},{"%":318}],"O":[{"%":690,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":690},{"%":315},{"%":314},{"%":317},{"%":316}],"O":[{"%":691,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":692,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":693,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":694,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":695,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":696,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":691},{"%":313}],"O":[{"%":697,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":697},{"%":310},{"%":309},{"%":312},{"%":311}],"O":[{"%":698,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":699,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":700,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":701,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":702,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":703,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":698}],"O":[{"%":704,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":704},{"%":308}],"O":[{"%":705,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":705},{"%":305},{"%":304},{"%":307},{"%":306}],"O":[{"%":706,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":707,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":708,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":709,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":710,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":711,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":706},{"%":303}],"O":[{"%":712,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":712},{"%":300},{"%":299},{"%":302},{"%":301}],"O":[{"%":713,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":714,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":715,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":716,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":717,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":718,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":713}],"O":[{"%":719,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":719},{"%":298}],"O":[{"%":720,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":720},{"%":295},{"%":294},{"%":297},{"%":296}],"O":[{"%":721,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":722,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":723,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":724,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":725,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":726,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":721},{"%":293}],"O":[{"%":727,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":727},{"%":290},{"%":289},{"%":292},{"%":291}],"O":[{"%":728,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":729,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":730,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":731,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":732,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":733,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":728}],"O":[{"%":734,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":734},{"%":288}],"O":[{"%":735,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":735},{"%":285},{"%":284},{"%":287},{"%":286}],"O":[{"%":736,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":737,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":738,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":739,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":740,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":741,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":736},{"%":283}],"O":[{"%":742,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":742},{"%":280},{"%":279},{"%":282},{"%":281}],"O":[{"%":743,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":744,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":745,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":746,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":747,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":748,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":743}],"O":[{"%":749,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":750,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":654},{"%":674},{"%":689},{"%":704},{"%":719},{"%":734},{"%":749}],"O":[{"%":751,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":751},{"%":750}],"O":[{"%":752,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1664,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":752},{"%":278}],"O":[{"%":753,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":753},{"%":275},{"%":274},{"%":277},{"%":276}],"O":[{"%":754,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":755,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":756,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":757,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":758,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":759,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":754}],"O":[{"%":760,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":760},{"%":273}],"O":[{"%":761,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":761},{"%":270},{"%":269},{"%":272},{"%":271}],"O":[{"%":762,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}},{"%":763,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":764,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":765,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":766,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":767,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":762}],"O":[{"%":768,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":768},{"%":268}],"O":[{"%":769,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":769},{"%":265},{"%":264},{"%":267},{"%":266}],"O":[{"%":770,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":771,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":772,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":773,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":774,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":775,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":770},{"%":263}],"O":[{"%":776,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":776},{"%":260},{"%":259},{"%":262},{"%":261}],"O":[{"%":777,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":778,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":779,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":780,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":781,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":782,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":777}],"O":[{"%":783,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":783},{"%":258}],"O":[{"%":784,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":784},{"%":255},{"%":254},{"%":257},{"%":256}],"O":[{"%":785,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":786,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":787,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":788,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":789,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":790,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":785},{"%":253}],"O":[{"%":791,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":791},{"%":250},{"%":249},{"%":252},{"%":251}],"O":[{"%":792,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":793,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":794,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":795,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":796,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":797,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":792}],"O":[{"%":798,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":798},{"%":248}],"O":[{"%":799,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":799},{"%":245},{"%":244},{"%":247},{"%":246}],"O":[{"%":800,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":801,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":802,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":803,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":804,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":805,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":800},{"%":243}],"O":[{"%":806,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":806},{"%":240},{"%":239},{"%":242},{"%":241}],"O":[{"%":807,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":808,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":809,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":810,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":811,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":812,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":807}],"O":[{"%":813,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":813},{"%":238}],"O":[{"%":814,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":814},{"%":235},{"%":234},{"%":237},{"%":236}],"O":[{"%":815,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":816,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":817,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":818,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":819,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":820,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":815},{"%":233}],"O":[{"%":821,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":821},{"%":230},{"%":229},{"%":232},{"%":231}],"O":[{"%":822,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":823,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":824,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":825,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":826,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":827,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":822}],"O":[{"%":828,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":828},{"%":228}],"O":[{"%":829,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":829},{"%":225},{"%":224},{"%":227},{"%":226}],"O":[{"%":830,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":831,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":832,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":833,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":834,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":835,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":830},{"%":223}],"O":[{"%":836,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":836},{"%":220},{"%":219},{"%":222},{"%":221}],"O":[{"%":837,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":838,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":839,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":840,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":841,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":842,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":837}],"O":[{"%":843,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":843},{"%":218}],"O":[{"%":844,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":844},{"%":215},{"%":214},{"%":217},{"%":216}],"O":[{"%":845,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":846,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":847,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":848,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":849,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":850,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":845},{"%":213}],"O":[{"%":851,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":851},{"%":210},{"%":209},{"%":212},{"%":211}],"O":[{"%":852,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":853,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":854,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":855,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":856,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":857,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":852}],"O":[{"%":858,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[],"O":[{"%":859,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":768},{"%":783},{"%":798},{"%":813},{"%":828},{"%":843},{"%":858}],"O":[{"%":860,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":860},{"%":859}],"O":[{"%":861,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":861},{"%":208}],"O":[{"%":862,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":862},{"%":205},{"%":204},{"%":207},{"%":206}],"O":[{"%":863,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":864,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":865,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":866,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":867,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":868,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":863}],"O":[{"%":869,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":869},{"%":203}],"O":[{"%":870,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":870},{"%":200},{"%":199},{"%":202},{"%":201}],"O":[{"%":871,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}},{"%":872,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":873,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":874,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":875,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":876,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":871}],"O":[{"%":877,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":877},{"%":768}],"O":[{"%":878,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":878},{"%":198}],"O":[{"%":879,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":879},{"%":195},{"%":194},{"%":197},{"%":196}],"O":[{"%":880,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":881,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":882,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":883,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":884,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":885,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":880},{"%":193}],"O":[{"%":886,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":886},{"%":190},{"%":189},{"%":192},{"%":191}],"O":[{"%":887,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":888,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":889,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":890,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":891,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":892,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":887}],"O":[{"%":893,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":893},{"%":188}],"O":[{"%":894,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":894},{"%":185},{"%":184},{"%":187},{"%":186}],"O":[{"%":895,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":896,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":897,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":898,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":899,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":900,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":895},{"%":183}],"O":[{"%":901,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":901},{"%":180},{"%":179},{"%":182},{"%":181}],"O":[{"%":902,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":903,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":904,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":905,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":906,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":907,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":902}],"O":[{"%":908,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":908},{"%":178}],"O":[{"%":909,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":909},{"%":175},{"%":174},{"%":177},{"%":176}],"O":[{"%":910,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":911,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":912,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":913,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":914,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":915,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":910},{"%":173}],"O":[{"%":916,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":916},{"%":170},{"%":169},{"%":172},{"%":171}],"O":[{"%":917,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":918,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":919,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":920,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":921,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":922,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":917}],"O":[{"%":923,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":923},{"%":168}],"O":[{"%":924,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":924},{"%":165},{"%":164},{"%":167},{"%":166}],"O":[{"%":925,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":926,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":927,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":928,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":929,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":930,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":925},{"%":163}],"O":[{"%":931,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":931},{"%":160},{"%":159},{"%":162},{"%":161}],"O":[{"%":932,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":933,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":934,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":935,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":936,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":937,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":932}],"O":[{"%":938,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":938},{"%":158}],"O":[{"%":939,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":939},{"%":155},{"%":154},{"%":157},{"%":156}],"O":[{"%":940,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":941,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":942,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":943,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":944,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":945,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":940},{"%":153}],"O":[{"%":946,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":946},{"%":150},{"%":149},{"%":152},{"%":151}],"O":[{"%":947,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":948,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":949,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":950,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":951,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":952,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":947}],"O":[{"%":953,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":953},{"%":148}],"O":[{"%":954,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":954},{"%":145},{"%":144},{"%":147},{"%":146}],"O":[{"%":955,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":956,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":957,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":958,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":959,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":960,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":955},{"%":143}],"O":[{"%":961,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":961},{"%":140},{"%":139},{"%":142},{"%":141}],"O":[{"%":962,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":963,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":964,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":965,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":966,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":967,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":962}],"O":[{"%":968,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[],"O":[{"%":969,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":878},{"%":893},{"%":908},{"%":923},{"%":938},{"%":953},{"%":968}],"O":[{"%":970,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":970},{"%":969}],"O":[{"%":971,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":971},{"%":138}],"O":[{"%":972,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":972},{"%":135},{"%":134},{"%":137},{"%":136}],"O":[{"%":973,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":974,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":975,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":976,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":977,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":978,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":973}],"O":[{"%":979,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":979},{"%":133}],"O":[{"%":980,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":980},{"%":130},{"%":129},{"%":132},{"%":131}],"O":[{"%":981,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}},{"%":982,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":983,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":984,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":985,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":986,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":981}],"O":[{"%":987,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":987},{"%":878}],"O":[{"%":988,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1024},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":988},{"%":128}],"O":[{"%":989,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":989},{"%":125},{"%":124},{"%":127},{"%":126}],"O":[{"%":990,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}},{"%":991,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":992,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":993,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":994,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":995,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":990},{"%":123}],"O":[{"%":996,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":996},{"%":120},{"%":119},{"%":122},{"%":121}],"O":[{"%":997,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":998,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":999,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1000,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1001,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1002,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":997},{"%":118}],"O":[{"%":1003,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1003},{"%":115},{"%":114},{"%":117},{"%":116}],"O":[{"%":1004,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1005,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1006,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1007,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1008,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1009,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1004}],"O":[{"%":1010,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1010},{"%":113}],"O":[{"%":1011,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1011},{"%":110},{"%":109},{"%":112},{"%":111}],"O":[{"%":1012,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1013,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1014,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1015,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1016,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1017,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1012},{"%":108}],"O":[{"%":1018,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1018},{"%":105},{"%":104},{"%":107},{"%":106}],"O":[{"%":1019,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1020,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1021,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1022,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1023,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1024,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1019}],"O":[{"%":1025,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1025},{"%":103}],"O":[{"%":1026,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1026},{"%":100},{"%":99},{"%":102},{"%":101}],"O":[{"%":1027,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1028,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1029,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1030,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1031,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1032,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1027},{"%":98}],"O":[{"%":1033,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1033},{"%":95},{"%":94},{"%":97},{"%":96}],"O":[{"%":1034,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1035,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1036,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1037,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1038,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1039,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1034}],"O":[{"%":1040,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1040},{"%":93}],"O":[{"%":1041,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1041},{"%":90},{"%":89},{"%":92},{"%":91}],"O":[{"%":1042,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1043,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1044,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1045,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1046,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1047,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1042},{"%":88}],"O":[{"%":1048,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1048},{"%":85},{"%":84},{"%":87},{"%":86}],"O":[{"%":1049,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1050,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1051,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1052,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1053,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1054,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1049}],"O":[{"%":1055,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1055},{"%":83}],"O":[{"%":1056,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1056},{"%":80},{"%":79},{"%":82},{"%":81}],"O":[{"%":1057,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1058,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1059,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1060,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1061,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1062,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1057},{"%":78}],"O":[{"%":1063,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1063},{"%":75},{"%":74},{"%":77},{"%":76}],"O":[{"%":1064,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1065,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1066,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1067,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1068,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1069,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1064}],"O":[{"%":1070,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1070},{"%":73}],"O":[{"%":1071,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1071},{"%":70},{"%":69},{"%":72},{"%":71}],"O":[{"%":1072,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1073,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1074,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1075,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1076,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1077,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1072},{"%":68}],"O":[{"%":1078,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1078},{"%":65},{"%":64},{"%":67},{"%":66}],"O":[{"%":1079,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1080,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1081,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1082,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1083,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1084,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1079}],"O":[{"%":1085,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":1086,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":990},{"%":1010},{"%":1025},{"%":1040},{"%":1055},{"%":1070},{"%":1085}],"O":[{"%":1087,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":1087},{"%":1086}],"O":[{"%":1088,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3328,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1088},{"%":63}],"O":[{"%":1089,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1089},{"%":60},{"%":59},{"%":62},{"%":61}],"O":[{"%":1090,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}},{"%":1091,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1092,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1093,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1094,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1095,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":1090}],"O":[{"%":1096,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1096},{"%":58}],"O":[{"%":1097,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1097},{"%":55},{"%":54},{"%":57},{"%":56}],"O":[{"%":1098,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,3,-1],"NCHW",[],0]}},{"%":1099,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1098}],"O":[{"%":1104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3},{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/"},"N":"struct_name"}],"I":[],"O":[{"%":1105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":false},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/"},"N":"struct_name"}],"I":[{"%":1104},{"%":1105}],"O":[{"%":1106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.assign","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1106}],"O":[{"%":1107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":1107},{"%":53}],"O":[{"%":1108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1108},{"%":50},{"%":49},{"%":52},{"%":51}],"O":[{"%":1109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}},{"%":1110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer/Swish/"},"N":"struct_name"}],"I":[{"%":1109}],"O":[{"%":1115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1115},{"%":48}],"O":[{"%":1116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1116},{"%":45},{"%":44},{"%":47},{"%":46}],"O":[{"%":1117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}},{"%":1118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_1/Swish/"},"N":"struct_name"}],"I":[{"%":1117}],"O":[{"%":1123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.shape64","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1123}],"O":[{"%":1124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":4}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1124},{"%":1125},{"%":1126}],"O":[{"%":1127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.flatten","A":[{"AT":{"#":"0.a_i32","D":2},"N":"start_axis"},{"AT":{"#":"0.a_i32","D":3},"N":"stop_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1123}],"O":[{"%":1128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1128}],"O":[{"%":1129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/LayerNorm/"},"N":"struct_name"}],"I":[{"%":1129},{"%":43},{"%":42}],"O":[{"%":1130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1130},{"%":41}],"O":[{"%":1133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1133},{"%":40}],"O":[{"%":1134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":3},{"#":"0.a_i64","D":8},{"#":"0.a_i64","D":15}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[5],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1134},{"%":1135}],"O":[{"%":1136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,3,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":4}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1136}],"O":[{"%":1137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[3,-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1137},{"%":1138},{"%":1139}],"O":[{"%":1140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.25819888710975647},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.scale","A":[{"AT":{"#":"0.a_f32","D":0.0},"N":"bias"},{"AT":{"#":"0.a_bool","D":true},"N":"bias_after_scale"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1140},{"%":1141}],"O":[{"%":1142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1137},{"%":1143},{"%":1144}],"O":[{"%":1145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1137},{"%":1146},{"%":1147}],"O":[{"%":1148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":2}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1145}],"O":[{"%":1149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,15,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1142},{"%":1149}],"O":[{"%":1150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":-1},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1150}],"O":[{"%":1151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout/"},"N":"struct_name"}],"I":[{"%":1151},{"%":0},{"%":1152}],"O":[{"%":1153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}},{"%":1154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1153},{"%":1148}],"O":[{"%":1155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1155}],"O":[{"%":1156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":120}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[3],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1156},{"%":1157}],"O":[{"%":1158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1158},{"%":39}],"O":[{"%":1159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1159},{"%":38}],"O":[{"%":1160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1160},{"%":0},{"%":1161}],"O":[{"%":1162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/"},"N":"struct_name"}],"I":[{"%":1129},{"%":1162}],"O":[{"%":1164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/LayerNorm_1/"},"N":"struct_name"}],"I":[{"%":1164},{"%":37},{"%":36}],"O":[{"%":1165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1165},{"%":35}],"O":[{"%":1168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1168},{"%":34}],"O":[{"%":1169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Swish/"},"N":"struct_name"}],"I":[{"%":1169}],"O":[{"%":1170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout/"},"N":"struct_name"}],"I":[{"%":1170},{"%":0},{"%":1171}],"O":[{"%":1172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}},{"%":1173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1172},{"%":33}],"O":[{"%":1174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1174},{"%":32}],"O":[{"%":1175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1175},{"%":0},{"%":1176}],"O":[{"%":1177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/"},"N":"struct_name"}],"I":[{"%":1164},{"%":1177}],"O":[{"%":1179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/LayerNorm/"},"N":"struct_name"}],"I":[{"%":1179},{"%":31},{"%":30}],"O":[{"%":1180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1180},{"%":29}],"O":[{"%":1183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1183},{"%":28}],"O":[{"%":1184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":3},{"#":"0.a_i64","D":8},{"#":"0.a_i64","D":15}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[5],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1184},{"%":1185}],"O":[{"%":1186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,3,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":4}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1186}],"O":[{"%":1187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[3,-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1187},{"%":1188},{"%":1189}],"O":[{"%":1190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.25819888710975647},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.scale","A":[{"AT":{"#":"0.a_f32","D":0.0},"N":"bias"},{"AT":{"#":"0.a_bool","D":true},"N":"bias_after_scale"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1190},{"%":1191}],"O":[{"%":1192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1187},{"%":1193},{"%":1194}],"O":[{"%":1195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1187},{"%":1196},{"%":1197}],"O":[{"%":1198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":2}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1195}],"O":[{"%":1199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,15,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1192},{"%":1199}],"O":[{"%":1200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":-1},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1200}],"O":[{"%":1201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout/"},"N":"struct_name"}],"I":[{"%":1201},{"%":0},{"%":1202}],"O":[{"%":1203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}},{"%":1204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1203},{"%":1198}],"O":[{"%":1205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1205}],"O":[{"%":1206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":120}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[3],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1206},{"%":1207}],"O":[{"%":1208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1208},{"%":27}],"O":[{"%":1209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1209},{"%":26}],"O":[{"%":1210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1210},{"%":0},{"%":1211}],"O":[{"%":1212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/"},"N":"struct_name"}],"I":[{"%":1179},{"%":1212}],"O":[{"%":1214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/LayerNorm_1/"},"N":"struct_name"}],"I":[{"%":1214},{"%":25},{"%":24}],"O":[{"%":1215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1215},{"%":23}],"O":[{"%":1218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1218},{"%":22}],"O":[{"%":1219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Swish/"},"N":"struct_name"}],"I":[{"%":1219}],"O":[{"%":1220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout/"},"N":"struct_name"}],"I":[{"%":1220},{"%":0},{"%":1221}],"O":[{"%":1222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}},{"%":1223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1222},{"%":21}],"O":[{"%":1224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1224},{"%":20}],"O":[{"%":1225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1225},{"%":0},{"%":1226}],"O":[{"%":1227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/"},"N":"struct_name"}],"I":[{"%":1214},{"%":1227}],"O":[{"%":1229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999974752427e-07},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/LayerNorm/"},"N":"struct_name"}],"I":[{"%":1229},{"%":19},{"%":18}],"O":[{"%":1230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[]},"N":"shape"},{"AT":{"#":"0.a_f64","D":120.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1233},{"%":1234},{"%":1127},{"%":1235}],"O":[{"%":1236,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.stack","A":[{"AT":{"#":"0.a_i32","D":0},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1236}],"O":[{"%":1237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1230},{"%":1237}],"O":[{"%":1238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":2}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1238}],"O":[{"%":1239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":1239},{"%":17}],"O":[{"%":1240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1240},{"%":14},{"%":13},{"%":16},{"%":15}],"O":[{"%":1241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}},{"%":1242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_2/Swish/"},"N":"struct_name"}],"I":[{"%":1241}],"O":[{"%":1247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1107},{"%":1247}],"O":[{"%":1249,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1249},{"%":1248}],"O":[{"%":1250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,4096,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":1250},{"%":12}],"O":[{"%":1251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1251},{"%":9},{"%":8},{"%":11},{"%":10}],"O":[{"%":1252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}},{"%":1253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_3/Swish/"},"N":"struct_name"}],"I":[{"%":1252}],"O":[{"%":1258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":1258},{"%":7}],"O":[{"%":1259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1259},{"%":4},{"%":3},{"%":6},{"%":5}],"O":[{"%":1260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}},{"%":1261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_4/Swish/"},"N":"struct_name"}],"I":[{"%":1260}],"O":[{"%":1266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/Im2Seq/"},"N":"struct_name"}],"I":[],"O":[{"%":1267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.squeeze","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/Im2Seq/"},"N":"struct_name"}],"I":[{"%":1266},{"%":1267}],"O":[{"%":1268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/Im2Seq/"},"N":"struct_name"}],"I":[{"%":1268}],"O":[{"%":1269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/CTCHead/Linear/"},"N":"struct_name"}],"I":[{"%":1269},{"%":2}],"O":[{"%":1270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/CTCHead/Linear/"},"N":"struct_name"}],"I":[{"%":1270},{"%":1}],"O":[{"%":1271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":2},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/CTCHead/"},"N":"struct_name"}],"I":[{"%":1271}],"O":[{"%":1272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.fetch","A":[{"AT":{"#":"0.a_str","D":"fetch_name_0"},"N":"name"},{"AT":{"#":"0.a_i32","D":0},"N":"col"}],"I":[{"%":1272}],"O":[{"%":1273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"persistable"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]}]}]}]}} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml new file mode 100644 index 0000000..f5156e7 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml @@ -0,0 +1,18426 @@ +Global: + model_name: PP-OCRv5_server_rec +Hpi: + backend_configs: + paddle_infer: + trt_dynamic_shapes: &id001 + x: + - - 1 + - 3 + - 48 + - 160 + - - 1 + - 3 + - 48 + - 320 + - - 8 + - 3 + - 48 + - 3200 + tensorrt: + dynamic_shapes: *id001 +PreProcess: + transform_ops: + - DecodeImage: + channel_first: false + img_mode: BGR + - MultiLabelEncode: + gtc_encode: NRTRLabelEncode + - RecResizeImg: + image_shape: + - 3 + - 48 + - 320 + - KeepKeys: + keep_keys: + - image + - label_ctc + - label_gtc + - length + - valid_ratio +PostProcess: + name: CTCLabelDecode + character_dict: + -   + - 一 + - 乙 + - 二 + - 十 + - 丁 + - 厂 + - 七 + - 卜 + - 八 + - 人 + - 入 + - 儿 + - 匕 + - 几 + - 九 + - 刁 + - 了 + - 刀 + - 力 + - 乃 + - 又 + - 三 + - 干 + - 于 + - 亏 + - 工 + - 土 + - 士 + - 才 + - 下 + - 寸 + - 大 + - 丈 + - 与 + - 万 + - 上 + - 小 + - 口 + - 山 + - 巾 + - 千 + - 乞 + - 川 + - 亿 + - 个 + - 夕 + - 久 + - 么 + - 勺 + - 凡 + - 丸 + - 及 + - 广 + - 亡 + - 门 + - 丫 + - 义 + - 之 + - 尸 + - 己 + - 已 + - 巳 + - 弓 + - 子 + - 卫 + - 也 + - 女 + - 刃 + - 飞 + - 习 + - 叉 + - 马 + - 乡 + - 丰 + - 王 + - 开 + - 井 + - 天 + - 夫 + - 元 + - 无 + - 云 + - 专 + - 丐 + - 扎 + - 艺 + - 木 + - 五 + - 支 + - 厅 + - 不 + - 犬 + - 太 + - 区 + - 历 + - 歹 + - 友 + - 尤 + - 匹 + - 车 + - 巨 + - 牙 + - 屯 + - 戈 + - 比 + - 互 + - 切 + - 瓦 + - 止 + - 少 + - 曰 + - 日 + - 中 + - 贝 + - 冈 + - 内 + - 水 + - 见 + - 午 + - 牛 + - 手 + - 气 + - 毛 + - 壬 + - 升 + - 夭 + - 长 + - 仁 + - 什 + - 片 + - 仆 + - 化 + - 仇 + - 币 + - 仍 + - 仅 + - 斤 + - 爪 + - 反 + - 介 + - 父 + - 从 + - 仑 + - 今 + - 凶 + - 分 + - 乏 + - 公 + - 仓 + - 月 + - 氏 + - 勿 + - 欠 + - 风 + - 丹 + - 匀 + - 乌 + - 勾 + - 凤 + - 六 + - 文 + - 亢 + - 方 + - 火 + - 为 + - 斗 + - 忆 + - 计 + - 订 + - 户 + - 认 + - 冗 + - 讥 + - 心 + - 尺 + - 引 + - 丑 + - 巴 + - 孔 + - 队 + - 办 + - 以 + - 允 + - 予 + - 邓 + - 劝 + - 双 + - 书 + - 幻 + - 玉 + - 刊 + - 未 + - 末 + - 示 + - 击 + - 打 + - 巧 + - 正 + - 扑 + - 卉 + - 扒 + - 功 + - 扔 + - 去 + - 甘 + - 世 + - 艾 + - 古 + - 节 + - 本 + - 术 + - 可 + - 丙 + - 左 + - 厉 + - 石 + - 右 + - 布 + - 夯 + - 戊 + - 龙 + - 平 + - 灭 + - 轧 + - 东 + - 卡 + - 北 + - 占 + - 凸 + - 卢 + - 业 + - 旧 + - 帅 + - 归 + - 旦 + - 目 + - 且 + - 叶 + - 甲 + - 申 + - 叮 + - 电 + - 号 + - 田 + - 由 + - 只 + - 叭 + - 史 + - 央 + - 兄 + - 叽 + - 叼 + - 叫 + - 叩 + - 叨 + - 另 + - 叹 + - 冉 + - 皿 + - 凹 + - 囚 + - 四 + - 生 + - 矢 + - 失 + - 乍 + - 禾 + - 丘 + - 付 + - 仗 + - 代 + - 仙 + - 们 + - 仪 + - 白 + - 仔 + - 他 + - 斥 + - 瓜 + - 乎 + - 丛 + - 令 + - 用 + - 甩 + - 印 + - 尔 + - 乐 + - 句 + - 匆 + - 册 + - 卯 + - 犯 + - 外 + - 处 + - 冬 + - 鸟 + - 务 + - 包 + - 饥 + - 主 + - 市 + - 立 + - 冯 + - 玄 + - 闪 + - 兰 + - 半 + - 汁 + - 汇 + - 头 + - 汉 + - 宁 + - 穴 + - 它 + - 讨 + - 写 + - 让 + - 礼 + - 训 + - 议 + - 必 + - 讯 + - 记 + - 永 + - 司 + - 尼 + - 民 + - 弗 + - 弘 + - 出 + - 辽 + - 奶 + - 奴 + - 召 + - 加 + - 皮 + - 边 + - 孕 + - 发 + - 圣 + - 对 + - 台 + - 矛 + - 纠 + - 母 + - 幼 + - 丝 + - 邦 + - 式 + - 迂 + - 刑 + - 戎 + - 动 + - 扛 + - 寺 + - 吉 + - 扣 + - 考 + - 托 + - 老 + - 巩 + - 圾 + - 执 + - 扩 + - 扫 + - 地 + - 场 + - 扬 + - 耳 + - 芋 + - 共 + - 芒 + - 亚 + - 芝 + - 朽 + - 朴 + - 机 + - 权 + - 过 + - 臣 + - 吏 + - 再 + - 协 + - 西 + - 压 + - 厌 + - 戌 + - 在 + - 百 + - 有 + - 存 + - 而 + - 页 + - 匠 + - 夸 + - 夺 + - 灰 + - 达 + - 列 + - 死 + - 成 + - 夹 + - 夷 + - 轨 + - 邪 + - 尧 + - 划 + - 迈 + - 毕 + - 至 + - 此 + - 贞 + - 师 + - 尘 + - 尖 + - 劣 + - 光 + - 当 + - 早 + - 吁 + - 吐 + - 吓 + - 虫 + - 曲 + - 团 + - 吕 + - 同 + - 吊 + - 吃 + - 因 + - 吸 + - 吗 + - 吆 + - 屿 + - 屹 + - 岁 + - 帆 + - 回 + - 岂 + - 则 + - 刚 + - 网 + - 肉 + - 年 + - 朱 + - 先 + - 丢 + - 廷 + - 舌 + - 竹 + - 迁 + - 乔 + - 迄 + - 伟 + - 传 + - 乒 + - 乓 + - 休 + - 伍 + - 伏 + - 优 + - 臼 + - 伐 + - 延 + - 仲 + - 件 + - 任 + - 伤 + - 价 + - 伦 + - 份 + - 华 + - 仰 + - 仿 + - 伙 + - 伪 + - 自 + - 伊 + - 血 + - 向 + - 似 + - 后 + - 行 + - 舟 + - 全 + - 会 + - 杀 + - 合 + - 兆 + - 企 + - 众 + - 爷 + - 伞 + - 创 + - 肌 + - 肋 + - 朵 + - 杂 + - 危 + - 旬 + - 旨 + - 旭 + - 负 + - 匈 + - 名 + - 各 + - 多 + - 争 + - 色 + - 壮 + - 冲 + - 妆 + - 冰 + - 庄 + - 庆 + - 亦 + - 刘 + - 齐 + - 交 + - 衣 + - 次 + - 产 + - 决 + - 亥 + - 充 + - 妄 + - 闭 + - 问 + - 闯 + - 羊 + - 并 + - 关 + - 米 + - 灯 + - 州 + - 汗 + - 污 + - 江 + - 汛 + - 池 + - 汝 + - 汤 + - 忙 + - 兴 + - 宇 + - 守 + - 宅 + - 字 + - 安 + - 讲 + - 讳 + - 军 + - 讶 + - 许 + - 讹 + - 论 + - 讼 + - 农 + - 讽 + - 设 + - 访 + - 诀 + - 寻 + - 那 + - 迅 + - 尽 + - 导 + - 异 + - 弛 + - 孙 + - 阵 + - 阳 + - 收 + - 阶 + - 阴 + - 防 + - 奸 + - 如 + - 妇 + - 妃 + - 好 + - 她 + - 妈 + - 戏 + - 羽 + - 观 + - 欢 + - 买 + - 红 + - 驮 + - 纤 + - 驯 + - 约 + - 级 + - 纪 + - 驰 + - 纫 + - 巡 + - 寿 + - 弄 + - 麦 + - 玖 + - 玛 + - 形 + - 进 + - 戒 + - 吞 + - 远 + - 违 + - 韧 + - 运 + - 扶 + - 抚 + - 坛 + - 技 + - 坏 + - 抠 + - 扰 + - 扼 + - 拒 + - 找 + - 批 + - 址 + - 扯 + - 走 + - 抄 + - 贡 + - 汞 + - 坝 + - 攻 + - 赤 + - 折 + - 抓 + - 扳 + - 抡 + - 扮 + - 抢 + - 孝 + - 坎 + - 均 + - 抑 + - 抛 + - 投 + - 坟 + - 坑 + - 抗 + - 坊 + - 抖 + - 护 + - 壳 + - 志 + - 块 + - 扭 + - 声 + - 把 + - 报 + - 拟 + - 却 + - 抒 + - 劫 + - 芙 + - 芜 + - 苇 + - 芽 + - 花 + - 芹 + - 芥 + - 芬 + - 苍 + - 芳 + - 严 + - 芦 + - 芯 + - 劳 + - 克 + - 芭 + - 苏 + - 杆 + - 杠 + - 杜 + - 材 + - 村 + - 杖 + - 杏 + - 杉 + - 巫 + - 极 + - 李 + - 杨 + - 求 + - 甫 + - 匣 + - 更 + - 束 + - 吾 + - 豆 + - 两 + - 酉 + - 丽 + - 医 + - 辰 + - 励 + - 否 + - 还 + - 尬 + - 歼 + - 来 + - 连 + - 轩 + - 步 + - 卤 + - 坚 + - 肖 + - 旱 + - 盯 + - 呈 + - 时 + - 吴 + - 助 + - 县 + - 里 + - 呆 + - 吱 + - 吠 + - 呕 + - 园 + - 旷 + - 围 + - 呀 + - 吨 + - 足 + - 邮 + - 男 + - 困 + - 吵 + - 串 + - 员 + - 呐 + - 听 + - 吟 + - 吩 + - 呛 + - 吻 + - 吹 + - 呜 + - 吭 + - 吧 + - 邑 + - 吼 + - 囤 + - 别 + - 吮 + - 岖 + - 岗 + - 帐 + - 财 + - 针 + - 钉 + - 牡 + - 告 + - 我 + - 乱 + - 利 + - 秃 + - 秀 + - 私 + - 每 + - 兵 + - 估 + - 体 + - 何 + - 佐 + - 佑 + - 但 + - 伸 + - 佃 + - 作 + - 伯 + - 伶 + - 佣 + - 低 + - 你 + - 住 + - 位 + - 伴 + - 身 + - 皂 + - 伺 + - 佛 + - 囱 + - 近 + - 彻 + - 役 + - 返 + - 余 + - 希 + - 坐 + - 谷 + - 妥 + - 含 + - 邻 + - 岔 + - 肝 + - 肛 + - 肚 + - 肘 + - 肠 + - 龟 + - 甸 + - 免 + - 狂 + - 犹 + - 狈 + - 角 + - 删 + - 条 + - 彤 + - 卵 + - 灸 + - 岛 + - 刨 + - 迎 + - 饭 + - 饮 + - 系 + - 言 + - 冻 + - 状 + - 亩 + - 况 + - 床 + - 库 + - 庇 + - 疗 + - 吝 + - 应 + - 这 + - 冷 + - 庐 + - 序 + - 辛 + - 弃 + - 冶 + - 忘 + - 闰 + - 闲 + - 间 + - 闷 + - 判 + - 兑 + - 灶 + - 灿 + - 灼 + - 弟 + - 汪 + - 沐 + - 沛 + - 汰 + - 沥 + - 沙 + - 汽 + - 沃 + - 沦 + - 汹 + - 泛 + - 沧 + - 没 + - 沟 + - 沪 + - 沈 + - 沉 + - 沁 + - 怀 + - 忧 + - 忱 + - 快 + - 完 + - 宋 + - 宏 + - 牢 + - 究 + - 穷 + - 灾 + - 良 + - 证 + - 启 + - 评 + - 补 + - 初 + - 社 + - 祀 + - 识 + - 诈 + - 诉 + - 罕 + - 诊 + - 词 + - 译 + - 君 + - 灵 + - 即 + - 层 + - 屁 + - 尿 + - 尾 + - 迟 + - 局 + - 改 + - 张 + - 忌 + - 际 + - 陆 + - 阿 + - 陈 + - 阻 + - 附 + - 坠 + - 妓 + - 妙 + - 妖 + - 姊 + - 妨 + - 妒 + - 努 + - 忍 + - 劲 + - 矣 + - 鸡 + - 纬 + - 驱 + - 纯 + - 纱 + - 纲 + - 纳 + - 驳 + - 纵 + - 纷 + - 纸 + - 纹 + - 纺 + - 驴 + - 纽 + - 奉 + - 玩 + - 环 + - 武 + - 青 + - 责 + - 现 + - 玫 + - 表 + - 规 + - 抹 + - 卦 + - 坷 + - 坯 + - 拓 + - 拢 + - 拔 + - 坪 + - 拣 + - 坦 + - 担 + - 坤 + - 押 + - 抽 + - 拐 + - 拖 + - 者 + - 拍 + - 顶 + - 拆 + - 拎 + - 拥 + - 抵 + - 拘 + - 势 + - 抱 + - 拄 + - 垃 + - 拉 + - 拦 + - 幸 + - 拌 + - 拧 + - 拂 + - 拙 + - 招 + - 坡 + - 披 + - 拨 + - 择 + - 抬 + - 拇 + - 拗 + - 其 + - 取 + - 茉 + - 苦 + - 昔 + - 苛 + - 若 + - 茂 + - 苹 + - 苗 + - 英 + - 苟 + - 苑 + - 苞 + - 范 + - 直 + - 茁 + - 茄 + - 茎 + - 苔 + - 茅 + - 枉 + - 林 + - 枝 + - 杯 + - 枢 + - 柜 + - 枚 + - 析 + - 板 + - 松 + - 枪 + - 枫 + - 构 + - 杭 + - 杰 + - 述 + - 枕 + - 丧 + - 或 + - 画 + - 卧 + - 事 + - 刺 + - 枣 + - 雨 + - 卖 + - 郁 + - 矾 + - 矿 + - 码 + - 厕 + - 奈 + - 奔 + - 奇 + - 奋 + - 态 + - 欧 + - 殴 + - 垄 + - 妻 + - 轰 + - 顷 + - 转 + - 斩 + - 轮 + - 软 + - 到 + - 非 + - 叔 + - 歧 + - 肯 + - 齿 + - 些 + - 卓 + - 虎 + - 虏 + - 肾 + - 贤 + - 尚 + - 旺 + - 具 + - 味 + - 果 + - 昆 + - 国 + - 哎 + - 咕 + - 昌 + - 呵 + - 畅 + - 明 + - 易 + - 咙 + - 昂 + - 迪 + - 典 + - 固 + - 忠 + - 呻 + - 咒 + - 咋 + - 咐 + - 呼 + - 鸣 + - 咏 + - 呢 + - 咄 + - 咖 + - 岸 + - 岩 + - 帖 + - 罗 + - 帜 + - 帕 + - 岭 + - 凯 + - 败 + - 账 + - 贩 + - 贬 + - 购 + - 贮 + - 图 + - 钓 + - 制 + - 知 + - 迭 + - 氛 + - 垂 + - 牧 + - 物 + - 乖 + - 刮 + - 秆 + - 和 + - 季 + - 委 + - 秉 + - 佳 + - 侍 + - 岳 + - 供 + - 使 + - 例 + - 侠 + - 侥 + - 版 + - 侄 + - 侦 + - 侣 + - 侧 + - 凭 + - 侨 + - 佩 + - 货 + - 侈 + - 依 + - 卑 + - 的 + - 迫 + - 质 + - 欣 + - 征 + - 往 + - 爬 + - 彼 + - 径 + - 所 + - 舍 + - 金 + - 刹 + - 命 + - 肴 + - 斧 + - 爸 + - 采 + - 觅 + - 受 + - 乳 + - 贪 + - 念 + - 贫 + - 忿 + - 肤 + - 肺 + - 肢 + - 肿 + - 胀 + - 朋 + - 股 + - 肮 + - 肪 + - 肥 + - 服 + - 胁 + - 周 + - 昏 + - 鱼 + - 兔 + - 狐 + - 忽 + - 狗 + - 狞 + - 备 + - 饰 + - 饱 + - 饲 + - 变 + - 京 + - 享 + - 庞 + - 店 + - 夜 + - 庙 + - 府 + - 底 + - 疟 + - 疙 + - 疚 + - 剂 + - 卒 + - 郊 + - 庚 + - 废 + - 净 + - 盲 + - 放 + - 刻 + - 育 + - 氓 + - 闸 + - 闹 + - 郑 + - 券 + - 卷 + - 单 + - 炬 + - 炒 + - 炊 + - 炕 + - 炎 + - 炉 + - 沫 + - 浅 + - 法 + - 泄 + - 沽 + - 河 + - 沾 + - 泪 + - 沮 + - 油 + - 泊 + - 沿 + - 泡 + - 注 + - 泣 + - 泞 + - 泻 + - 泌 + - 泳 + - 泥 + - 沸 + - 沼 + - 波 + - 泼 + - 泽 + - 治 + - 怔 + - 怯 + - 怖 + - 性 + - 怕 + - 怜 + - 怪 + - 怡 + - 学 + - 宝 + - 宗 + - 定 + - 宠 + - 宜 + - 审 + - 宙 + - 官 + - 空 + - 帘 + - 宛 + - 实 + - 试 + - 郎 + - 诗 + - 肩 + - 房 + - 诚 + - 衬 + - 衫 + - 视 + - 祈 + - 话 + - 诞 + - 诡 + - 询 + - 该 + - 详 + - 建 + - 肃 + - 录 + - 隶 + - 帚 + - 屉 + - 居 + - 届 + - 刷 + - 屈 + - 弧 + - 弥 + - 弦 + - 承 + - 孟 + - 陋 + - 陌 + - 孤 + - 陕 + - 降 + - 函 + - 限 + - 妹 + - 姑 + - 姐 + - 姓 + - 妮 + - 始 + - 姆 + - 迢 + - 驾 + - 叁 + - 参 + - 艰 + - 线 + - 练 + - 组 + - 绅 + - 细 + - 驶 + - 织 + - 驹 + - 终 + - 驻 + - 绊 + - 驼 + - 绍 + - 绎 + - 经 + - 贯 + - 契 + - 贰 + - 奏 + - 春 + - 帮 + - 玷 + - 珍 + - 玲 + - 玻 + - 毒 + - 型 + - 拭 + - 挂 + - 封 + - 持 + - 拷 + - 拱 + - 项 + - 垮 + - 挎 + - 城 + - 挟 + - 挠 + - 政 + - 赴 + - 赵 + - 挡 + - 拽 + - 哉 + - 挺 + - 括 + - 垢 + - 拴 + - 拾 + - 挑 + - 垛 + - 指 + - 垫 + - 挣 + - 挤 + - 拼 + - 挖 + - 按 + - 挥 + - 挪 + - 拯 + - 某 + - 甚 + - 荆 + - 茸 + - 革 + - 茬 + - 荐 + - 巷 + - 带 + - 草 + - 茧 + - 茵 + - 茶 + - 荒 + - 茫 + - 荡 + - 荣 + - 荤 + - 荧 + - 故 + - 胡 + - 荫 + - 荔 + - 南 + - 药 + - 标 + - 栈 + - 柑 + - 枯 + - 柄 + - 栋 + - 相 + - 查 + - 柏 + - 栅 + - 柳 + - 柱 + - 柿 + - 栏 + - 柠 + - 树 + - 勃 + - 要 + - 柬 + - 咸 + - 威 + - 歪 + - 研 + - 砖 + - 厘 + - 厚 + - 砌 + - 砂 + - 泵 + - 砚 + - 砍 + - 面 + - 耐 + - 耍 + - 牵 + - 鸥 + - 残 + - 殃 + - 轴 + - 轻 + - 鸦 + - 皆 + - 韭 + - 背 + - 战 + - 点 + - 虐 + - 临 + - 览 + - 竖 + - 省 + - 削 + - 尝 + - 昧 + - 盹 + - 是 + - 盼 + - 眨 + - 哇 + - 哄 + - 哑 + - 显 + - 冒 + - 映 + - 星 + - 昨 + - 咧 + - 昭 + - 畏 + - 趴 + - 胃 + - 贵 + - 界 + - 虹 + - 虾 + - 蚁 + - 思 + - 蚂 + - 虽 + - 品 + - 咽 + - 骂 + - 勋 + - 哗 + - 咱 + - 响 + - 哈 + - 哆 + - 咬 + - 咳 + - 咪 + - 哪 + - 哟 + - 炭 + - 峡 + - 罚 + - 贱 + - 贴 + - 贻 + - 骨 + - 幽 + - 钙 + - 钝 + - 钞 + - 钟 + - 钢 + - 钠 + - 钥 + - 钦 + - 钧 + - 钩 + - 钮 + - 卸 + - 缸 + - 拜 + - 看 + - 矩 + - 毡 + - 氢 + - 怎 + - 牲 + - 选 + - 适 + - 秒 + - 香 + - 种 + - 秋 + - 科 + - 重 + - 复 + - 竿 + - 段 + - 便 + - 俩 + - 贷 + - 顺 + - 修 + - 俏 + - 保 + - 促 + - 俄 + - 俐 + - 侮 + - 俭 + - 俗 + - 俘 + - 信 + - 皇 + - 泉 + - 鬼 + - 侵 + - 禹 + - 侯 + - 追 + - 俊 + - 盾 + - 待 + - 徊 + - 衍 + - 律 + - 很 + - 须 + - 叙 + - 剑 + - 逃 + - 食 + - 盆 + - 胚 + - 胧 + - 胆 + - 胜 + - 胞 + - 胖 + - 脉 + - 胎 + - 勉 + - 狭 + - 狮 + - 独 + - 狰 + - 狡 + - 狱 + - 狠 + - 贸 + - 怨 + - 急 + - 饵 + - 饶 + - 蚀 + - 饺 + - 饼 + - 峦 + - 弯 + - 将 + - 奖 + - 哀 + - 亭 + - 亮 + - 度 + - 迹 + - 庭 + - 疮 + - 疯 + - 疫 + - 疤 + - 咨 + - 姿 + - 亲 + - 音 + - 帝 + - 施 + - 闺 + - 闻 + - 闽 + - 阀 + - 阁 + - 差 + - 养 + - 美 + - 姜 + - 叛 + - 送 + - 类 + - 迷 + - 籽 + - 娄 + - 前 + - 首 + - 逆 + - 兹 + - 总 + - 炼 + - 炸 + - 烁 + - 炮 + - 炫 + - 烂 + - 剃 + - 洼 + - 洁 + - 洪 + - 洒 + - 柒 + - 浇 + - 浊 + - 洞 + - 测 + - 洗 + - 活 + - 派 + - 洽 + - 染 + - 洛 + - 浏 + - 济 + - 洋 + - 洲 + - 浑 + - 浓 + - 津 + - 恃 + - 恒 + - 恢 + - 恍 + - 恬 + - 恤 + - 恰 + - 恼 + - 恨 + - 举 + - 觉 + - 宣 + - 宦 + - 室 + - 宫 + - 宪 + - 突 + - 穿 + - 窃 + - 客 + - 诫 + - 冠 + - 诬 + - 语 + - 扁 + - 袄 + - 祖 + - 神 + - 祝 + - 祠 + - 误 + - 诱 + - 诲 + - 说 + - 诵 + - 垦 + - 退 + - 既 + - 屋 + - 昼 + - 屏 + - 屎 + - 费 + - 陡 + - 逊 + - 眉 + - 孩 + - 陨 + - 除 + - 险 + - 院 + - 娃 + - 姥 + - 姨 + - 姻 + - 娇 + - 姚 + - 娜 + - 怒 + - 架 + - 贺 + - 盈 + - 勇 + - 怠 + - 癸 + - 蚤 + - 柔 + - 垒 + - 绑 + - 绒 + - 结 + - 绕 + - 骄 + - 绘 + - 给 + - 绚 + - 骆 + - 络 + - 绝 + - 绞 + - 骇 + - 统 + - 耕 + - 耘 + - 耗 + - 耙 + - 艳 + - 泰 + - 秦 + - 珠 + - 班 + - 素 + - 匿 + - 蚕 + - 顽 + - 盏 + - 匪 + - 捞 + - 栽 + - 捕 + - 埂 + - 捂 + - 振 + - 载 + - 赶 + - 起 + - 盐 + - 捎 + - 捍 + - 捏 + - 埋 + - 捉 + - 捆 + - 捐 + - 损 + - 袁 + - 捌 + - 都 + - 哲 + - 逝 + - 捡 + - 挫 + - 换 + - 挽 + - 挚 + - 热 + - 恐 + - 捣 + - 壶 + - 捅 + - 埃 + - 挨 + - 耻 + - 耿 + - 耽 + - 聂 + - 恭 + - 莽 + - 莱 + - 莲 + - 莫 + - 莉 + - 荷 + - 获 + - 晋 + - 恶 + - 莹 + - 莺 + - 真 + - 框 + - 梆 + - 桂 + - 桔 + - 栖 + - 档 + - 桐 + - 株 + - 桥 + - 桦 + - 栓 + - 桃 + - 格 + - 桩 + - 校 + - 核 + - 样 + - 根 + - 索 + - 哥 + - 速 + - 逗 + - 栗 + - 贾 + - 酌 + - 配 + - 翅 + - 辱 + - 唇 + - 夏 + - 砸 + - 砰 + - 砾 + - 础 + - 破 + - 原 + - 套 + - 逐 + - 烈 + - 殊 + - 殉 + - 顾 + - 轿 + - 较 + - 顿 + - 毙 + - 致 + - 柴 + - 桌 + - 虑 + - 监 + - 紧 + - 党 + - 逞 + - 晒 + - 眠 + - 晓 + - 哮 + - 唠 + - 鸭 + - 晃 + - 哺 + - 晌 + - 剔 + - 晕 + - 蚌 + - 畔 + - 蚣 + - 蚊 + - 蚪 + - 蚓 + - 哨 + - 哩 + - 圃 + - 哭 + - 哦 + - 恩 + - 鸯 + - 唤 + - 唁 + - 哼 + - 唧 + - 啊 + - 唉 + - 唆 + - 罢 + - 峭 + - 峨 + - 峰 + - 圆 + - 峻 + - 贼 + - 贿 + - 赂 + - 赃 + - 钱 + - 钳 + - 钻 + - 钾 + - 铁 + - 铃 + - 铅 + - 缺 + - 氧 + - 氨 + - 特 + - 牺 + - 造 + - 乘 + - 敌 + - 秤 + - 租 + - 积 + - 秧 + - 秩 + - 称 + - 秘 + - 透 + - 笔 + - 笑 + - 笋 + - 债 + - 借 + - 值 + - 倚 + - 俺 + - 倾 + - 倒 + - 倘 + - 俱 + - 倡 + - 候 + - 赁 + - 俯 + - 倍 + - 倦 + - 健 + - 臭 + - 射 + - 躬 + - 息 + - 倔 + - 徒 + - 徐 + - 殷 + - 舰 + - 舱 + - 般 + - 航 + - 途 + - 拿 + - 耸 + - 爹 + - 舀 + - 爱 + - 豺 + - 豹 + - 颁 + - 颂 + - 翁 + - 胰 + - 脆 + - 脂 + - 胸 + - 胳 + - 脏 + - 脐 + - 胶 + - 脑 + - 脓 + - 逛 + - 狸 + - 狼 + - 卿 + - 逢 + - 鸵 + - 留 + - 鸳 + - 皱 + - 饿 + - 馁 + - 凌 + - 凄 + - 恋 + - 桨 + - 浆 + - 衰 + - 衷 + - 高 + - 郭 + - 席 + - 准 + - 座 + - 症 + - 病 + - 疾 + - 斋 + - 疹 + - 疼 + - 疲 + - 脊 + - 效 + - 离 + - 紊 + - 唐 + - 瓷 + - 资 + - 凉 + - 站 + - 剖 + - 竞 + - 部 + - 旁 + - 旅 + - 畜 + - 阅 + - 羞 + - 羔 + - 瓶 + - 拳 + - 粉 + - 料 + - 益 + - 兼 + - 烤 + - 烘 + - 烦 + - 烧 + - 烛 + - 烟 + - 烙 + - 递 + - 涛 + - 浙 + - 涝 + - 浦 + - 酒 + - 涉 + - 消 + - 涡 + - 浩 + - 海 + - 涂 + - 浴 + - 浮 + - 涣 + - 涤 + - 流 + - 润 + - 涧 + - 涕 + - 浪 + - 浸 + - 涨 + - 烫 + - 涩 + - 涌 + - 悖 + - 悟 + - 悄 + - 悍 + - 悔 + - 悯 + - 悦 + - 害 + - 宽 + - 家 + - 宵 + - 宴 + - 宾 + - 窍 + - 窄 + - 容 + - 宰 + - 案 + - 请 + - 朗 + - 诸 + - 诺 + - 读 + - 扇 + - 诽 + - 袜 + - 袖 + - 袍 + - 被 + - 祥 + - 课 + - 冥 + - 谁 + - 调 + - 冤 + - 谅 + - 谆 + - 谈 + - 谊 + - 剥 + - 恳 + - 展 + - 剧 + - 屑 + - 弱 + - 陵 + - 祟 + - 陶 + - 陷 + - 陪 + - 娱 + - 娟 + - 恕 + - 娥 + - 娘 + - 通 + - 能 + - 难 + - 预 + - 桑 + - 绢 + - 绣 + - 验 + - 继 + - 骏 + - 球 + - 琐 + - 理 + - 琉 + - 琅 + - 捧 + - 堵 + - 措 + - 描 + - 域 + - 捺 + - 掩 + - 捷 + - 排 + - 焉 + - 掉 + - 捶 + - 赦 + - 堆 + - 推 + - 埠 + - 掀 + - 授 + - 捻 + - 教 + - 掏 + - 掐 + - 掠 + - 掂 + - 培 + - 接 + - 掷 + - 控 + - 探 + - 据 + - 掘 + - 掺 + - 职 + - 基 + - 聆 + - 勘 + - 聊 + - 娶 + - 著 + - 菱 + - 勒 + - 黄 + - 菲 + - 萌 + - 萝 + - 菌 + - 萎 + - 菜 + - 萄 + - 菊 + - 菩 + - 萍 + - 菠 + - 萤 + - 营 + - 乾 + - 萧 + - 萨 + - 菇 + - 械 + - 彬 + - 梦 + - 婪 + - 梗 + - 梧 + - 梢 + - 梅 + - 检 + - 梳 + - 梯 + - 桶 + - 梭 + - 救 + - 曹 + - 副 + - 票 + - 酝 + - 酗 + - 厢 + - 戚 + - 硅 + - 硕 + - 奢 + - 盔 + - 爽 + - 聋 + - 袭 + - 盛 + - 匾 + - 雪 + - 辅 + - 辆 + - 颅 + - 虚 + - 彪 + - 雀 + - 堂 + - 常 + - 眶 + - 匙 + - 晨 + - 睁 + - 眯 + - 眼 + - 悬 + - 野 + - 啪 + - 啦 + - 曼 + - 晦 + - 晚 + - 啄 + - 啡 + - 距 + - 趾 + - 啃 + - 跃 + - 略 + - 蚯 + - 蛀 + - 蛇 + - 唬 + - 累 + - 鄂 + - 唱 + - 患 + - 啰 + - 唾 + - 唯 + - 啤 + - 啥 + - 啸 + - 崖 + - 崎 + - 崭 + - 逻 + - 崔 + - 帷 + - 崩 + - 崇 + - 崛 + - 婴 + - 圈 + - 铐 + - 铛 + - 铝 + - 铜 + - 铭 + - 铲 + - 银 + - 矫 + - 甜 + - 秸 + - 梨 + - 犁 + - 秽 + - 移 + - 笨 + - 笼 + - 笛 + - 笙 + - 符 + - 第 + - 敏 + - 做 + - 袋 + - 悠 + - 偿 + - 偶 + - 偎 + - 偷 + - 您 + - 售 + - 停 + - 偏 + - 躯 + - 兜 + - 假 + - 衅 + - 徘 + - 徙 + - 得 + - 衔 + - 盘 + - 舶 + - 船 + - 舵 + - 斜 + - 盒 + - 鸽 + - 敛 + - 悉 + - 欲 + - 彩 + - 领 + - 脚 + - 脖 + - 脯 + - 豚 + - 脸 + - 脱 + - 象 + - 够 + - 逸 + - 猜 + - 猪 + - 猎 + - 猫 + - 凰 + - 猖 + - 猛 + - 祭 + - 馅 + - 馆 + - 凑 + - 减 + - 毫 + - 烹 + - 庶 + - 麻 + - 庵 + - 痊 + - 痒 + - 痕 + - 廊 + - 康 + - 庸 + - 鹿 + - 盗 + - 章 + - 竟 + - 商 + - 族 + - 旋 + - 望 + - 率 + - 阎 + - 阐 + - 着 + - 羚 + - 盖 + - 眷 + - 粘 + - 粗 + - 粒 + - 断 + - 剪 + - 兽 + - 焊 + - 焕 + - 清 + - 添 + - 鸿 + - 淋 + - 涯 + - 淹 + - 渠 + - 渐 + - 淑 + - 淌 + - 混 + - 淮 + - 淆 + - 渊 + - 淫 + - 渔 + - 淘 + - 淳 + - 液 + - 淤 + - 淡 + - 淀 + - 深 + - 涮 + - 涵 + - 婆 + - 梁 + - 渗 + - 情 + - 惜 + - 惭 + - 悼 + - 惧 + - 惕 + - 惟 + - 惊 + - 惦 + - 悴 + - 惋 + - 惨 + - 惯 + - 寇 + - 寅 + - 寄 + - 寂 + - 宿 + - 窒 + - 窑 + - 密 + - 谋 + - 谍 + - 谎 + - 谐 + - 袱 + - 祷 + - 祸 + - 谓 + - 谚 + - 谜 + - 逮 + - 敢 + - 尉 + - 屠 + - 弹 + - 隋 + - 堕 + - 随 + - 蛋 + - 隅 + - 隆 + - 隐 + - 婚 + - 婶 + - 婉 + - 颇 + - 颈 + - 绩 + - 绪 + - 续 + - 骑 + - 绰 + - 绳 + - 维 + - 绵 + - 绷 + - 绸 + - 综 + - 绽 + - 绿 + - 缀 + - 巢 + - 琴 + - 琳 + - 琢 + - 琼 + - 斑 + - 替 + - 揍 + - 款 + - 堪 + - 塔 + - 搭 + - 堰 + - 揩 + - 越 + - 趁 + - 趋 + - 超 + - 揽 + - 堤 + - 提 + - 博 + - 揭 + - 喜 + - 彭 + - 揣 + - 插 + - 揪 + - 搜 + - 煮 + - 援 + - 搀 + - 裁 + - 搁 + - 搓 + - 搂 + - 搅 + - 壹 + - 握 + - 搔 + - 揉 + - 斯 + - 期 + - 欺 + - 联 + - 葫 + - 散 + - 惹 + - 葬 + - 募 + - 葛 + - 董 + - 葡 + - 敬 + - 葱 + - 蒋 + - 蒂 + - 落 + - 韩 + - 朝 + - 辜 + - 葵 + - 棒 + - 棱 + - 棋 + - 椰 + - 植 + - 森 + - 焚 + - 椅 + - 椒 + - 棵 + - 棍 + - 椎 + - 棉 + - 棚 + - 棕 + - 棺 + - 榔 + - 椭 + - 惠 + - 惑 + - 逼 + - 粟 + - 棘 + - 酣 + - 酥 + - 厨 + - 厦 + - 硬 + - 硝 + - 确 + - 硫 + - 雁 + - 殖 + - 裂 + - 雄 + - 颊 + - 雳 + - 暂 + - 雅 + - 翘 + - 辈 + - 悲 + - 紫 + - 凿 + - 辉 + - 敞 + - 棠 + - 赏 + - 掌 + - 晴 + - 睐 + - 暑 + - 最 + - 晰 + - 量 + - 鼎 + - 喷 + - 喳 + - 晶 + - 喇 + - 遇 + - 喊 + - 遏 + - 晾 + - 景 + - 畴 + - 践 + - 跋 + - 跌 + - 跑 + - 跛 + - 遗 + - 蛙 + - 蛛 + - 蜓 + - 蜒 + - 蛤 + - 喝 + - 鹃 + - 喂 + - 喘 + - 喉 + - 喻 + - 啼 + - 喧 + - 嵌 + - 幅 + - 帽 + - 赋 + - 赌 + - 赎 + - 赐 + - 赔 + - 黑 + - 铸 + - 铺 + - 链 + - 销 + - 锁 + - 锄 + - 锅 + - 锈 + - 锋 + - 锌 + - 锐 + - 甥 + - 掰 + - 短 + - 智 + - 氮 + - 毯 + - 氯 + - 鹅 + - 剩 + - 稍 + - 程 + - 稀 + - 税 + - 筐 + - 等 + - 筑 + - 策 + - 筛 + - 筒 + - 筏 + - 答 + - 筋 + - 筝 + - 傲 + - 傅 + - 牌 + - 堡 + - 集 + - 焦 + - 傍 + - 储 + - 皓 + - 皖 + - 粤 + - 奥 + - 街 + - 惩 + - 御 + - 循 + - 艇 + - 舒 + - 逾 + - 番 + - 释 + - 禽 + - 腊 + - 脾 + - 腋 + - 腔 + - 腕 + - 鲁 + - 猩 + - 猬 + - 猾 + - 猴 + - 惫 + - 然 + - 馈 + - 馋 + - 装 + - 蛮 + - 就 + - 敦 + - 斌 + - 痘 + - 痢 + - 痪 + - 痛 + - 童 + - 竣 + - 阔 + - 善 + - 翔 + - 羡 + - 普 + - 粪 + - 尊 + - 奠 + - 道 + - 遂 + - 曾 + - 焰 + - 港 + - 滞 + - 湖 + - 湘 + - 渣 + - 渤 + - 渺 + - 湿 + - 温 + - 渴 + - 溃 + - 溅 + - 滑 + - 湃 + - 渝 + - 湾 + - 渡 + - 游 + - 滋 + - 渲 + - 溉 + - 愤 + - 慌 + - 惰 + - 愕 + - 愣 + - 惶 + - 愧 + - 愉 + - 慨 + - 割 + - 寒 + - 富 + - 寓 + - 窜 + - 窝 + - 窖 + - 窗 + - 窘 + - 遍 + - 雇 + - 裕 + - 裤 + - 裙 + - 禅 + - 禄 + - 谢 + - 谣 + - 谤 + - 谦 + - 犀 + - 属 + - 屡 + - 强 + - 粥 + - 疏 + - 隔 + - 隙 + - 隘 + - 媒 + - 絮 + - 嫂 + - 媚 + - 婿 + - 登 + - 缅 + - 缆 + - 缉 + - 缎 + - 缓 + - 缔 + - 缕 + - 骗 + - 编 + - 骚 + - 缘 + - 瑟 + - 鹉 + - 瑞 + - 瑰 + - 瑙 + - 魂 + - 肆 + - 摄 + - 摸 + - 填 + - 搏 + - 塌 + - 鼓 + - 摆 + - 携 + - 搬 + - 摇 + - 搞 + - 塘 + - 摊 + - 聘 + - 斟 + - 蒜 + - 勤 + - 靴 + - 靶 + - 鹊 + - 蓝 + - 墓 + - 幕 + - 蓬 + - 蓄 + - 蒲 + - 蓉 + - 蒙 + - 蒸 + - 献 + - 椿 + - 禁 + - 楚 + - 楷 + - 榄 + - 想 + - 槐 + - 榆 + - 楼 + - 概 + - 赖 + - 酪 + - 酬 + - 感 + - 碍 + - 碘 + - 碑 + - 碎 + - 碰 + - 碗 + - 碌 + - 尴 + - 雷 + - 零 + - 雾 + - 雹 + - 辐 + - 辑 + - 输 + - 督 + - 频 + - 龄 + - 鉴 + - 睛 + - 睹 + - 睦 + - 瞄 + - 睫 + - 睡 + - 睬 + - 嗜 + - 鄙 + - 嗦 + - 愚 + - 暖 + - 盟 + - 歇 + - 暗 + - 暇 + - 照 + - 畸 + - 跨 + - 跷 + - 跳 + - 跺 + - 跪 + - 路 + - 跤 + - 跟 + - 遣 + - 蜈 + - 蜗 + - 蛾 + - 蜂 + - 蜕 + - 嗅 + - 嗡 + - 嗓 + - 署 + - 置 + - 罪 + - 罩 + - 蜀 + - 幌 + - 错 + - 锚 + - 锡 + - 锣 + - 锤 + - 锥 + - 锦 + - 键 + - 锯 + - 锰 + - 矮 + - 辞 + - 稚 + - 稠 + - 颓 + - 愁 + - 筹 + - 签 + - 简 + - 筷 + - 毁 + - 舅 + - 鼠 + - 催 + - 傻 + - 像 + - 躲 + - 魁 + - 衙 + - 微 + - 愈 + - 遥 + - 腻 + - 腰 + - 腥 + - 腮 + - 腹 + - 腺 + - 鹏 + - 腾 + - 腿 + - 鲍 + - 猿 + - 颖 + - 触 + - 解 + - 煞 + - 雏 + - 馍 + - 馏 + - 酱 + - 禀 + - 痹 + - 廓 + - 痴 + - 痰 + - 廉 + - 靖 + - 新 + - 韵 + - 意 + - 誊 + - 粮 + - 数 + - 煎 + - 塑 + - 慈 + - 煤 + - 煌 + - 满 + - 漠 + - 滇 + - 源 + - 滤 + - 滥 + - 滔 + - 溪 + - 溜 + - 漓 + - 滚 + - 溢 + - 溯 + - 滨 + - 溶 + - 溺 + - 粱 + - 滩 + - 慎 + - 誉 + - 塞 + - 寞 + - 窥 + - 窟 + - 寝 + - 谨 + - 褂 + - 裸 + - 福 + - 谬 + - 群 + - 殿 + - 辟 + - 障 + - 媳 + - 嫉 + - 嫌 + - 嫁 + - 叠 + - 缚 + - 缝 + - 缠 + - 缤 + - 剿 + - 静 + - 碧 + - 璃 + - 赘 + - 熬 + - 墙 + - 墟 + - 嘉 + - 摧 + - 赫 + - 截 + - 誓 + - 境 + - 摘 + - 摔 + - 撇 + - 聚 + - 慕 + - 暮 + - 摹 + - 蔓 + - 蔑 + - 蔡 + - 蔗 + - 蔽 + - 蔼 + - 熙 + - 蔚 + - 兢 + - 模 + - 槛 + - 榴 + - 榜 + - 榨 + - 榕 + - 歌 + - 遭 + - 酵 + - 酷 + - 酿 + - 酸 + - 碟 + - 碱 + - 碳 + - 磁 + - 愿 + - 需 + - 辖 + - 辗 + - 雌 + - 裳 + - 颗 + - 瞅 + - 墅 + - 嗽 + - 踊 + - 蜻 + - 蜡 + - 蝇 + - 蜘 + - 蝉 + - 嘛 + - 嘀 + - 赚 + - 锹 + - 锻 + - 镀 + - 舞 + - 舔 + - 稳 + - 熏 + - 箕 + - 算 + - 箩 + - 管 + - 箫 + - 舆 + - 僚 + - 僧 + - 鼻 + - 魄 + - 魅 + - 貌 + - 膜 + - 膊 + - 膀 + - 鲜 + - 疑 + - 孵 + - 馒 + - 裹 + - 敲 + - 豪 + - 膏 + - 遮 + - 腐 + - 瘩 + - 瘟 + - 瘦 + - 辣 + - 彰 + - 竭 + - 端 + - 旗 + - 精 + - 粹 + - 歉 + - 弊 + - 熄 + - 熔 + - 煽 + - 潇 + - 漆 + - 漱 + - 漂 + - 漫 + - 滴 + - 漾 + - 演 + - 漏 + - 慢 + - 慷 + - 寨 + - 赛 + - 寡 + - 察 + - 蜜 + - 寥 + - 谭 + - 肇 + - 褐 + - 褪 + - 谱 + - 隧 + - 嫩 + - 翠 + - 熊 + - 凳 + - 骡 + - 缩 + - 慧 + - 撵 + - 撕 + - 撒 + - 撩 + - 趣 + - 趟 + - 撑 + - 撮 + - 撬 + - 播 + - 擒 + - 墩 + - 撞 + - 撤 + - 增 + - 撰 + - 聪 + - 鞋 + - 鞍 + - 蕉 + - 蕊 + - 蔬 + - 蕴 + - 横 + - 槽 + - 樱 + - 橡 + - 樟 + - 橄 + - 敷 + - 豌 + - 飘 + - 醋 + - 醇 + - 醉 + - 磕 + - 磊 + - 磅 + - 碾 + - 震 + - 霄 + - 霉 + - 瞒 + - 题 + - 暴 + - 瞎 + - 嘻 + - 嘶 + - 嘲 + - 嘹 + - 影 + - 踢 + - 踏 + - 踩 + - 踪 + - 蝶 + - 蝴 + - 蝠 + - 蝎 + - 蝌 + - 蝗 + - 蝙 + - 嘿 + - 嘱 + - 幢 + - 墨 + - 镇 + - 镐 + - 镑 + - 靠 + - 稽 + - 稻 + - 黎 + - 稿 + - 稼 + - 箱 + - 篓 + - 箭 + - 篇 + - 僵 + - 躺 + - 僻 + - 德 + - 艘 + - 膝 + - 膛 + - 鲤 + - 鲫 + - 熟 + - 摩 + - 褒 + - 瘪 + - 瘤 + - 瘫 + - 凛 + - 颜 + - 毅 + - 糊 + - 遵 + - 憋 + - 潜 + - 澎 + - 潮 + - 潭 + - 鲨 + - 澳 + - 潘 + - 澈 + - 澜 + - 澄 + - 懂 + - 憔 + - 懊 + - 憎 + - 额 + - 翩 + - 褥 + - 谴 + - 鹤 + - 憨 + - 慰 + - 劈 + - 履 + - 豫 + - 缭 + - 撼 + - 擂 + - 操 + - 擅 + - 燕 + - 蕾 + - 薯 + - 薛 + - 薇 + - 擎 + - 薪 + - 薄 + - 颠 + - 翰 + - 噩 + - 橱 + - 橙 + - 橘 + - 整 + - 融 + - 瓢 + - 醒 + - 霍 + - 霎 + - 辙 + - 冀 + - 餐 + - 嘴 + - 踱 + - 蹄 + - 蹂 + - 蟆 + - 螃 + - 器 + - 噪 + - 鹦 + - 赠 + - 默 + - 黔 + - 镜 + - 赞 + - 穆 + - 篮 + - 篡 + - 篷 + - 篱 + - 儒 + - 邀 + - 衡 + - 膨 + - 雕 + - 鲸 + - 磨 + - 瘾 + - 瘸 + - 凝 + - 辨 + - 辩 + - 糙 + - 糖 + - 糕 + - 燃 + - 濒 + - 澡 + - 激 + - 懒 + - 憾 + - 懈 + - 窿 + - 壁 + - 避 + - 缰 + - 缴 + - 戴 + - 擦 + - 藉 + - 鞠 + - 藏 + - 藐 + - 檬 + - 檐 + - 檀 + - 礁 + - 磷 + - 霜 + - 霞 + - 瞭 + - 瞧 + - 瞬 + - 瞳 + - 瞩 + - 瞪 + - 曙 + - 蹋 + - 蹈 + - 螺 + - 蟋 + - 蟀 + - 嚎 + - 赡 + - 穗 + - 魏 + - 簧 + - 簇 + - 繁 + - 徽 + - 爵 + - 朦 + - 臊 + - 鳄 + - 癌 + - 辫 + - 赢 + - 糟 + - 糠 + - 燥 + - 懦 + - 豁 + - 臀 + - 臂 + - 翼 + - 骤 + - 藕 + - 鞭 + - 藤 + - 覆 + - 瞻 + - 蹦 + - 嚣 + - 镰 + - 翻 + - 鳍 + - 鹰 + - 瀑 + - 襟 + - 璧 + - 戳 + - 孽 + - 警 + - 蘑 + - 藻 + - 攀 + - 曝 + - 蹲 + - 蹭 + - 蹬 + - 巅 + - 簸 + - 簿 + - 蟹 + - 颤 + - 靡 + - 癣 + - 瓣 + - 羹 + - 鳖 + - 爆 + - 疆 + - 鬓 + - 壤 + - 馨 + - 耀 + - 躁 + - 蠕 + - 嚼 + - 嚷 + - 巍 + - 籍 + - 鳞 + - 魔 + - 糯 + - 灌 + - 譬 + - 蠢 + - 霸 + - 露 + - 霹 + - 躏 + - 黯 + - 髓 + - 赣 + - 囊 + - 镶 + - 瓤 + - 罐 + - 矗 + - 乂 + - 乜 + - 兀 + - 弋 + - 孑 + - 孓 + - 幺 + - 亓 + - 韦 + - 廿 + - 丏 + - 卅 + - 仄 + - 厄 + - 仃 + - 仉 + - 仂 + - 兮 + - 刈 + - 爻 + - 卞 + - 闩 + - 讣 + - 尹 + - 夬 + - 爿 + - 毋 + - 邗 + - 邛 + - 艽 + - 艿 + - 札 + - 叵 + - 匝 + - 丕 + - 匜 + - 劢 + - 卟 + - 叱 + - 叻 + - 仨 + - 仕 + - 仟 + - 仡 + - 仫 + - 仞 + - 卮 + - 氐 + - 犰 + - 刍 + - 邝 + - 邙 + - 汀 + - 讦 + - 讧 + - 讪 + - 讫 + - 尻 + - 阡 + - 尕 + - 弁 + - 驭 + - 匡 + - 耒 + - 玎 + - 玑 + - 邢 + - 圩 + - 圬 + - 圭 + - 扦 + - 圪 + - 圳 + - 圹 + - 扪 + - 圮 + - 圯 + - 芊 + - 芍 + - 芄 + - 芨 + - 芑 + - 芎 + - 芗 + - 亘 + - 厍 + - 夼 + - 戍 + - 尥 + - 乩 + - 旯 + - 曳 + - 岌 + - 屺 + - 凼 + - 囡 + - 钇 + - 缶 + - 氘 + - 氖 + - 牝 + - 伎 + - 伛 + - 伢 + - 佤 + - 仵 + - 伥 + - 伧 + - 伉 + - 伫 + - 囟 + - 汆 + - 刖 + - 夙 + - 旮 + - 刎 + - 犷 + - 犸 + - 舛 + - 凫 + - 邬 + - 饧 + - 汕 + - 汔 + - 汐 + - 汲 + - 汜 + - 汊 + - 忖 + - 忏 + - 讴 + - 讵 + - 祁 + - 讷 + - 聿 + - 艮 + - 厾 + - 阱 + - 阮 + - 阪 + - 丞 + - 妁 + - 牟 + - 纡 + - 纣 + - 纥 + - 纨 + - 玕 + - 玙 + - 抟 + - 抔 + - 圻 + - 坂 + - 坍 + - 坞 + - 抃 + - 抉 + - 㧐 + - 芫 + - 邯 + - 芸 + - 芾 + - 苈 + - 苣 + - 芷 + - 芮 + - 苋 + - 芼 + - 苌 + - 苁 + - 芩 + - 芪 + - 芡 + - 芟 + - 苄 + - 苎 + - 苡 + - 杌 + - 杓 + - 杞 + - 杈 + - 忑 + - 孛 + - 邴 + - 邳 + - 矶 + - 奁 + - 豕 + - 忒 + - 欤 + - 轫 + - 迓 + - 邶 + - 忐 + - 卣 + - 邺 + - 旰 + - 呋 + - 呒 + - 呓 + - 呔 + - 呖 + - 呃 + - 旸 + - 吡 + - 町 + - 虬 + - 呗 + - 吽 + - 吣 + - 吲 + - 帏 + - 岐 + - 岈 + - 岘 + - 岑 + - 岚 + - 兕 + - 囵 + - 囫 + - 钊 + - 钋 + - 钌 + - 迕 + - 氙 + - 氚 + - 牤 + - 佞 + - 邱 + - 攸 + - 佚 + - 佝 + - 佟 + - 佗 + - 伽 + - 彷 + - 佘 + - 佥 + - 孚 + - 豸 + - 坌 + - 肟 + - 邸 + - 奂 + - 劬 + - 狄 + - 狁 + - 鸠 + - 邹 + - 饨 + - 饩 + - 饪 + - 饫 + - 饬 + - 亨 + - 庑 + - 庋 + - 疔 + - 疖 + - 肓 + - 闱 + - 闳 + - 闵 + - 羌 + - 炀 + - 沣 + - 沅 + - 沔 + - 沤 + - 沌 + - 沏 + - 沚 + - 汩 + - 汨 + - 沂 + - 汾 + - 沨 + - 汴 + - 汶 + - 沆 + - 沩 + - 泐 + - 怃 + - 怄 + - 忡 + - 忤 + - 忾 + - 怅 + - 忻 + - 忪 + - 怆 + - 忭 + - 忸 + - 诂 + - 诃 + - 诅 + - 诋 + - 诌 + - 诏 + - 诒 + - 孜 + - 陇 + - 陀 + - 陂 + - 陉 + - 妍 + - 妩 + - 妪 + - 妣 + - 妊 + - 妗 + - 妫 + - 妞 + - 姒 + - 妤 + - 邵 + - 劭 + - 刭 + - 甬 + - 邰 + - 纭 + - 纰 + - 纴 + - 纶 + - 纾 + - 玮 + - 玡 + - 玭 + - 玠 + - 玢 + - 玥 + - 玦 + - 盂 + - 忝 + - 匦 + - 坩 + - 抨 + - 拤 + - 坫 + - 拈 + - 垆 + - 抻 + - 劼 + - 拃 + - 拊 + - 坼 + - 坻 + - 㧟 + - 坨 + - 坭 + - 抿 + - 坳 + - 耶 + - 苷 + - 苯 + - 苤 + - 茏 + - 苫 + - 苜 + - 苴 + - 苒 + - 苘 + - 茌 + - 苻 + - 苓 + - 茚 + - 茆 + - 茑 + - 茓 + - 茔 + - 茕 + - 茀 + - 苕 + - 枥 + - 枇 + - 杪 + - 杳 + - 枧 + - 杵 + - 枨 + - 枞 + - 枋 + - 杻 + - 杷 + - 杼 + - 矸 + - 砀 + - 刳 + - 奄 + - 瓯 + - 殁 + - 郏 + - 轭 + - 郅 + - 鸢 + - 盱 + - 昊 + - 昙 + - 杲 + - 昃 + - 咂 + - 呸 + - 昕 + - 昀 + - 旻 + - 昉 + - 炅 + - 咔 + - 畀 + - 虮 + - 咀 + - 呷 + - 黾 + - 呱 + - 呤 + - 咚 + - 咆 + - 咛 + - 呶 + - 呣 + - 呦 + - 咝 + - 岢 + - 岿 + - 岬 + - 岫 + - 帙 + - 岣 + - 峁 + - 刿 + - 迥 + - 岷 + - 剀 + - 帔 + - 峄 + - 沓 + - 囹 + - 罔 + - 钍 + - 钎 + - 钏 + - 钒 + - 钕 + - 钗 + - 邾 + - 迮 + - 牦 + - 竺 + - 迤 + - 佶 + - 佬 + - 佰 + - 侑 + - 侉 + - 臾 + - 岱 + - 侗 + - 侃 + - 侏 + - 侩 + - 佻 + - 佾 + - 侪 + - 佼 + - 佯 + - 侬 + - 帛 + - 阜 + - 侔 + - 徂 + - 刽 + - 郄 + - 怂 + - 籴 + - 瓮 + - 戗 + - 肼 + - 䏝 + - 肽 + - 肱 + - 肫 + - 剁 + - 迩 + - 郇 + - 狙 + - 狎 + - 狍 + - 狒 + - 咎 + - 炙 + - 枭 + - 饯 + - 饴 + - 冽 + - 冼 + - 庖 + - 疠 + - 疝 + - 疡 + - 兖 + - 妾 + - 劾 + - 炜 + - 𬉼 + - 炖 + - 炘 + - 炝 + - 炔 + - 泔 + - 沭 + - 泷 + - 泸 + - 泱 + - 泅 + - 泗 + - 泠 + - 泺 + - 泖 + - 泫 + - 泮 + - 沱 + - 泯 + - 泓 + - 泾 + - 怙 + - 怵 + - 怦 + - 怛 + - 怏 + - 怍 + - 㤘 + - 怩 + - 怫 + - 怿 + - 宕 + - 穹 + - 宓 + - 诓 + - 诔 + - 诖 + - 诘 + - 戾 + - 诙 + - 戽 + - 郓 + - 衩 + - 祆 + - 祎 + - 祉 + - 祇 + - 诛 + - 诜 + - 诟 + - 诠 + - 诣 + - 诤 + - 诧 + - 诨 + - 诩 + - 戕 + - 孢 + - 亟 + - 陔 + - 妲 + - 妯 + - 姗 + - 帑 + - 弩 + - 孥 + - 驽 + - 虱 + - 迦 + - 迨 + - 绀 + - 绁 + - 绂 + - 驷 + - 驸 + - 绉 + - 绌 + - 驿 + - 骀 + - 甾 + - 珏 + - 珐 + - 珂 + - 珑 + - 玳 + - 珀 + - 顸 + - 珉 + - 珈 + - 拮 + - 垭 + - 挝 + - 垣 + - 挞 + - 垤 + - 赳 + - 贲 + - 垱 + - 垌 + - 郝 + - 垧 + - 垓 + - 挦 + - 垠 + - 茜 + - 荚 + - 荑 + - 贳 + - 荜 + - 莒 + - 茼 + - 茴 + - 茱 + - 莛 + - 荞 + - 茯 + - 荏 + - 荇 + - 荃 + - 荟 + - 荀 + - 茗 + - 荠 + - 茭 + - 茨 + - 垩 + - 荥 + - 荦 + - 荨 + - 荩 + - 剋 + - 荪 + - 茹 + - 荬 + - 荮 + - 柰 + - 栉 + - 柯 + - 柘 + - 栊 + - 柩 + - 枰 + - 栌 + - 柙 + - 枵 + - 柚 + - 枳 + - 柞 + - 柝 + - 栀 + - 柢 + - 栎 + - 枸 + - 柈 + - 柁 + - 枷 + - 柽 + - 剌 + - 酊 + - 郦 + - 甭 + - 砗 + - 砘 + - 砒 + - 斫 + - 砭 + - 砜 + - 奎 + - 耷 + - 虺 + - 殂 + - 殇 + - 殄 + - 殆 + - 轱 + - 轲 + - 轳 + - 轶 + - 轸 + - 虿 + - 毖 + - 觇 + - 尜 + - 哐 + - 眄 + - 眍 + - 𠳐 + - 郢 + - 眇 + - 眊 + - 眈 + - 禺 + - 哂 + - 咴 + - 曷 + - 昴 + - 昱 + - 昵 + - 咦 + - 哓 + - 哔 + - 畎 + - 毗 + - 呲 + - 胄 + - 畋 + - 畈 + - 虼 + - 虻 + - 盅 + - 咣 + - 哕 + - 剐 + - 郧 + - 咻 + - 囿 + - 咿 + - 哌 + - 哙 + - 哚 + - 咯 + - 咩 + - 咤 + - 哝 + - 哏 + - 哞 + - 峙 + - 峣 + - 罘 + - 帧 + - 峒 + - 峤 + - 峋 + - 峥 + - 贶 + - 钚 + - 钛 + - 钡 + - 钣 + - 钤 + - 钨 + - 钫 + - 钯 + - 氡 + - 氟 + - 牯 + - 郜 + - 秕 + - 秭 + - 竽 + - 笈 + - 笃 + - 俦 + - 俨 + - 俅 + - 俪 + - 叟 + - 垡 + - 牮 + - 俣 + - 俚 + - 皈 + - 俑 + - 俟 + - 逅 + - 徇 + - 徉 + - 舢 + - 俞 + - 郗 + - 俎 + - 郤 + - 爰 + - 郛 + - 瓴 + - 胨 + - 胪 + - 胛 + - 胂 + - 胙 + - 胍 + - 胗 + - 胝 + - 朐 + - 胫 + - 鸨 + - 匍 + - 狨 + - 狯 + - 飑 + - 狩 + - 狲 + - 訇 + - 逄 + - 昝 + - 饷 + - 饸 + - 饹 + - 胤 + - 孪 + - 娈 + - 弈 + - 奕 + - 庥 + - 疬 + - 疣 + - 疥 + - 疭 + - 庠 + - 竑 + - 彦 + - 飒 + - 闼 + - 闾 + - 闿 + - 阂 + - 羑 + - 迸 + - 籼 + - 酋 + - 炳 + - 炻 + - 炽 + - 炯 + - 烀 + - 炷 + - 烃 + - 洱 + - 洹 + - 洧 + - 洌 + - 浃 + - 洇 + - 洄 + - 洙 + - 涎 + - 洎 + - 洫 + - 浍 + - 洮 + - 洵 + - 浒 + - 浔 + - 浕 + - 洳 + - 恸 + - 恓 + - 恹 + - 恫 + - 恺 + - 恻 + - 恂 + - 恪 + - 恽 + - 宥 + - 扃 + - 衲 + - 衽 + - 衿 + - 袂 + - 祛 + - 祜 + - 祓 + - 祚 + - 诮 + - 祗 + - 祢 + - 诰 + - 诳 + - 鸩 + - 昶 + - 郡 + - 咫 + - 弭 + - 牁 + - 胥 + - 陛 + - 陟 + - 娅 + - 姮 + - 娆 + - 姝 + - 姣 + - 姘 + - 姹 + - 怼 + - 羿 + - 炱 + - 矜 + - 绔 + - 骁 + - 骅 + - 绗 + - 绛 + - 骈 + - 耖 + - 挈 + - 珥 + - 珙 + - 顼 + - 珰 + - 珩 + - 珧 + - 珣 + - 珞 + - 琤 + - 珲 + - 敖 + - 恚 + - 埔 + - 埕 + - 埘 + - 埙 + - 埚 + - 挹 + - 耆 + - 耄 + - 埒 + - 捋 + - 贽 + - 垸 + - 捃 + - 盍 + - 荸 + - 莆 + - 莳 + - 莴 + - 莪 + - 莠 + - 莓 + - 莜 + - 莅 + - 荼 + - 莩 + - 荽 + - 莸 + - 荻 + - 莘 + - 莎 + - 莞 + - 莨 + - 渇 + - 鸪 + - 莼 + - 栲 + - 栳 + - 郴 + - 桓 + - 桡 + - 桎 + - 桢 + - 桤 + - 梃 + - 栝 + - 桕 + - 桁 + - 桧 + - 桅 + - 栟 + - 桉 + - 栩 + - 逑 + - 逋 + - 彧 + - 鬲 + - 豇 + - 酐 + - 逦 + - 厝 + - 孬 + - 砝 + - 砹 + - 砺 + - 砧 + - 砷 + - 砟 + - 砼 + - 砥 + - 砣 + - 剞 + - 砻 + - 轼 + - 轾 + - 辂 + - 鸫 + - 趸 + - 龀 + - 鸬 + - 虔 + - 逍 + - 眬 + - 唛 + - 晟 + - 眩 + - 眙 + - 哧 + - 哽 + - 唔 + - 晁 + - 晏 + - 鸮 + - 趵 + - 趿 + - 畛 + - 蚨 + - 蚜 + - 蚍 + - 蚋 + - 蚬 + - 蚝 + - 蚧 + - 唢 + - 圄 + - 唣 + - 唏 + - 盎 + - 唑 + - 崂 + - 崃 + - 罡 + - 罟 + - 峪 + - 觊 + - 赅 + - 钰 + - 钲 + - 钴 + - 钵 + - 钹 + - 钺 + - 钽 + - 钼 + - 钿 + - 铀 + - 铂 + - 铄 + - 铆 + - 铈 + - 铉 + - 铊 + - 铋 + - 铌 + - 铍 + - 䥽 + - 铎 + - 氩 + - 氤 + - 氦 + - 毪 + - 舐 + - 秣 + - 秫 + - 盉 + - 笄 + - 笕 + - 笊 + - 笏 + - 笆 + - 俸 + - 倩 + - 俵 + - 偌 + - 俳 + - 俶 + - 倬 + - 倏 + - 恁 + - 倭 + - 倪 + - 俾 + - 倜 + - 隼 + - 隽 + - 倌 + - 倥 + - 臬 + - 皋 + - 郫 + - 倨 + - 衄 + - 颀 + - 徕 + - 舫 + - 釜 + - 奚 + - 衾 + - 胯 + - 胱 + - 胴 + - 胭 + - 脍 + - 胼 + - 朕 + - 脒 + - 胺 + - 鸱 + - 玺 + - 鸲 + - 狷 + - 猁 + - 狳 + - 猃 + - 狺 + - 逖 + - 桀 + - 袅 + - 饽 + - 凇 + - 栾 + - 挛 + - 亳 + - 疳 + - 疴 + - 疸 + - 疽 + - 痈 + - 疱 + - 痂 + - 痉 + - 衮 + - 凋 + - 颃 + - 恣 + - 旆 + - 旄 + - 旃 + - 阃 + - 阄 + - 訚 + - 阆 + - 恙 + - 粑 + - 朔 + - 郸 + - 烜 + - 烨 + - 烩 + - 烊 + - 剡 + - 郯 + - 烬 + - 涑 + - 浯 + - 涞 + - 涟 + - 娑 + - 涅 + - 涠 + - 浞 + - 涓 + - 浥 + - 涔 + - 浜 + - 浠 + - 浣 + - 浚 + - 悚 + - 悭 + - 悝 + - 悒 + - 悌 + - 悛 + - 宸 + - 窈 + - 剜 + - 诹 + - 冢 + - 诼 + - 袒 + - 袢 + - 祯 + - 诿 + - 谀 + - 谂 + - 谄 + - 谇 + - 屐 + - 屙 + - 陬 + - 勐 + - 奘 + - 牂 + - 蚩 + - 陲 + - 姬 + - 娠 + - 娌 + - 娉 + - 娲 + - 娩 + - 娴 + - 娣 + - 娓 + - 婀 + - 畚 + - 逡 + - 绠 + - 骊 + - 绡 + - 骋 + - 绥 + - 绦 + - 绨 + - 骎 + - 邕 + - 鸶 + - 彗 + - 耜 + - 焘 + - 舂 + - 琏 + - 琇 + - 麸 + - 揶 + - 埴 + - 埯 + - 捯 + - 掳 + - 掴 + - 埸 + - 埵 + - 赧 + - 埤 + - 捭 + - 逵 + - 埝 + - 堋 + - 堍 + - 掬 + - 鸷 + - 掖 + - 捽 + - 掊 + - 堉 + - 掸 + - 捩 + - 掮 + - 悫 + - 埭 + - 埽 + - 掇 + - 掼 + - 聃 + - 菁 + - 萁 + - 菘 + - 堇 + - 萘 + - 萋 + - 菽 + - 菖 + - 萜 + - 萸 + - 萑 + - 棻 + - 菔 + - 菟 + - 萏 + - 萃 + - 菏 + - 菹 + - 菪 + - 菅 + - 菀 + - 萦 + - 菰 + - 菡 + - 梵 + - 梿 + - 梏 + - 觋 + - 桴 + - 桷 + - 梓 + - 棁 + - 桫 + - 棂 + - 啬 + - 郾 + - 匮 + - 敕 + - 豉 + - 鄄 + - 酞 + - 酚 + - 戛 + - 硎 + - 硭 + - 硒 + - 硖 + - 硗 + - 硐 + - 硇 + - 硌 + - 鸸 + - 瓠 + - 匏 + - 厩 + - 龚 + - 殒 + - 殓 + - 殍 + - 赉 + - 雩 + - 辄 + - 堑 + - 眭 + - 眦 + - 啧 + - 晡 + - 晤 + - 眺 + - 眵 + - 眸 + - 圊 + - 喏 + - 喵 + - 啉 + - 勖 + - 晞 + - 唵 + - 晗 + - 冕 + - 啭 + - 畦 + - 趺 + - 啮 + - 跄 + - 蚶 + - 蛄 + - 蛎 + - 蛆 + - 蚰 + - 蛊 + - 圉 + - 蚱 + - 蛉 + - 蛏 + - 蚴 + - 啁 + - 啕 + - 唿 + - 啐 + - 唼 + - 唷 + - 啖 + - 啵 + - 啶 + - 啷 + - 唳 + - 唰 + - 啜 + - 帻 + - 崚 + - 崦 + - 帼 + - 崮 + - 崤 + - 崆 + - 赇 + - 赈 + - 赊 + - 铑 + - 铒 + - 铗 + - 铙 + - 铟 + - 铠 + - 铡 + - 铢 + - 铣 + - 铤 + - 铧 + - 铨 + - 铩 + - 铪 + - 铫 + - 铬 + - 铮 + - 铯 + - 铰 + - 铱 + - 铳 + - 铵 + - 铷 + - 氪 + - 牾 + - 鸹 + - 秾 + - 逶 + - 笺 + - 筇 + - 笸 + - 笪 + - 笮 + - 笠 + - 笥 + - 笤 + - 笳 + - 笾 + - 笞 + - 偾 + - 偃 + - 偕 + - 偈 + - 傀 + - 偬 + - 偻 + - 皑 + - 皎 + - 鸻 + - 徜 + - 舸 + - 舻 + - 舴 + - 舷 + - 龛 + - 翎 + - 脬 + - 脘 + - 脲 + - 匐 + - 猗 + - 猡 + - 猞 + - 猝 + - 斛 + - 猕 + - 馗 + - 馃 + - 馄 + - 鸾 + - 孰 + - 庹 + - 庾 + - 痔 + - 痍 + - 疵 + - 翊 + - 旌 + - 旎 + - 袤 + - 阇 + - 阈 + - 阉 + - 阊 + - 阋 + - 阍 + - 阏 + - 羟 + - 粝 + - 粕 + - 敝 + - 焐 + - 烯 + - 焓 + - 烽 + - 焖 + - 烷 + - 焗 + - 渍 + - 渚 + - 淇 + - 淅 + - 淞 + - 渎 + - 涿 + - 淖 + - 挲 + - 淠 + - 涸 + - 渑 + - 淦 + - 淝 + - 淬 + - 涪 + - 淙 + - 涫 + - 渌 + - 淄 + - 惬 + - 悻 + - 悱 + - 惝 + - 惘 + - 悸 + - 惆 + - 惚 + - 惇 + - 惮 + - 窕 + - 谌 + - 谏 + - 扈 + - 皲 + - 谑 + - 裆 + - 袷 + - 裉 + - 谒 + - 谔 + - 谕 + - 谖 + - 谗 + - 谙 + - 谛 + - 谝 + - 逯 + - 郿 + - 隈 + - 粜 + - 隍 + - 隗 + - 婧 + - 婊 + - 婕 + - 娼 + - 婢 + - 婵 + - 胬 + - 袈 + - 翌 + - 恿 + - 欸 + - 绫 + - 骐 + - 绮 + - 绯 + - 绱 + - 骒 + - 绲 + - 骓 + - 绶 + - 绺 + - 绻 + - 绾 + - 骖 + - 缁 + - 耠 + - 琫 + - 琵 + - 琶 + - 琪 + - 瑛 + - 琦 + - 琥 + - 琨 + - 靓 + - 琰 + - 琮 + - 琯 + - 琬 + - 琛 + - 琚 + - 辇 + - 鼋 + - 揳 + - 堞 + - 搽 + - 揸 + - 揠 + - 堙 + - 趄 + - 揖 + - 颉 + - 塄 + - 揿 + - 耋 + - 揄 + - 蛩 + - 蛰 + - 塆 + - 摒 + - 揆 + - 掾 + - 聒 + - 葑 + - 葚 + - 靰 + - 靸 + - 葳 + - 葺 + - 葸 + - 萼 + - 葆 + - 葩 + - 葶 + - 蒌 + - 萱 + - 戟 + - 葭 + - 楮 + - 棼 + - 椟 + - 棹 + - 椤 + - 棰 + - 赍 + - 椋 + - 椁 + - 椪 + - 棣 + - 椐 + - 鹁 + - 覃 + - 酤 + - 酢 + - 酡 + - 鹂 + - 厥 + - 殚 + - 殛 + - 雯 + - 雱 + - 辊 + - 辋 + - 椠 + - 辍 + - 辎 + - 斐 + - 睄 + - 睑 + - 睇 + - 睃 + - 戢 + - 喋 + - 嗒 + - 喃 + - 喱 + - 喹 + - 晷 + - 喈 + - 跖 + - 跗 + - 跞 + - 跚 + - 跎 + - 跏 + - 跆 + - 蛱 + - 蛲 + - 蛭 + - 蛳 + - 蛐 + - 蛔 + - 蛞 + - 蛴 + - 蛟 + - 蛘 + - 喁 + - 喟 + - 啾 + - 嗖 + - 喑 + - 嗟 + - 喽 + - 嗞 + - 喀 + - 喔 + - 喙 + - 嵘 + - 嵖 + - 崴 + - 遄 + - 詈 + - 嵎 + - 崽 + - 嵬 + - 嵛 + - 嵯 + - 嵝 + - 嵫 + - 幄 + - 嵋 + - 赕 + - 铻 + - 铼 + - 铿 + - 锃 + - 锂 + - 锆 + - 锇 + - 锉 + - 锏 + - 锑 + - 锒 + - 锔 + - 锕 + - 掣 + - 矬 + - 氰 + - 毳 + - 毽 + - 犊 + - 犄 + - 犋 + - 鹄 + - 犍 + - 嵇 + - 黍 + - 稃 + - 稂 + - 筚 + - 筵 + - 筌 + - 傣 + - 傈 + - 舄 + - 牍 + - 傥 + - 傧 + - 遑 + - 傩 + - 遁 + - 徨 + - 媭 + - 畲 + - 弑 + - 颌 + - 翕 + - 釉 + - 鹆 + - 舜 + - 貂 + - 腈 + - 腌 + - 腓 + - 腆 + - 腴 + - 腑 + - 腚 + - 腱 + - 鱿 + - 鲀 + - 鲂 + - 颍 + - 猢 + - 猹 + - 猥 + - 飓 + - 觞 + - 觚 + - 猱 + - 颎 + - 飧 + - 馇 + - 馊 + - 亵 + - 脔 + - 裒 + - 痣 + - 痨 + - 痦 + - 痞 + - 痤 + - 痫 + - 痧 + - 赓 + - 竦 + - 瓿 + - 啻 + - 颏 + - 鹇 + - 阑 + - 阒 + - 阕 + - 粞 + - 遒 + - 孳 + - 焯 + - 焜 + - 焙 + - 焱 + - 鹈 + - 湛 + - 渫 + - 湮 + - 湎 + - 湜 + - 渭 + - 湍 + - 湫 + - 溲 + - 湟 + - 溆 + - 湲 + - 湔 + - 湉 + - 渥 + - 湄 + - 滁 + - 愠 + - 惺 + - 愦 + - 惴 + - 愀 + - 愎 + - 愔 + - 喾 + - 寐 + - 谟 + - 扉 + - 裢 + - 裎 + - 裥 + - 祾 + - 祺 + - 谠 + - 幂 + - 谡 + - 谥 + - 谧 + - 遐 + - 孱 + - 弼 + - 巽 + - 骘 + - 媪 + - 媛 + - 婷 + - 巯 + - 翚 + - 皴 + - 婺 + - 骛 + - 缂 + - 缃 + - 缄 + - 彘 + - 缇 + - 缈 + - 缌 + - 缑 + - 缒 + - 缗 + - 飨 + - 耢 + - 瑚 + - 瑁 + - 瑜 + - 瑗 + - 瑄 + - 瑕 + - 遨 + - 骜 + - 韫 + - 髡 + - 塬 + - 鄢 + - 趔 + - 趑 + - 摅 + - 摁 + - 蜇 + - 搋 + - 搪 + - 搐 + - 搛 + - 搠 + - 摈 + - 彀 + - 毂 + - 搦 + - 搡 + - 蓁 + - 戡 + - 蓍 + - 鄞 + - 靳 + - 蓐 + - 蓦 + - 鹋 + - 蒽 + - 蓓 + - 蓖 + - 蓊 + - 蒯 + - 蓟 + - 蓑 + - 蒿 + - 蒺 + - 蓠 + - 蒟 + - 蒡 + - 蒹 + - 蒴 + - 蒗 + - 蓥 + - 颐 + - 楔 + - 楠 + - 楂 + - 楝 + - 楫 + - 楸 + - 椴 + - 槌 + - 楯 + - 皙 + - 榈 + - 槎 + - 榉 + - 楦 + - 楣 + - 楹 + - 椽 + - 裘 + - 剽 + - 甄 + - 酮 + - 酰 + - 酯 + - 酩 + - 蜃 + - 碛 + - 碓 + - 硼 + - 碉 + - 碚 + - 碇 + - 碜 + - 鹌 + - 辏 + - 龃 + - 龅 + - 訾 + - 粲 + - 虞 + - 睚 + - 嗪 + - 韪 + - 嗷 + - 嗉 + - 睨 + - 睢 + - 雎 + - 睥 + - 嘟 + - 嗑 + - 嗫 + - 嗬 + - 嗔 + - 嗝 + - 戥 + - 嗄 + - 煦 + - 暄 + - 遢 + - 暌 + - 跬 + - 跶 + - 跸 + - 跐 + - 跣 + - 跹 + - 跻 + - 蛸 + - 蜊 + - 蜍 + - 蜉 + - 蜣 + - 畹 + - 蛹 + - 嗣 + - 嗯 + - 嗥 + - 嗲 + - 嗳 + - 嗌 + - 嗍 + - 嗨 + - 嗐 + - 嗤 + - 嗵 + - 罨 + - 嵊 + - 嵩 + - 嵴 + - 骰 + - 锗 + - 锛 + - 锜 + - 锝 + - 锞 + - 锟 + - 锢 + - 锨 + - 锩 + - 锭 + - 锱 + - 雉 + - 氲 + - 犏 + - 歃 + - 稞 + - 稗 + - 稔 + - 筠 + - 筢 + - 筮 + - 筲 + - 筱 + - 牒 + - 煲 + - 敫 + - 徭 + - 愆 + - 艄 + - 觎 + - 毹 + - 貊 + - 貅 + - 貉 + - 颔 + - 腠 + - 腩 + - 腼 + - 腭 + - 腧 + - 塍 + - 媵 + - 詹 + - 鲅 + - 鲆 + - 鲇 + - 鲈 + - 稣 + - 鲋 + - 鲐 + - 肄 + - 鹐 + - 飕 + - 觥 + - 遛 + - 馐 + - 鹑 + - 亶 + - 瘃 + - 痱 + - 痼 + - 痿 + - 瘐 + - 瘁 + - 瘆 + - 麂 + - 裔 + - 歆 + - 旒 + - 雍 + - 阖 + - 阗 + - 阙 + - 羧 + - 豢 + - 粳 + - 猷 + - 煳 + - 煜 + - 煨 + - 煅 + - 煊 + - 煸 + - 煺 + - 滟 + - 溱 + - 溘 + - 漭 + - 滢 + - 溥 + - 溧 + - 溽 + - 裟 + - 溻 + - 溷 + - 滗 + - 滫 + - 溴 + - 滏 + - 滃 + - 滦 + - 溏 + - 滂 + - 滓 + - 溟 + - 滪 + - 愫 + - 慑 + - 慊 + - 鲎 + - 骞 + - 窦 + - 窠 + - 窣 + - 裱 + - 褚 + - 裨 + - 裾 + - 裰 + - 禊 + - 谩 + - 谪 + - 媾 + - 嫫 + - 媲 + - 嫒 + - 嫔 + - 媸 + - 缙 + - 缜 + - 缛 + - 辔 + - 骝 + - 缟 + - 缡 + - 缢 + - 缣 + - 骟 + - 耥 + - 璈 + - 瑶 + - 瑭 + - 獒 + - 觏 + - 慝 + - 嫠 + - 韬 + - 叆 + - 髦 + - 摽 + - 墁 + - 撂 + - 摞 + - 撄 + - 翥 + - 踅 + - 摭 + - 墉 + - 墒 + - 榖 + - 綦 + - 蔫 + - 蔷 + - 靺 + - 靼 + - 鞅 + - 靿 + - 甍 + - 蔸 + - 蔟 + - 蔺 + - 戬 + - 蕖 + - 蔻 + - 蓿 + - 斡 + - 鹕 + - 蓼 + - 榛 + - 榧 + - 榻 + - 榫 + - 榭 + - 槔 + - 榱 + - 槁 + - 槟 + - 槠 + - 榷 + - 僰 + - 酽 + - 酶 + - 酹 + - 厮 + - 碡 + - 碴 + - 碣 + - 碲 + - 磋 + - 臧 + - 豨 + - 殡 + - 霆 + - 霁 + - 辕 + - 蜚 + - 裴 + - 翡 + - 龇 + - 龈 + - 睿 + - 䁖 + - 睽 + - 嘞 + - 嘈 + - 嘌 + - 嘁 + - 嘎 + - 暧 + - 暝 + - 踌 + - 踉 + - 蜞 + - 蜥 + - 蜮 + - 蝈 + - 蜴 + - 蜱 + - 蜩 + - 蜷 + - 蜿 + - 螂 + - 蜢 + - 嘘 + - 嘡 + - 鹗 + - 嘣 + - 嘤 + - 嘚 + - 嗾 + - 嘧 + - 罴 + - 罱 + - 幔 + - 嶂 + - 幛 + - 赙 + - 罂 + - 骷 + - 骶 + - 鹘 + - 锲 + - 锴 + - 锶 + - 锷 + - 锸 + - 锵 + - 镁 + - 镂 + - 犒 + - 箐 + - 箦 + - 箧 + - 箍 + - 箸 + - 箬 + - 箅 + - 箪 + - 箔 + - 箜 + - 箢 + - 箓 + - 毓 + - 僖 + - 儆 + - 僳 + - 僭 + - 劁 + - 僮 + - 魃 + - 魆 + - 睾 + - 艋 + - 鄱 + - 膈 + - 膑 + - 鲑 + - 鲔 + - 鲚 + - 鲛 + - 鲟 + - 獐 + - 觫 + - 雒 + - 夤 + - 馑 + - 銮 + - 塾 + - 麽 + - 瘌 + - 瘊 + - 瘘 + - 瘙 + - 廖 + - 韶 + - 旖 + - 膂 + - 阚 + - 鄯 + - 鲞 + - 粿 + - 粼 + - 粽 + - 糁 + - 槊 + - 鹚 + - 熘 + - 熥 + - 潢 + - 漕 + - 滹 + - 漯 + - 漶 + - 潋 + - 潴 + - 漪 + - 漉 + - 漳 + - 漩 + - 澉 + - 潍 + - 慵 + - 搴 + - 窨 + - 寤 + - 綮 + - 谮 + - 褡 + - 褙 + - 褓 + - 褛 + - 褊 + - 谯 + - 谰 + - 谲 + - 暨 + - 屣 + - 鹛 + - 嫣 + - 嫱 + - 嫖 + - 嫦 + - 嫚 + - 嫘 + - 嫡 + - 鼐 + - 翟 + - 瞀 + - 鹜 + - 骠 + - 缥 + - 缦 + - 缧 + - 缨 + - 骢 + - 缪 + - 缫 + - 耦 + - 耧 + - 瑾 + - 璜 + - 璀 + - 璎 + - 璁 + - 璋 + - 璇 + - 奭 + - 髯 + - 髫 + - 撷 + - 撅 + - 赭 + - 撸 + - 鋆 + - 撙 + - 撺 + - 墀 + - 聩 + - 觐 + - 鞑 + - 蕙 + - 鞒 + - 蕈 + - 蕨 + - 蕤 + - 蕞 + - 蕺 + - 瞢 + - 蕃 + - 蕲 + - 赜 + - 槿 + - 樯 + - 槭 + - 樗 + - 樘 + - 樊 + - 槲 + - 醌 + - 醅 + - 靥 + - 魇 + - 餍 + - 磔 + - 磙 + - 霈 + - 辘 + - 龉 + - 龊 + - 觑 + - 瞌 + - 瞋 + - 瞑 + - 嘭 + - 噎 + - 噶 + - 颙 + - 暹 + - 噘 + - 踔 + - 踝 + - 踟 + - 踒 + - 踬 + - 踮 + - 踯 + - 踺 + - 踞 + - 蝽 + - 蝾 + - 蝻 + - 蝰 + - 蝮 + - 螋 + - 蝓 + - 蝣 + - 蝼 + - 噗 + - 嘬 + - 颚 + - 噍 + - 噢 + - 噙 + - 噜 + - 噌 + - 噔 + - 颛 + - 幞 + - 幡 + - 嶙 + - 嶝 + - 骺 + - 骼 + - 骸 + - 镊 + - 镉 + - 镌 + - 镍 + - 镏 + - 镒 + - 镓 + - 镔 + - 稷 + - 箴 + - 篑 + - 篁 + - 篌 + - 篆 + - 牖 + - 儋 + - 徵 + - 磐 + - 虢 + - 鹞 + - 膘 + - 滕 + - 鲠 + - 鲡 + - 鲢 + - 鲣 + - 鲥 + - 鲧 + - 鲩 + - 獗 + - 獠 + - 觯 + - 馓 + - 馔 + - 麾 + - 廛 + - 瘛 + - 瘼 + - 瘢 + - 瘠 + - 齑 + - 羯 + - 羰 + - 𥻗 + - 遴 + - 糌 + - 糍 + - 糅 + - 熜 + - 熵 + - 熠 + - 澍 + - 澌 + - 潸 + - 潦 + - 潲 + - 鋈 + - 潟 + - 潼 + - 潺 + - 憬 + - 憧 + - 寮 + - 窳 + - 谳 + - 褴 + - 褟 + - 褫 + - 谵 + - 熨 + - 屦 + - 嬉 + - 勰 + - 戮 + - 蝥 + - 缬 + - 缮 + - 缯 + - 骣 + - 畿 + - 耩 + - 耨 + - 耪 + - 璞 + - 璟 + - 靛 + - 璠 + - 璘 + - 聱 + - 螯 + - 髻 + - 髭 + - 髹 + - 擀 + - 熹 + - 甏 + - 擞 + - 縠 + - 磬 + - 颞 + - 蕻 + - 鞘 + - 颟 + - 薤 + - 薨 + - 檠 + - 薏 + - 薮 + - 薜 + - 薅 + - 樾 + - 橛 + - 橇 + - 樵 + - 檎 + - 橹 + - 樽 + - 樨 + - 橼 + - 墼 + - 橐 + - 翮 + - 醛 + - 醐 + - 醍 + - 醚 + - 磲 + - 赝 + - 飙 + - 殪 + - 霖 + - 霏 + - 霓 + - 錾 + - 辚 + - 臻 + - 遽 + - 氅 + - 瞟 + - 瞠 + - 瞰 + - 嚄 + - 嚆 + - 噤 + - 暾 + - 蹀 + - 踹 + - 踵 + - 踽 + - 蹉 + - 蹁 + - 螨 + - 蟒 + - 螈 + - 螅 + - 螭 + - 螠 + - 螟 + - 噱 + - 噬 + - 噫 + - 噻 + - 噼 + - 罹 + - 圜 + - 䦃 + - 镖 + - 镗 + - 镘 + - 镚 + - 镛 + - 镝 + - 镞 + - 镠 + - 氇 + - 氆 + - 憩 + - 穑 + - 篝 + - 篥 + - 篦 + - 篪 + - 篙 + - 盥 + - 劓 + - 翱 + - 魉 + - 魈 + - 徼 + - 歙 + - 膳 + - 膦 + - 膙 + - 鲮 + - 鲱 + - 鲲 + - 鲳 + - 鲴 + - 鲵 + - 鲷 + - 鲻 + - 獴 + - 獭 + - 獬 + - 邂 + - 鹧 + - 廨 + - 赟 + - 瘰 + - 廪 + - 瘿 + - 瘵 + - 瘴 + - 癃 + - 瘳 + - 斓 + - 麇 + - 麈 + - 嬴 + - 壅 + - 羲 + - 糗 + - 瞥 + - 甑 + - 燎 + - 燠 + - 燔 + - 燧 + - 濑 + - 濉 + - 潞 + - 澧 + - 澹 + - 澥 + - 澶 + - 濂 + - 褰 + - 寰 + - 窸 + - 褶 + - 禧 + - 嬖 + - 犟 + - 隰 + - 嬗 + - 颡 + - 缱 + - 缲 + - 缳 + - 璨 + - 璩 + - 璐 + - 璪 + - 螫 + - 擤 + - 壕 + - 觳 + - 罄 + - 擢 + - 薹 + - 鞡 + - 鞬 + - 薷 + - 薰 + - 藓 + - 藁 + - 檄 + - 檩 + - 懋 + - 醢 + - 翳 + - 礅 + - 磴 + - 鹩 + - 龋 + - 龌 + - 豳 + - 壑 + - 黻 + - 嚏 + - 嚅 + - 蹑 + - 蹒 + - 蹊 + - 蟥 + - 螬 + - 螵 + - 疃 + - 螳 + - 蟑 + - 嚓 + - 羁 + - 罽 + - 罾 + - 嶷 + - 黜 + - 黝 + - 髁 + - 髀 + - 镡 + - 镢 + - 镣 + - 镦 + - 镧 + - 镩 + - 镪 + - 镫 + - 罅 + - 黏 + - 簌 + - 篾 + - 篼 + - 簖 + - 簋 + - 鼢 + - 黛 + - 儡 + - 鹪 + - 鼾 + - 皤 + - 魍 + - 龠 + - 繇 + - 貘 + - 邈 + - 貔 + - 臌 + - 膻 + - 臆 + - 臃 + - 鲼 + - 鲽 + - 鳀 + - 鳃 + - 鳅 + - 鳇 + - 鳊 + - 螽 + - 燮 + - 鹫 + - 襄 + - 糜 + - 縻 + - 膺 + - 癍 + - 麋 + - 懑 + - 濡 + - 濮 + - 濞 + - 濠 + - 濯 + - 蹇 + - 謇 + - 邃 + - 襁 + - 檗 + - 擘 + - 孺 + - 隳 + - 嬷 + - 蟊 + - 鹬 + - 鍪 + - 鏊 + - 鳌 + - 鬈 + - 鬃 + - 瞽 + - 鞯 + - 鞨 + - 鞫 + - 鞧 + - 鞣 + - 藜 + - 藠 + - 藩 + - 醪 + - 蹙 + - 礓 + - 燹 + - 餮 + - 瞿 + - 曛 + - 颢 + - 曜 + - 躇 + - 蹚 + - 鹭 + - 蟛 + - 蟪 + - 蟠 + - 蟮 + - 鹮 + - 黠 + - 黟 + - 髅 + - 髂 + - 镬 + - 镭 + - 镯 + - 馥 + - 簟 + - 簪 + - 鼬 + - 雠 + - 艟 + - 鳎 + - 鳏 + - 鳐 + - 癞 + - 癔 + - 癜 + - 癖 + - 糨 + - 蹩 + - 鎏 + - 懵 + - 彝 + - 邋 + - 鬏 + - 攉 + - 攒 + - 鞲 + - 鞴 + - 藿 + - 蘧 + - 蘅 + - 麓 + - 醮 + - 醯 + - 酃 + - 霪 + - 霭 + - 霨 + - 黼 + - 嚯 + - 蹰 + - 蹶 + - 蹽 + - 蹼 + - 蹴 + - 蹾 + - 蹿 + - 蠖 + - 蠓 + - 蟾 + - 蠊 + - 黢 + - 髋 + - 髌 + - 镲 + - 籀 + - 籁 + - 齁 + - 魑 + - 艨 + - 鳓 + - 鳔 + - 鳕 + - 鳗 + - 鳙 + - 麒 + - 鏖 + - 羸 + - 㸆 + - 瀚 + - 瀣 + - 瀛 + - 襦 + - 谶 + - 襞 + - 骥 + - 缵 + - 瓒 + - 攘 + - 蘩 + - 蘖 + - 醴 + - 霰 + - 酆 + - 矍 + - 曦 + - 躅 + - 鼍 + - 巉 + - 黩 + - 黥 + - 黪 + - 镳 + - 镴 + - 黧 + - 纂 + - 璺 + - 鼯 + - 臜 + - 鳜 + - 鳝 + - 鳟 + - 獾 + - 孀 + - 骧 + - 瓘 + - 鼙 + - 醺 + - 礴 + - 颦 + - 曩 + - 鳢 + - 癫 + - 麝 + - 夔 + - 爝 + - 灏 + - 禳 + - 鐾 + - 羼 + - 蠡 + - 耱 + - 懿 + - 蘸 + - 鹳 + - 霾 + - 氍 + - 饕 + - 躐 + - 髑 + - 镵 + - 穰 + - 饔 + - 鬻 + - 鬟 + - 趱 + - 攫 + - 攥 + - 颧 + - 躜 + - 鼹 + - 癯 + - 麟 + - 蠲 + - 蠹 + - 躞 + - 衢 + - 鑫 + - 灞 + - 襻 + - 纛 + - 鬣 + - 攮 + - 囔 + - 馕 + - 戆 + - 爨 + - 齉 + - 亍 + - 尢 + - 彳 + - 卬 + - 殳 + - 𠙶 + - 毌 + - 邘 + - 戋 + - 圢 + - 氕 + - 伋 + - 仝 + - 冮 + - 氿 + - 汈 + - 氾 + - 忉 + - 宄 + - 讱 + - 扞 + - 圲 + - 圫 + - 芏 + - 芃 + - 朳 + - 朸 + - 𨙸 + - 邨 + - 吒 + - 吖 + - 屼 + - 屾 + - 辿 + - 钆 + - 仳 + - 伣 + - 伈 + - 癿 + - 甪 + - 邠 + - 犴 + - 冱 + - 邡 + - 闫 + - 汋 + - 䜣 + - 讻 + - 孖 + - 纩 + - 玒 + - 玓 + - 玘 + - 玚 + - 刬 + - 坜 + - 坉 + - 扽 + - 坋 + - 扺 + - 㧑 + - 毐 + - 芰 + - 芣 + - 苊 + - 苉 + - 芘 + - 芴 + - 芠 + - 芤 + - 杕 + - 杙 + - 杄 + - 杧 + - 杩 + - 尪 + - 尨 + - 轪 + - 坒 + - 芈 + - 旴 + - 旵 + - 呙 + - 㕮 + - 岍 + - 岠 + - 岜 + - 呇 + - 冏 + - 觃 + - 岙 + - 伾 + - 㑇 + - 伭 + - 佖 + - 伲 + - 佁 + - 飏 + - 狃 + - 闶 + - 汧 + - 汫 + - 𣲘 + - 𣲗 + - 沄 + - 沘 + - 汭 + - 㳇 + - 沇 + - 忮 + - 忳 + - 忺 + - 祃 + - 诇 + - 邲 + - 诎 + - 诐 + - 屃 + - 岊 + - 阽 + - 䢺 + - 阼 + - 妧 + - 妘 + - 𨚕 + - 纮 + - 驲 + - 纻 + - 纼 + - 玤 + - 玞 + - 玱 + - 玟 + - 邽 + - 邿 + - 坥 + - 坰 + - 坬 + - 坽 + - 弆 + - 耵 + - 䢼 + - 𦭜 + - 茋 + - 苧 + - 苾 + - 苠 + - 枅 + - 㭎 + - 枘 + - 枍 + - 矼 + - 矻 + - 匼 + - 旿 + - 昇 + - 昄 + - 昒 + - 昈 + - 咉 + - 咇 + - 咍 + - 岵 + - 岽 + - 岨 + - 岞 + - 峂 + - 㟃 + - 囷 + - 钐 + - 钔 + - 钖 + - 牥 + - 佴 + - 垈 + - 侁 + - 侹 + - 佸 + - 佺 + - 隹 + - 㑊 + - 侂 + - 佽 + - 侘 + - 郈 + - 舠 + - 郐 + - 郃 + - 攽 + - 肭 + - 肸 + - 肷 + - 狉 + - 狝 + - 饳 + - 忞 + - 於 + - 炌 + - 炆 + - 泙 + - 沺 + - 泂 + - 泜 + - 泃 + - 泇 + - 怊 + - 峃 + - 穸 + - 祋 + - 祊 + - 鸤 + - 弢 + - 弨 + - 陑 + - 陎 + - 卺 + - 乸 + - 妭 + - 姈 + - 迳 + - 叕 + - 驵 + - 䌹 + - 驺 + - 绋 + - 绐 + - 砉 + - 耔 + - 㛃 + - 玶 + - 珇 + - 珅 + - 珋 + - 玹 + - 珌 + - 玿 + - 韨 + - 垚 + - 垯 + - 垙 + - 垲 + - 埏 + - 垍 + - 耇 + - 垎 + - 垴 + - 垟 + - 垞 + - 挓 + - 垵 + - 垏 + - 拶 + - 荖 + - 荁 + - 荙 + - 荛 + - 茈 + - 茽 + - 荄 + - 茺 + - 荓 + - 茳 + - 𦰡 + - 茛 + - 荭 + - 㭕 + - 柷 + - 柃 + - 柊 + - 枹 + - 栐 + - 柖 + - 郚 + - 剅 + - 䴓 + - 迺 + - 厖 + - 砆 + - 砑 + - 砄 + - 耏 + - 奓 + - 䶮 + - 轵 + - 轷 + - 轹 + - 轺 + - 昺 + - 昽 + - 盷 + - 咡 + - 咺 + - 昳 + - 昣 + - 哒 + - 昤 + - 昫 + - 昡 + - 咥 + - 昪 + - 虷 + - 虸 + - 哃 + - 峘 + - 耑 + - 峛 + - 峗 + - 峧 + - 帡 + - 钘 + - 钜 + - 钪 + - 钬 + - 钭 + - 矧 + - 秬 + - 俫 + - 舁 + - 俜 + - 俙 + - 俍 + - 垕 + - 衎 + - 舣 + - 弇 + - 侴 + - 鸧 + - 䏡 + - 胠 + - 𦙶 + - 胈 + - 胩 + - 胣 + - 朏 + - 飐 + - 訄 + - 饻 + - 庤 + - 疢 + - 炣 + - 炟 + - 㶲 + - 洭 + - 洘 + - 洓 + - 洿 + - 㳚 + - 泚 + - 浈 + - 浉 + - 洸 + - 洑 + - 洢 + - 洈 + - 洚 + - 洺 + - 洨 + - 浐 + - 㳘 + - 洴 + - 洣 + - 恔 + - 宬 + - 窀 + - 扂 + - 袆 + - 祏 + - 祐 + - 祕 + - 叚 + - 陧 + - 陞 + - 娀 + - 姞 + - 姱 + - 姤 + - 姶 + - 姽 + - 枲 + - 绖 + - 骃 + - 彖 + - 骉 + - 恝 + - 珪 + - 珛 + - 珹 + - 琊 + - 玼 + - 珖 + - 珽 + - 珦 + - 珫 + - 珒 + - 珢 + - 珕 + - 珝 + - 埗 + - 垾 + - 垺 + - 埆 + - 垿 + - 埌 + - 埇 + - 莰 + - 茝 + - 鄀 + - 莶 + - 莝 + - 䓖 + - 莙 + - 栻 + - 桠 + - 桄 + - 梠 + - 栴 + - 梴 + - 栒 + - 酎 + - 酏 + - 砵 + - 砠 + - 砫 + - 砬 + - 硁 + - 恧 + - 翃 + - 郪 + - 𨐈 + - 辀 + - 辁 + - 剕 + - 赀 + - 哢 + - 晅 + - 晊 + - 唝 + - 哳 + - 哱 + - 冔 + - 晔 + - 晐 + - 晖 + - 畖 + - 蚄 + - 蚆 + - 帱 + - 崁 + - 峿 + - 崄 + - 帨 + - 崀 + - 赆 + - 钷 + - 眚 + - 甡 + - 笫 + - 倻 + - 倴 + - 脩 + - 倮 + - 倕 + - 倞 + - 倓 + - 倧 + - 衃 + - 虒 + - 舭 + - 舯 + - 舥 + - 瓞 + - 鬯 + - 鸰 + - 脎 + - 朓 + - 胲 + - 虓 + - 鱽 + - 狴 + - 峱 + - 狻 + - 眢 + - 勍 + - 痄 + - 疰 + - 痃 + - 竘 + - 羖 + - 羓 + - 桊 + - 敉 + - 烠 + - 烔 + - 烶 + - 烻 + - 涍 + - 浡 + - 浭 + - 浬 + - 涄 + - 涢 + - 涐 + - 浰 + - 浟 + - 浛 + - 浼 + - 浲 + - 涘 + - 悈 + - 悃 + - 悢 + - 宧 + - 窅 + - 窊 + - 窎 + - 扅 + - 扆 + - 袪 + - 袗 + - 袯 + - 祧 + - 隺 + - 堲 + - 疍 + - 𨺙 + - 陴 + - 烝 + - 砮 + - 㛚 + - 哿 + - 翀 + - 翂 + - 剟 + - 绤 + - 骍 + - 䂮 + - 琎 + - 珸 + - 珵 + - 琄 + - 琈 + - 琀 + - 珺 + - 掭 + - 堎 + - 堐 + - 埼 + - 掎 + - 埫 + - 堌 + - 晢 + - 掞 + - 埪 + - 壸 + - 㙍 + - 聍 + - 菝 + - 萚 + - 菥 + - 莿 + - 䓫 + - 勚 + - 䓬 + - 萆 + - 菂 + - 菍 + - 菼 + - 萣 + - 䓨 + - 菉 + - 䓛 + - 梼 + - 梽 + - 桲 + - 梾 + - 桯 + - 梣 + - 梌 + - 桹 + - 敔 + - 厣 + - 硔 + - 硙 + - 硚 + - 硊 + - 硍 + - 勔 + - 䴕 + - 龁 + - 逴 + - 唪 + - 啫 + - 翈 + - 㫰 + - 晙 + - 畤 + - 趼 + - 跂 + - 蛃 + - 蚲 + - 蚺 + - 啴 + - 䎃 + - 崧 + - 崟 + - 崞 + - 崒 + - 崌 + - 崡 + - 铏 + - 铕 + - 铖 + - 铘 + - 铚 + - 铞 + - 铥 + - 铴 + - 牻 + - 牿 + - 稆 + - 笱 + - 笯 + - 偰 + - 偡 + - 鸺 + - 偭 + - 偲 + - 偁 + - 㿠 + - 鄅 + - 偓 + - 徛 + - 衒 + - 舳 + - 舲 + - 鸼 + - 悆 + - 鄃 + - 瓻 + - 䝙 + - 脶 + - 脞 + - 脟 + - 䏲 + - 鱾 + - 猇 + - 猊 + - 猄 + - 觖 + - 𠅤 + - 庱 + - 庼 + - 庳 + - 痓 + - 䴔 + - 竫 + - 堃 + - 阌 + - 羝 + - 羕 + - 焆 + - 烺 + - 焌 + - 淏 + - 淟 + - 淜 + - 淴 + - 淯 + - 湴 + - 涴 + - 㥄 + - 惛 + - 惔 + - 悰 + - 惙 + - 寁 + - 逭 + - 袼 + - 裈 + - 祲 + - 谞 + - 艴 + - 弸 + - 弶 + - 隃 + - 婞 + - 娵 + - 婼 + - 媖 + - 婳 + - 婍 + - 婌 + - 婫 + - 婤 + - 婘 + - 婠 + - 绹 + - 骕 + - 絜 + - 珷 + - 琲 + - 琡 + - 琟 + - 琔 + - 琭 + - 堾 + - 堼 + - 揕 + - 㙘 + - 堧 + - 喆 + - 堨 + - 塅 + - 堠 + - 絷 + - 𡎚 + - 葜 + - 惎 + - 萳 + - 葙 + - 靬 + - 葴 + - 蒇 + - 蒈 + - 鄚 + - 蒉 + - 蓇 + - 萩 + - 蒐 + - 葰 + - 葎 + - 鄑 + - 蒎 + - 葖 + - 蒄 + - 萹 + - 棤 + - 棽 + - 棫 + - 椓 + - 椑 + - 鹀 + - 椆 + - 棓 + - 棬 + - 棪 + - 椀 + - 楗 + - 甦 + - 酦 + - 觌 + - 奡 + - 皕 + - 硪 + - 欹 + - 詟 + - 辌 + - 棐 + - 龂 + - 黹 + - 牚 + - 睎 + - 晫 + - 晪 + - 晱 + - 𧿹 + - 蛑 + - 畯 + - 斝 + - 喤 + - 崶 + - 嵁 + - 崾 + - 嵅 + - 崿 + - 嵚 + - 翙 + - 圌 + - 圐 + - 赑 + - 淼 + - 赒 + - 铹 + - 铽 + - 𨱇 + - 锊 + - 锍 + - 锎 + - 锓 + - 犇 + - 颋 + - 稌 + - 筀 + - 筘 + - 筜 + - 筥 + - 筅 + - 傃 + - 傉 + - 翛 + - 傒 + - 傕 + - 舾 + - 畬 + - 脿 + - 腘 + - 䐃 + - 腙 + - 腒 + - 鲃 + - 猰 + - 猯 + - 㺄 + - 馉 + - 鄗 + - 廋 + - 廆 + - 鄌 + - 粢 + - 遆 + - 旐 + - 焞 + - 欻 + - 𣸣 + - 溚 + - 溁 + - 湝 + - 渰 + - 湓 + - 㴔 + - 渟 + - 溠 + - 渼 + - 溇 + - 湣 + - 湑 + - 溞 + - 愐 + - 愃 + - 敩 + - 甯 + - 棨 + - 扊 + - 裣 + - 祼 + - 婻 + - 媆 + - 媞 + - 㛹 + - 媓 + - 媂 + - 媄 + - 毵 + - 矞 + - 缊 + - 缐 + - 骙 + - 瑃 + - 瑓 + - 瑅 + - 瑆 + - 䴖 + - 瑖 + - 瑝 + - 瑔 + - 瑀 + - 𤧛 + - 瑳 + - 瑂 + - 嶅 + - 瑑 + - 遘 + - 髢 + - 塥 + - 堽 + - 赪 + - 摛 + - 塝 + - 搒 + - 搌 + - 蒱 + - 蒨 + - 蓏 + - 蔀 + - 蓢 + - 蓂 + - 蒻 + - 蓣 + - 椹 + - 楪 + - 榃 + - 榅 + - 楒 + - 楞 + - 楩 + - 榇 + - 椸 + - 楙 + - 歅 + - 碃 + - 碏 + - 碈 + - 䃅 + - 硿 + - 鄠 + - 辒 + - 龆 + - 觜 + - 䣘 + - 暕 + - 鹍 + - 㬊 + - 暅 + - 跱 + - 蜐 + - 蜎 + - 嵲 + - 赗 + - 骱 + - 锖 + - 锘 + - 锳 + - 锧 + - 锪 + - 锫 + - 锬 + - 稑 + - 稙 + - 䅟 + - 筻 + - 筼 + - 筶 + - 筦 + - 筤 + - 傺 + - 鹎 + - 僇 + - 艅 + - 艉 + - 谼 + - 貆 + - 腽 + - 腨 + - 腯 + - 鲉 + - 鲊 + - 鲌 + - 䲟 + - 鲏 + - 雊 + - 猺 + - 飔 + - 觟 + - 𦝼 + - 馌 + - 裛 + - 廒 + - 瘀 + - 瘅 + - 鄘 + - 鹒 + - 鄜 + - 麀 + - 鄣 + - 阘 + - 煁 + - 煃 + - 煴 + - 煋 + - 煟 + - 煓 + - 滠 + - 溍 + - 溹 + - 滆 + - 滉 + - 溦 + - 溵 + - 漷 + - 滧 + - 滘 + - 滍 + - 愭 + - 慥 + - 慆 + - 塱 + - 裼 + - 禋 + - 禔 + - 禘 + - 禒 + - 谫 + - 鹔 + - 愍 + - 嫄 + - 媱 + - 戤 + - 戣 + - 缞 + - 耤 + - 瑧 + - 瑨 + - 瑱 + - 瑷 + - 瑢 + - 斠 + - 摏 + - 墕 + - 墈 + - 墐 + - 墘 + - 摴 + - 銎 + - 𡐓 + - 墚 + - 撖 + - 靽 + - 鞁 + - 蔌 + - 蔈 + - 蓰 + - 蔹 + - 蔊 + - 嘏 + - 榰 + - 榑 + - 槚 + - 𣗋 + - 槜 + - 榍 + - 疐 + - 酺 + - 酾 + - 酲 + - 酴 + - 碶 + - 䃎 + - 碨 + - 𥔲 + - 碹 + - 碥 + - 劂 + - 䴗 + - 夥 + - 瞍 + - 鹖 + - 㬎 + - 跽 + - 蜾 + - 幖 + - 嶍 + - 圙 + - 𨱏 + - 锺 + - 锼 + - 锽 + - 锾 + - 锿 + - 镃 + - 镄 + - 镅 + - 馝 + - 鹙 + - 箨 + - 箖 + - 劄 + - 僬 + - 僦 + - 僔 + - 僎 + - 槃 + - 㙦 + - 鲒 + - 鲕 + - 鲖 + - 鲗 + - 鲘 + - 鲙 + - 𩽾 + - 夐 + - 獍 + - 飗 + - 凘 + - 廑 + - 廙 + - 瘗 + - 瘥 + - 瘕 + - 鲝 + - 鄫 + - 熇 + - 漹 + - 漖 + - 潆 + - 漤 + - 潩 + - 漼 + - 漴 + - 㽏 + - 漈 + - 漋 + - 漻 + - 慬 + - 窬 + - 窭 + - 㮾 + - 褕 + - 禛 + - 禚 + - 隩 + - 嫕 + - 嫭 + - 嫜 + - 嫪 + - 㻬 + - 麹 + - 璆 + - 漦 + - 叇 + - 墣 + - 墦 + - 墡 + - 劐 + - 薁 + - 蕰 + - 蔃 + - 鼒 + - 槱 + - 鹝 + - 磏 + - 磉 + - 殣 + - 慭 + - 霅 + - 暵 + - 暲 + - 暶 + - 踦 + - 踣 + - 䗖 + - 蝘 + - 蝲 + - 蝤 + - 噇 + - 噂 + - 噀 + - 罶 + - 嶲 + - 嶓 + - 㠇 + - 嶟 + - 嶒 + - 镆 + - 镈 + - 镋 + - 镎 + - 镕 + - 稹 + - 儇 + - 皞 + - 皛 + - 䴘 + - 艎 + - 艏 + - 鹟 + - 𩾃 + - 鲦 + - 鲪 + - 鲬 + - 橥 + - 觭 + - 鹠 + - 鹡 + - 糇 + - 糈 + - 翦 + - 鹢 + - 鹣 + - 熛 + - 潖 + - 潵 + - 㵐 + - 澂 + - 澛 + - 瑬 + - 潽 + - 潾 + - 潏 + - 憭 + - 憕 + - 戭 + - 褯 + - 禤 + - 嫽 + - 遹 + - 璥 + - 璲 + - 璒 + - 憙 + - 擐 + - 鄹 + - 薳 + - 鞔 + - 黇 + - 蕗 + - 薢 + - 蕹 + - 橞 + - 橑 + - 橦 + - 醑 + - 觱 + - 磡 + - 𥕢 + - 磜 + - 豮 + - 鹾 + - 虤 + - 暿 + - 曌 + - 曈 + - 㬚 + - 蹅 + - 踶 + - 䗛 + - 螗 + - 疁 + - 㠓 + - 幪 + - 嶦 + - 𨱑 + - 馞 + - 穄 + - 篚 + - 篯 + - 簉 + - 鼽 + - 衠 + - 盦 + - 螣 + - 縢 + - 鲭 + - 鲯 + - 鲰 + - 鲺 + - 鲹 + - 亸 + - 癀 + - 瘭 + - 羱 + - 糒 + - 燋 + - 熻 + - 燊 + - 燚 + - 燏 + - 濩 + - 濋 + - 澪 + - 澽 + - 澴 + - 澭 + - 澼 + - 憷 + - 憺 + - 懔 + - 黉 + - 嬛 + - 鹨 + - 翯 + - 璱 + - 𤩽 + - 璬 + - 璮 + - 髽 + - 擿 + - 薿 + - 薸 + - 檑 + - 櫆 + - 檞 + - 醨 + - 繄 + - 磹 + - 磻 + - 瞫 + - 瞵 + - 蹐 + - 蟏 + - 㘎 + - 镤 + - 镥 + - 镨 + - 𨱔 + - 矰 + - 穙 + - 穜 + - 穟 + - 簕 + - 簃 + - 簏 + - 儦 + - 魋 + - 斶 + - 艚 + - 谿 + - 䲠 + - 鲾 + - 鲿 + - 鳁 + - 鳂 + - 鳈 + - 鳉 + - 獯 + - 䗪 + - 馘 + - 襕 + - 襚 + - 螱 + - 甓 + - 嬬 + - 嬥 + - 𦈡 + - 瓀 + - 釐 + - 鬶 + - 爇 + - 鞳 + - 鞮 + - 藟 + - 藦 + - 藨 + - 鹲 + - 檫 + - 黡 + - 礞 + - 礌 + - 𥖨 + - 蹢 + - 蹜 + - 蟫 + - 䗴 + - 嚚 + - 髃 + - 镮 + - 镱 + - 酂 + - 馧 + - 簠 + - 簝 + - 簰 + - 鼫 + - 鼩 + - 皦 + - 臑 + - 䲢 + - 鳑 + - 鳒 + - 鹱 + - 鹯 + - 癗 + - 𦒍 + - 旞 + - 翷 + - 冁 + - 䎖 + - 瀔 + - 瀍 + - 瀌 + - 襜 + - 䴙 + - 嚭 + - 㰀 + - 鬷 + - 醭 + - 蹯 + - 蠋 + - 翾 + - 鳘 + - 儳 + - 儴 + - 鼗 + - 𩾌 + - 鳚 + - 鳛 + - 麑 + - 麖 + - 蠃 + - 彟 + - 嬿 + - 鬒 + - 蘘 + - 欂 + - 醵 + - 颥 + - 甗 + - 𨟠 + - 巇 + - 酅 + - 髎 + - 犨 + - 𨭉 + - 㸌 + - 爔 + - 瀱 + - 瀹 + - 瀼 + - 瀵 + - 襫 + - 孅 + - 骦 + - 耰 + - 𤫉 + - 瓖 + - 鬘 + - 趯 + - 罍 + - 鼱 + - 鳠 + - 鳡 + - 鳣 + - 爟 + - 爚 + - 灈 + - 韂 + - 糵 + - 蘼 + - 礵 + - 鹴 + - 躔 + - 皭 + - 龢 + - 鳤 + - 亹 + - 籥 + - 鼷 + - 玃 + - 醾 + - 齇 + - 觿 + - 蠼 + - 𬣙 + - 𬇕 + - 𬣞 + - 𬘓 + - 𫭟 + - 𫭢 + - 𫇭 + - 𫐄 + - 𫵷 + - 𬇙 + - 𬣡 + - 𫸩 + - 𫘜 + - 𬘘 + - 𫘝 + - 𬨂 + - 𬀩 + - 𬀪 + - 𬬩 + - 𫍣 + - 𬣳 + - 𬩽 + - 𬮿 + - 𬯀 + - 𫰛 + - 𬳵 + - 𬳶 + - 𫠊 + - 𬍛 + - 鿍 + - 𬜬 + - 𪾢 + - 𪨰 + - 𫓧 + - 𬬮 + - 𬬱 + - 𬬭 + - 𬘡 + - 𬳽 + - 𬘩 + - 𫄧 + - 𪟝 + - 𬍤 + - 𫭼 + - 𬜯 + - 𬂩 + - 𫠆 + - 𬌗 + - 𫑡 + - 𪨶 + - 𬬸 + - 𬬻 + - 𬬹 + - 𬬿 + - 𬭁 + - 𫢸 + - 𫗧 + - 𬊈 + - 𬒈 + - 𬳿 + - 𫄨 + - 𬘫 + - 𫮃 + - 鿎 + - 𬱖 + - 𬟽 + - 𫓯 + - 𫟹 + - 𫟼 + - 𬇹 + - 𬍡 + - 𬤇 + - 𫍯 + - 𬤊 + - 𫍲 + - 𬯎 + - 𬘬 + - 𬘭 + - 𬴂 + - 𫘦 + - 𫟅 + - 𬘯 + - 𫘧 + - 𪣻 + - 𬃊 + - 𬷕 + - 𫐐 + - 𬹼 + - 𫶇 + - 𫖮 + - 鿏 + - 𬭊 + - 𫓶 + - 𬭎 + - 𫖯 + - 𬱟 + - 𫛭 + - 𫷷 + - 𬮱 + - 𬊤 + - 𬴃 + - 𫘨 + - 𬪩 + - 𬒔 + - 𬨎 + - 𫐓 + - 𫫇 + - 𫓹 + - 𬭚 + - 𬭛 + - 𬕂 + - 𬶋 + - 𬶍 + - 𫔶 + - 𫌀 + - 𫖳 + - 𫘪 + - 𫘬 + - 𫞩 + - 𪤗 + - 𬸘 + - 𬒗 + - 𫚖 + - 𬭤 + - 𫚕 + - 𬶐 + - 𬶏 + - 𬸚 + - 𬤝 + - 𬙂 + - 𬭩 + - 𬸣 + - 𫍽 + - 𬴊 + - 𬞟 + - 𫟦 + - 𬺈 + - 𫠜 + - 𪩘 + - 𬭬 + - 𬭯 + - 𫗴 + - 𬸦 + - 𫄷 + - 𬭳 + - 𬭶 + - 𫔍 + - 𬭸 + - 𬭼 + - 𫔎 + - 𬸪 + - 𬶟 + - 𬶠 + - 𬶨 + - 𫄸 + - 𬟁 + - 𬙊 + - 𬶭 + - 𬶮 + - 𬙋 + - 𬺓 + - 𫚭 + - 廠 + - 蔔 + - 兒 + - 幾 + - 幹 + - 虧 + - 纔 + - 與 + - 萬 + - 韆 + - 億 + - 個 + - 廣 + - 門 + - 義 + - 衛 + - 飛 + - 習 + - 馬 + - 鄉 + - 豐 + - 開 + - 無 + - 雲 + - 專 + - 藝 + - 廳 + - 區 + - 歷 + - 曆 + - 車 + - 貝 + - 岡 + - 見 + - 氣 + - 長 + - 僕 + - 幣 + - 僅 + - 從 + - 侖 + - 倉 + - 風 + - 烏 + - 鳳 + - 爲 + - 鬥 + - 憶 + - 計 + - 訂 + - 認 + - 譏 + - 醜 + - 隊 + - 辦 + - 鄧 + - 勸 + - 雙 + - 書 + - 擊 + - 撲 + - 節 + - 術 + - 厲 + - 龍 + - 滅 + - 軋 + - 東 + - 盧 + - 業 + - 舊 + - 帥 + - 歸 + - 葉 + - 電 + - 號 + - 衹 + - 隻 + - 嘰 + - 嘆 + - 們 + - 儀 + - 叢 + - 爾 + - 樂 + - 處 + - 鼕 + - 鳥 + - 務 + - 飢 + - 饑 + - 馮 + - 閃 + - 蘭 + - 匯 + - 彙 + - 頭 + - 漢 + - 寧 + - 討 + - 寫 + - 讓 + - 禮 + - 訓 + - 議 + - 訊 + - 記 + - 齣 + - 遼 + - 邊 + - 發 + - 髮 + - 聖 + - 對 + - 臺 + - 颱 + - 檯 + - 糾 + - 絲 + - 動 + - 鞏 + - 執 + - 擴 + - 掃 + - 場 + - 揚 + - 亞 + - 樸 + - 機 + - 權 + - 過 + - 協 + - 壓 + - 厭 + - 頁 + - 誇 + - 奪 + - 達 + - 夾 + - 軌 + - 堯 + - 劃 + - 邁 + - 畢 + - 貞 + - 師 + - 塵 + - 當 + - 噹 + - 籲 + - 嚇 + - 蟲 + - 麯 + - 團 + - 糰 + - 嗎 + - 嶼 + - 歲 + - 迴 + - 豈 + - 則 + - 剛 + - 網 + - 硃 + - 遷 + - 喬 + - 偉 + - 傳 + - 優 + - 傷 + - 價 + - 倫 + - 華 + - 僞 + - 嚮 + - 後 + - 會 + - 殺 + - 閤 + - 衆 + - 爺 + - 傘 + - 創 + - 雜 + - 負 + - 壯 + - 衝 + - 妝 + - 莊 + - 慶 + - 劉 + - 齊 + - 産 + - 閉 + - 問 + - 闖 + - 關 + - 燈 + - 湯 + - 興 + - 講 + - 諱 + - 軍 + - 訝 + - 許 + - 訛 + - 論 + - 訟 + - 農 + - 諷 + - 設 + - 訪 + - 訣 + - 尋 + - 盡 + - 儘 + - 導 + - 孫 + - 陣 + - 陽 + - 階 + - 陰 + - 婦 + - 媽 + - 戲 + - 觀 + - 歡 + - 買 + - 紅 + - 馱 + - 纖 + - 縴 + - 馴 + - 約 + - 級 + - 紀 + - 馳 + - 紉 + - 壽 + - 麥 + - 瑪 + - 進 + - 遠 + - 違 + - 韌 + - 運 + - 撫 + - 壇 + - 罎 + - 壞 + - 摳 + - 擾 + - 貢 + - 垻 + - 壩 + - 摺 + - 掄 + - 搶 + - 墳 + - 護 + - 殻 + - 塊 + - 聲 + - 報 + - 擬 + - 蕪 + - 葦 + - 蒼 + - 嚴 + - 蘆 + - 勞 + - 蘇 + - 囌 + - 極 + - 楊 + - 兩 + - 麗 + - 醫 + - 勵 + - 還 + - 殲 + - 來 + - 連 + - 軒 + - 鹵 + - 滷 + - 堅 + - 時 + - 縣 + - 裏 + - 嘔 + - 園 + - 曠 + - 圍 + - 噸 + - 郵 + - 睏 + - 員 + - 聽 + - 嗆 + - 嗚 + - 彆 + - 嶇 + - 崗 + - 帳 + - 財 + - 針 + - 釘 + - 亂 + - 體 + - 傭 + - 徹 + - 餘 + - 穀 + - 鄰 + - 腸 + - 龜 + - 猶 + - 狽 + - 條 + - 島 + - 飯 + - 飲 + - 係 + - 繫 + - 凍 + - 狀 + - 畝 + - 庫 + - 療 + - 應 + - 這 + - 廬 + - 閏 + - 閑 + - 間 + - 悶 + - 竈 + - 燦 + - 瀝 + - 淪 + - 滄 + - 溝 + - 滬 + - 瀋 + - 懷 + - 憂 + - 窮 + - 證 + - 啓 + - 評 + - 補 + - 識 + - 詐 + - 訴 + - 診 + - 詞 + - 譯 + - 靈 + - 層 + - 遲 + - 張 + - 際 + - 陸 + - 陳 + - 墜 + - 勁 + - 鷄 + - 緯 + - 驅 + - 純 + - 紗 + - 綱 + - 納 + - 駁 + - 縱 + - 紛 + - 紙 + - 紋 + - 紡 + - 驢 + - 紐 + - 環 + - 責 + - 現 + - 錶 + - 規 + - 攏 + - 揀 + - 擔 + - 頂 + - 擁 + - 勢 + - 攔 + - 擰 + - 撥 + - 擇 + - 蘋 + - 範 + - 莖 + - 樞 + - 櫃 + - 闆 + - 鬆 + - 槍 + - 楓 + - 構 + - 喪 + - 畫 + - 棗 + - 賣 + - 鬱 + - 礬 + - 礦 + - 碼 + - 厠 + - 奮 + - 態 + - 歐 + - 毆 + - 壟 + - 轟 + - 頃 + - 轉 + - 斬 + - 輪 + - 軟 + - 齒 + - 虜 + - 腎 + - 賢 + - 國 + - 暢 + - 嚨 + - 鳴 + - 羅 + - 幟 + - 嶺 + - 凱 + - 敗 + - 賬 + - 販 + - 貶 + - 購 + - 貯 + - 圖 + - 釣 + - 製 + - 颳 + - 俠 + - 僥 + - 偵 + - 側 + - 憑 + - 僑 + - 貨 + - 質 + - 徑 + - 捨 + - 覓 + - 貪 + - 貧 + - 膚 + - 腫 + - 脹 + - 骯 + - 脅 + - 魚 + - 獰 + - 備 + - 飾 + - 飽 + - 飼 + - 變 + - 龐 + - 廟 + - 瘧 + - 劑 + - 廢 + - 閘 + - 鬧 + - 鄭 + - 捲 + - 單 + - 爐 + - 淺 + - 濘 + - 瀉 + - 潑 + - 澤 + - 憐 + - 學 + - 寶 + - 寵 + - 審 + - 簾 + - 實 + - 試 + - 詩 + - 誠 + - 襯 + - 視 + - 話 + - 誕 + - 詭 + - 詢 + - 該 + - 詳 + - 肅 + - 録 + - 隸 + - 彌 + - 瀰 + - 陝 + - 駕 + - 參 + - 艱 + - 綫 + - 練 + - 組 + - 紳 + - 細 + - 駛 + - 織 + - 駒 + - 終 + - 駐 + - 絆 + - 駝 + - 紹 + - 繹 + - 經 + - 貫 + - 貳 + - 幫 + - 項 + - 挾 + - 撓 + - 趙 + - 擋 + - 墊 + - 擠 + - 揮 + - 薦 + - 帶 + - 繭 + - 蕩 + - 榮 + - 葷 + - 熒 + - 鬍 + - 蔭 + - 藥 + - 標 + - 棧 + - 棟 + - 欄 + - 檸 + - 樹 + - 鹹 + - 磚 + - 硯 + - 麵 + - 牽 + - 鷗 + - 殘 + - 軸 + - 輕 + - 鴉 + - 戰 + - 點 + - 臨 + - 覽 + - 竪 + - 嘗 + - 啞 + - 顯 + - 貴 + - 蝦 + - 蟻 + - 螞 + - 雖 + - 駡 + - 勛 + - 嘩 + - 響 + - 喲 + - 峽 + - 罰 + - 賤 + - 貼 + - 貽 + - 鈣 + - 鈍 + - 鈔 + - 鍾 + - 鐘 + - 鋼 + - 鈉 + - 鑰 + - 欽 + - 鈞 + - 鈎 + - 鈕 + - 氈 + - 氫 + - 選 + - 適 + - 種 + - 鞦 + - 復 + - 複 + - 倆 + - 貸 + - 順 + - 儉 + - 須 + - 鬚 + - 劍 + - 朧 + - 膽 + - 勝 + - 狹 + - 獅 + - 獨 + - 獄 + - 貿 + - 餌 + - 饒 + - 蝕 + - 餃 + - 餅 + - 巒 + - 彎 + - 將 + - 奬 + - 瘡 + - 瘋 + - 親 + - 閨 + - 聞 + - 閩 + - 閥 + - 閣 + - 養 + - 薑 + - 類 + - 婁 + - 總 + - 煉 + - 爍 + - 爛 + - 窪 + - 潔 + - 灑 + - 澆 + - 濁 + - 測 + - 瀏 + - 濟 + - 渾 + - 濃 + - 惱 + - 舉 + - 覺 + - 憲 + - 竊 + - 誡 + - 誣 + - 語 + - 襖 + - 誤 + - 誘 + - 誨 + - 説 + - 誦 + - 墾 + - 晝 + - 費 + - 遜 + - 隕 + - 險 + - 嬌 + - 賀 + - 壘 + - 綁 + - 絨 + - 結 + - 繞 + - 驕 + - 繪 + - 給 + - 絢 + - 駱 + - 絡 + - 絶 + - 絞 + - 駭 + - 統 + - 艷 + - 蠶 + - 頑 + - 盞 + - 撈 + - 載 + - 趕 + - 鹽 + - 損 + - 撿 + - 摯 + - 剝 + - 熱 + - 搗 + - 壺 + - 聶 + - 萊 + - 蓮 + - 獲 + - 穫 + - 惡 + - 噁 + - 瑩 + - 鶯 + - 檔 + - 橋 + - 樺 + - 樁 + - 樣 + - 賈 + - 礫 + - 礎 + - 顧 + - 轎 + - 較 + - 頓 + - 斃 + - 緻 + - 慮 + - 監 + - 緊 + - 黨 + - 曬 + - 曉 + - 嘮 + - 鴨 + - 暈 + - 鴦 + - 罷 + - 圓 + - 賊 + - 賄 + - 賂 + - 贜 + - 錢 + - 鉗 + - 鑽 + - 鉀 + - 鐵 + - 鈴 + - 鉛 + - 犧 + - 敵 + - 積 + - 稱 + - 筆 + - 債 + - 傾 + - 賃 + - 艦 + - 艙 + - 聳 + - 愛 + - 頒 + - 頌 + - 臟 + - 髒 + - 臍 + - 膠 + - 腦 + - 膿 + - 鴕 + - 鴛 + - 皺 + - 餓 + - 餒 + - 戀 + - 槳 + - 漿 + - 準 + - 癥 + - 齋 + - 離 + - 資 + - 競 + - 閲 + - 煩 + - 燒 + - 燭 + - 遞 + - 濤 + - 澇 + - 渦 + - 塗 + - 滌 + - 潤 + - 澗 + - 漲 + - 燙 + - 澀 + - 憫 + - 寬 + - 傢 + - 賓 + - 竅 + - 請 + - 諸 + - 諾 + - 讀 + - 誹 + - 襪 + - 課 + - 誰 + - 調 + - 諒 + - 諄 + - 談 + - 誼 + - 懇 + - 劇 + - 難 + - 預 + - 絹 + - 綉 + - 驗 + - 繼 + - 駿 + - 瑣 + - 擲 + - 據 + - 摻 + - 職 + - 蘿 + - 螢 + - 營 + - 蕭 + - 薩 + - 夢 + - 檢 + - 醖 + - 碩 + - 聾 + - 襲 + - 輔 + - 輛 + - 顱 + - 懸 + - 躍 + - 纍 + - 囉 + - 嘯 + - 嶄 + - 邏 + - 嬰 + - 銬 + - 鐺 + - 鋁 + - 銅 + - 銘 + - 鏟 + - 銀 + - 矯 + - 穢 + - 籠 + - 償 + - 軀 + - 釁 + - 銜 + - 盤 + - 鴿 + - 斂 + - 領 + - 臉 + - 獵 + - 餡 + - 館 + - 癢 + - 鏇 + - 閻 + - 闡 + - 蓋 + - 斷 + - 獸 + - 鴻 + - 漸 + - 淵 + - 漁 + - 澱 + - 滲 + - 慚 + - 懼 + - 驚 + - 慘 + - 慣 + - 謀 + - 諜 + - 謊 + - 諧 + - 禱 + - 禍 + - 謂 + - 諺 + - 謎 + - 彈 + - 墮 + - 隨 + - 隱 + - 嬸 + - 頗 + - 頸 + - 績 + - 緒 + - 續 + - 騎 + - 綽 + - 繩 + - 維 + - 綿 + - 綳 + - 綢 + - 綜 + - 綻 + - 緑 + - 綴 + - 瓊 + - 趨 + - 攬 + - 攙 + - 擱 + - 摟 + - 攪 + - 聯 + - 蔣 + - 韓 + - 橢 + - 確 + - 頰 + - 靂 + - 暫 + - 翹 + - 輩 + - 鑿 + - 輝 + - 賞 + - 睞 + - 噴 + - 疇 + - 踐 + - 遺 + - 鵑 + - 賦 + - 賭 + - 贖 + - 賜 + - 賠 + - 鑄 + - 鋪 + - 鏈 + - 銷 + - 鎖 + - 鋤 + - 鍋 + - 銹 + - 鋒 + - 鋅 + - 鋭 + - 鵝 + - 築 + - 篩 + - 儲 + - 懲 + - 禦 + - 釋 + - 臘 + - 魯 + - 憊 + - 饋 + - 饞 + - 裝 + - 蠻 + - 闊 + - 糞 + - 滯 + - 濕 + - 潰 + - 濺 + - 灣 + - 憤 + - 竄 + - 窩 + - 褲 + - 禪 + - 謝 + - 謡 + - 謗 + - 謙 + - 屬 + - 屢 + - 緬 + - 纜 + - 緝 + - 緞 + - 緩 + - 締 + - 縷 + - 騙 + - 編 + - 騷 + - 緣 + - 鵡 + - 攝 + - 擺 + - 襬 + - 攤 + - 鵲 + - 藍 + - 濛 + - 懞 + - 矇 + - 獻 + - 欖 + - 樓 + - 賴 + - 礙 + - 尷 + - 霧 + - 輻 + - 輯 + - 輸 + - 頻 + - 齡 + - 鑒 + - 蹺 + - 蝸 + - 錯 + - 錨 + - 錫 + - 鑼 + - 錘 + - 錐 + - 錦 + - 鍵 + - 鋸 + - 錳 + - 辭 + - 頽 + - 籌 + - 簽 + - 籤 + - 簡 + - 膩 + - 鵬 + - 騰 + - 鮑 + - 穎 + - 觸 + - 雛 + - 饃 + - 餾 + - 醬 + - 謄 + - 糧 + - 數 + - 滿 + - 濾 + - 濫 + - 灕 + - 濱 + - 灘 + - 譽 + - 窺 + - 寢 + - 謹 + - 謬 + - 闢 + - 縛 + - 縫 + - 纏 + - 繽 + - 贅 + - 墻 + - 衊 + - 藹 + - 檻 + - 釀 + - 願 + - 轄 + - 輾 + - 顆 + - 踴 + - 蠟 + - 蠅 + - 蟬 + - 賺 + - 鍬 + - 鍛 + - 鍍 + - 穩 + - 籮 + - 簫 + - 輿 + - 鮮 + - 饅 + - 瀟 + - 賽 + - 譚 + - 譜 + - 騾 + - 縮 + - 攆 + - 聰 + - 藴 + - 櫻 + - 飄 + - 黴 + - 瞞 + - 題 + - 囑 + - 鎮 + - 鎬 + - 鎊 + - 簍 + - 鯉 + - 鯽 + - 癟 + - 癱 + - 顔 + - 鯊 + - 瀾 + - 額 + - 譴 + - 鶴 + - 繚 + - 顛 + - 轍 + - 鸚 + - 贈 + - 鏡 + - 贊 + - 籃 + - 籬 + - 鯨 + - 癮 + - 辯 + - 瀕 + - 懶 + - 繮 + - 繳 + - 矚 + - 贍 + - 鰐 + - 辮 + - 贏 + - 驟 + - 囂 + - 鐮 + - 鰭 + - 鷹 + - 巔 + - 顫 + - 癬 + - 鱉 + - 鬢 + - 鱗 + - 躪 + - 贛 + - 鑲 + - 韋 + - 閂 + - 訃 + - 勱 + - 芻 + - 鄺 + - 訐 + - 訌 + - 訕 + - 訖 + - 馭 + - 璣 + - 壙 + - 捫 + - 薌 + - 厙 + - 釔 + - 傴 + - 倀 + - 傖 + - 獷 + - 獁 + - 鳬 + - 鄔 + - 餳 + - 懺 + - 謳 + - 詎 + - 訥 + - 紆 + - 紂 + - 紇 + - 紈 + - 璵 + - 摶 + - 塢 + - 㩳 + - 蕓 + - 藶 + - 莧 + - 萇 + - 蓯 + - 磯 + - 奩 + - 歟 + - 軔 + - 鄴 + - 嘸 + - 囈 + - 嚦 + - 暘 + - 唄 + - 幃 + - 峴 + - 嵐 + - 圇 + - 釗 + - 釙 + - 釕 + - 僉 + - 鳩 + - 鄒 + - 飩 + - 餼 + - 飪 + - 飫 + - 飭 + - 廡 + - 癤 + - 闈 + - 閎 + - 閔 + - 煬 + - 灃 + - 漚 + - 渢 + - 潙 + - 憮 + - 慪 + - 愾 + - 悵 + - 愴 + - 詁 + - 訶 + - 詛 + - 詆 + - 謅 + - 詔 + - 詒 + - 隴 + - 陘 + - 嫵 + - 嫗 + - 嬀 + - 剄 + - 紜 + - 紕 + - 紝 + - 綸 + - 紓 + - 瑋 + - 匭 + - 壚 + - 擓 + - 蘢 + - 蔦 + - 塋 + - 煢 + - 櫪 + - 梘 + - 棖 + - 樅 + - 碭 + - 甌 + - 郟 + - 軛 + - 鳶 + - 曇 + - 蟣 + - 黽 + - 嚀 + - 噝 + - 巋 + - 劌 + - 剴 + - 嶧 + - 釷 + - 釺 + - 釧 + - 釩 + - 釹 + - 釵 + - 儈 + - 儕 + - 儂 + - 劊 + - 慫 + - 糴 + - 戧 + - 膞 + - 邇 + - 梟 + - 餞 + - 飴 + - 癘 + - 瘍 + - 煒 + - 熰 + - 熗 + - 瀧 + - 瀘 + - 濼 + - 涇 + - 㥮 + - 懌 + - 誆 + - 誄 + - 詿 + - 詰 + - 詼 + - 鄆 + - 禕 + - 誅 + - 詵 + - 詬 + - 詮 + - 詣 + - 諍 + - 詫 + - 諢 + - 詡 + - 駑 + - 紺 + - 紲 + - 紱 + - 駟 + - 駙 + - 縐 + - 絀 + - 驛 + - 駘 + - 瓏 + - 頇 + - 埡 + - 撾 + - 撻 + - 賁 + - 壋 + - 撏 + - 莢 + - 貰 + - 蓽 + - 蕎 + - 薈 + - 薺 + - 堊 + - 滎 + - 犖 + - 蕁 + - 藎 + - 蓀 + - 蕒 + - 葤 + - 櫛 + - 櫳 + - 櫨 + - 櫟 + - 檉 + - 酈 + - 硨 + - 碸 + - 殤 + - 軲 + - 軻 + - 轤 + - 軼 + - 軫 + - 蠆 + - 覘 + - 瞘 + - 嘵 + - 嗶 + - 噦 + - 剮 + - 鄖 + - 噲 + - 噥 + - 嶢 + - 幀 + - 嶠 + - 貺 + - 鈈 + - 鈦 + - 鋇 + - 鈑 + - 鈐 + - 鎢 + - 鈁 + - 鈀 + - 篤 + - 儔 + - 儼 + - 儷 + - 腖 + - 臚 + - 脛 + - 鴇 + - 獪 + - 颮 + - 猻 + - 餉 + - 餄 + - 餎 + - 孿 + - 孌 + - 癧 + - 瘲 + - 颯 + - 闥 + - 閭 + - 闓 + - 閡 + - 熾 + - 烴 + - 浹 + - 澮 + - 滸 + - 潯 + - 濜 + - 慟 + - 懨 + - 愷 + - 惻 + - 惲 + - 誚 + - 禰 + - 誥 + - 誑 + - 鴆 + - 婭 + - 嬈 + - 懟 + - 絝 + - 驍 + - 驊 + - 絎 + - 絳 + - 駢 + - 頊 + - 璫 + - 琿 + - 塒 + - 塤 + - 堝 + - 贄 + - 蒔 + - 萵 + - 蕕 + - 鴣 + - 蒓 + - 橈 + - 楨 + - 榿 + - 檜 + - 邐 + - 礪 + - 礱 + - 軾 + - 輊 + - 輅 + - 鶇 + - 躉 + - 齔 + - 鸕 + - 矓 + - 嘜 + - 鴞 + - 蜆 + - 嗩 + - 嶗 + - 崍 + - 覬 + - 賅 + - 鈺 + - 鉦 + - 鈷 + - 鉢 + - 鈸 + - 鉞 + - 鉭 + - 鉬 + - 鈿 + - 鈾 + - 鉑 + - 鑠 + - 鉚 + - 鈰 + - 鉉 + - 鉈 + - 鉍 + - 鈮 + - 鈹 + - 鏺 + - 鐸 + - 氬 + - 筧 + - 頎 + - 徠 + - 膾 + - 鴟 + - 璽 + - 鴝 + - 獫 + - 裊 + - 餑 + - 欒 + - 攣 + - 癰 + - 痙 + - 頏 + - 閫 + - 鬮 + - 誾 + - 閬 + - 鄲 + - 燁 + - 燴 + - 燼 + - 淶 + - 漣 + - 潿 + - 慳 + - 諏 + - 諑 + - 禎 + - 諉 + - 諛 + - 諗 + - 諂 + - 誶 + - 媧 + - 嫻 + - 綆 + - 驪 + - 綃 + - 騁 + - 綏 + - 縧 + - 綈 + - 駸 + - 鷥 + - 燾 + - 璉 + - 麩 + - 擄 + - 摑 + - 鷙 + - 撣 + - 慤 + - 摜 + - 縈 + - 槤 + - 覡 + - 欞 + - 嗇 + - 匱 + - 硤 + - 磽 + - 鴯 + - 龔 + - 殞 + - 殮 + - 賚 + - 輒 + - 塹 + - 嘖 + - 囀 + - 嚙 + - 蹌 + - 蠣 + - 蠱 + - 蟶 + - 幘 + - 幗 + - 賕 + - 賑 + - 賒 + - 銠 + - 鉺 + - 鋏 + - 鐃 + - 銦 + - 鎧 + - 鍘 + - 銖 + - 銑 + - 鋌 + - 鏵 + - 銓 + - 鎩 + - 鉿 + - 銚 + - 鉻 + - 錚 + - 銫 + - 鉸 + - 銥 + - 銃 + - 銨 + - 銣 + - 鴰 + - 穠 + - 箋 + - 籩 + - 僨 + - 僂 + - 皚 + - 鴴 + - 艫 + - 龕 + - 玀 + - 獼 + - 餜 + - 餛 + - 鸞 + - 闍 + - 閾 + - 閹 + - 閶 + - 鬩 + - 閽 + - 閼 + - 羥 + - 糲 + - 燜 + - 漬 + - 瀆 + - 澠 + - 愜 + - 憚 + - 諶 + - 諫 + - 皸 + - 謔 + - 襠 + - 謁 + - 諤 + - 諭 + - 諼 + - 讒 + - 諳 + - 諦 + - 諞 + - 糶 + - 嬋 + - 綾 + - 騏 + - 綺 + - 緋 + - 緔 + - 騍 + - 緄 + - 騅 + - 綬 + - 綹 + - 綣 + - 綰 + - 驂 + - 緇 + - 靚 + - 輦 + - 黿 + - 頡 + - 撳 + - 蟄 + - 壪 + - 蔞 + - 櫝 + - 欏 + - 賫 + - 鵓 + - 鸝 + - 殫 + - 輥 + - 輞 + - 槧 + - 輟 + - 輜 + - 瞼 + - 躒 + - 蛺 + - 蟯 + - 螄 + - 蠐 + - 嘍 + - 嶸 + - 嶁 + - 賧 + - 鋙 + - 錸 + - 鏗 + - 鋥 + - 鋰 + - 鋯 + - 鋨 + - 銼 + - 鐧 + - 銻 + - 鋃 + - 鋦 + - 錒 + - 犢 + - 鵠 + - 篳 + - 牘 + - 儻 + - 儐 + - 儺 + - 嬃 + - 頜 + - 鵒 + - 魷 + - 魨 + - 魴 + - 潁 + - 颶 + - 觴 + - 熲 + - 餷 + - 餿 + - 褻 + - 臠 + - 癆 + - 癇 + - 賡 + - 頦 + - 鷳 + - 闌 + - 闃 + - 闋 + - 鵜 + - 憒 + - 嚳 + - 謨 + - 褳 + - 襇 + - 讜 + - 謖 + - 謚 + - 謐 + - 騭 + - 巰 + - 翬 + - 騖 + - 緙 + - 緗 + - 緘 + - 緹 + - 緲 + - 緦 + - 緱 + - 縋 + - 緡 + - 饗 + - 耮 + - 驁 + - 韞 + - 攄 + - 擯 + - 轂 + - 驀 + - 鶓 + - 薊 + - 蘺 + - 鎣 + - 頤 + - 櫚 + - 櫸 + - 磧 + - 磣 + - 鵪 + - 輳 + - 齟 + - 齙 + - 韙 + - 囁 + - 躂 + - 蹕 + - 躚 + - 躋 + - 噯 + - 鍺 + - 錛 + - 錡 + - 鍀 + - 錁 + - 錕 + - 錮 + - 鍁 + - 錈 + - 錠 + - 錙 + - 覦 + - 頷 + - 鮁 + - 鮃 + - 鮎 + - 鱸 + - 穌 + - 鮒 + - 鮐 + - 鵮 + - 颼 + - 饈 + - 鶉 + - 瘮 + - 闔 + - 闐 + - 闕 + - 灧 + - 瀅 + - 潷 + - 灤 + - 澦 + - 懾 + - 鱟 + - 騫 + - 竇 + - 謾 + - 謫 + - 嬡 + - 嬪 + - 縉 + - 縝 + - 縟 + - 轡 + - 騮 + - 縞 + - 縭 + - 縊 + - 縑 + - 騸 + - 覯 + - 韜 + - 靉 + - 攖 + - 薔 + - 藺 + - 鶘 + - 檳 + - 櫧 + - 釅 + - 殯 + - 霽 + - 轅 + - 齜 + - 齦 + - 瞜 + - 曖 + - 躊 + - 蟈 + - 鶚 + - 嚶 + - 羆 + - 賻 + - 罌 + - 鶻 + - 鍥 + - 鍇 + - 鍶 + - 鍔 + - 鍤 + - 鏘 + - 鎂 + - 鏤 + - 簀 + - 篋 + - 簞 + - 籙 + - 臏 + - 鮭 + - 鮪 + - 鱭 + - 鮫 + - 鱘 + - 饉 + - 鑾 + - 瘻 + - 闞 + - 鮝 + - 糝 + - 鷀 + - 瀲 + - 濰 + - 譖 + - 褸 + - 譙 + - 讕 + - 譎 + - 鶥 + - 嬙 + - 鶩 + - 驃 + - 縹 + - 縵 + - 縲 + - 纓 + - 驄 + - 繆 + - 繅 + - 耬 + - 瓔 + - 擷 + - 擼 + - 攛 + - 聵 + - 覲 + - 韃 + - 鞽 + - 蘄 + - 賾 + - 檣 + - 靨 + - 魘 + - 饜 + - 轆 + - 齬 + - 齪 + - 覷 + - 顒 + - 躓 + - 躑 + - 蠑 + - 螻 + - 顎 + - 嚕 + - 顓 + - 鑷 + - 鎘 + - 鎸 + - 鎳 + - 鎦 + - 鎰 + - 鎵 + - 鑌 + - 簣 + - 鷂 + - 鯁 + - 鱺 + - 鰱 + - 鰹 + - 鰣 + - 鯀 + - 鯇 + - 觶 + - 饊 + - 饌 + - 齏 + - 讞 + - 襤 + - 譫 + - 屨 + - 纈 + - 繕 + - 繒 + - 驏 + - 擻 + - 顳 + - 顢 + - 藪 + - 櫓 + - 櫞 + - 贋 + - 飆 + - 鏨 + - 轔 + - 蟎 + - 鐯 + - 鏢 + - 鏜 + - 鏝 + - 鏰 + - 鏞 + - 鏑 + - 鏃 + - 鏐 + - 氌 + - 穡 + - 魎 + - 鯪 + - 鯡 + - 鯤 + - 鯧 + - 鯝 + - 鯢 + - 鯛 + - 鯔 + - 獺 + - 鷓 + - 贇 + - 癭 + - 斕 + - 瀨 + - 顙 + - 繾 + - 繰 + - 繯 + - 蘚 + - 鷯 + - 齲 + - 齷 + - 躡 + - 蹣 + - 羈 + - 鐔 + - 鐝 + - 鐐 + - 鐓 + - 鑭 + - 鑹 + - 鏹 + - 鐙 + - 籪 + - 鷦 + - 鱝 + - 鰈 + - 鯷 + - 鰓 + - 鰍 + - 鰉 + - 鯿 + - 鷲 + - 懣 + - 鷸 + - 鰲 + - 韉 + - 顥 + - 鷺 + - 䴉 + - 髏 + - 鑊 + - 鐳 + - 鐲 + - 讎 + - 鰨 + - 鰥 + - 鰩 + - 癩 + - 攢 + - 靄 + - 躥 + - 髖 + - 髕 + - 鑔 + - 籟 + - 鰳 + - 鰾 + - 鱈 + - 鰻 + - 鱅 + - 讖 + - 驥 + - 纘 + - 瓚 + - 鼉 + - 黷 + - 黲 + - 鑣 + - 鑞 + - 臢 + - 鱖 + - 鱔 + - 鱒 + - 驤 + - 顰 + - 鱧 + - 癲 + - 灝 + - 鸛 + - 鑱 + - 趲 + - 顴 + - 躦 + - 饢 + - 戇 + - 戔 + - 訏 + - 訒 + - 釓 + - 俔 + - 閆 + - 澫 + - 訢 + - 訩 + - 詝 + - 紃 + - 纊 + - 瑒 + - 剗 + - 塸 + - 壢 + - 埨 + - 撝 + - 蔿 + - 榪 + - 軑 + - 軏 + - 咼 + - 㠣 + - 覎 + - 㑳 + - 颺 + - 閌 + - 潕 + - 湋 + - 澐 + - 浿 + - 諓 + - 禡 + - 詗 + - 詘 + - 詖 + - 屓 + - 彄 + - 紘 + - 馹 + - 馼 + - 紵 + - 紞 + - 駃 + - 紖 + - 瑲 + - 薴 + - 棡 + - 軝 + - 暐 + - 晛 + - 崬 + - 釴 + - 釤 + - 鍆 + - 鍚 + - 鄶 + - 獮 + - 飿 + - 嶨 + - 詷 + - 詪 + - 鄩 + - 鳲 + - 隑 + - 隮 + - 娙 + - 逕 + - 駓 + - 駔 + - 駉 + - 絅 + - 騶 + - 䮄 + - 紼 + - 紿 + - 瓅 + - 韍 + - 墶 + - 塏 + - 薘 + - 蕘 + - 蔄 + - 葒 + - 鳾 + - 龑 + - 軹 + - 軤 + - 轢 + - 軺 + - 睍 + - 曨 + - 噠 + - 鈃 + - 鈇 + - 鉅 + - 鋹 + - 釿 + - 錀 + - 鈧 + - 鈥 + - 鈄 + - 倈 + - 艤 + - 鶬 + - 颭 + - 餏 + - 湞 + - 溮 + - 滻 + - 褘 + - 絰 + - 駰 + - 絪 + - 駪 + - 綎 + - 綖 + - 驫 + - 勣 + - 璕 + - 𡑍 + - 䓣 + - 薟 + - 藭 + - 椏 + - 梜 + - 頍 + - 硜 + - 輄 + - 輈 + - 輇 + - 貲 + - 嗊 + - 曄 + - 暉 + - 鄳 + - 幬 + - 輋 + - 嶮 + - 贐 + - 鉥 + - 鉕 + - 鑪 + - 鉮 + - 鉊 + - 鉧 + - 僤 + - 鴒 + - 魛 + - 餗 + - 燖 + - 溳 + - 礐 + - 窵 + - 襏 + - 駼 + - 絺 + - 綌 + - 騂 + - 綄 + - 璡 + - 墠 + - 壼 + - 聹 + - 蘀 + - 勩 + - 罃 + - 檮 + - 棶 + - 厴 + - 䃮 + - 磑 + - 礄 + - 鴷 + - 齕 + - 頔 + - 廼 + - 凢 + - 亾 + - 枒 + - 屍 + - 匃 + - 匄 + - 紥 + - 紮 + - 疋 + - 殀 + - 讐 + - 觔 + - 兇 + - 宂 + - 㕥 + - 㠯 + - 栞 + - 佈 + - 佔 + - 呌 + - 敂 + - 冄 + - 坵 + - 僊 + - 怱 + - 悤 + - 冊 + - 夘 + - 戼 + - 牠 + - 妳 + - 嬭 + - 摃 + - 釦 + - 攷 + - 託 + - 衺 + - 衕 + - 弔 + - 喫 + - 囙 + - 㠶 + - 颿 + - 秊 + - 倣 + - 髣 + - 佀 + - 朶 + - 氷 + - 決 + - 併 + - 並 + - 竝 + - 汙 + - 汚 + - 異 + - 姦 + - 廵 + - 挵 + - 衖 + - 搤 + - 阯 + - 撦 + - 埳 + - 阬 + - 誌 + - 㕁 + - 卻 + - 刦 + - 刧 + - 刼 + - 芲 + - 蘤 + - 桿 + - 槓 + - 荳 + - 獃 + - 唫 + - 脗 + - 皁 + - 彿 + - 髴 + - 疘 + - 刪 + - 鉋 + - 鑤 + - 況 + - 牀 + - 恡 + - 棄 + - 洶 + - 汎 + - 災 + - 烖 + - 菑 + - 禩 + - 侷 + - 跼 + - 坿 + - 玅 + - 姉 + - 妬 + - 翫 + - 搨 + - 柺 + - 拕 + - 牴 + - 觝 + - 倖 + - 抝 + - 盃 + - 桮 + - 傑 + - 逩 + - 肎 + - 菓 + - 崐 + - 崑 + - 呪 + - 虖 + - 嘑 + - 謼 + - 詠 + - 㟁 + - 嵒 + - 巗 + - 巖 + - 雰 + - 稈 + - 咊 + - 嶽 + - 妷 + - 姪 + - 廹 + - 徃 + - 餚 + - 採 + - 寀 + - 唸 + - 週 + - 昬 + - 兎 + - 兔 + - 亯 + - 亱 + - 䘚 + - 淨 + - 劵 + - 匟 + - 㳒 + - 灋 + - 洩 + - 霑 + - 淚 + - 註 + - 恠 + - 箒 + - 屆 + - 絃 + - 圅 + - 旾 + - 珎 + - 掛 + - 垜 + - 艸 + - 茘 + - 査 + - 栢 + - 柵 + - 栁 + - 桺 + - 柹 + - 韮 + - 揹 + - 昰 + - 閧 + - 鬨 + - 冐 + - 暎 + - 嚥 + - 倃 + - 𠴰 + - 偺 + - 喒 + - 齩 + - 欬 + - 榘 + - 㑺 + - 儁 + - 敍 + - 敘 + - 肧 + - 脈 + - 䘑 + - 衇 + - 跡 + - 蹟 + - 砲 + - 礮 + - 薙 + - 鬀 + - 恆 + - 怳 + - 卹 + - 䘏 + - 賉 + - 婣 + - 畊 + - 揑 + - 綑 + - 輓 + - 恥 + - 躭 + - 晉 + - 棲 + - 覈 + - 慄 + - 翄 + - 脣 + - 槕 + - 㨪 + - 螡 + - 蟁 + - 㤙 + - 陗 + - 峩 + - 峯 + - 乗 + - 椉 + - 咲 + - 筍 + - 俛 + - 頫 + - 勌 + - 䠶 + - 躳 + - 慇 + - 拏 + - 㧱 + - 挐 + - 脃 + - 胷 + - 肐 + - 貍 + - 㽞 + - 畱 + - 淒 + - 悽 + - 蓆 + - 効 + - 傚 + - 涼 + - 缾 + - 菸 + - 煙 + - 淛 + - 湧 + - 誖 + - 猂 + - 醼 + - 讌 + - 㝠 + - 寃 + - 孃 + - 桒 + - 毬 + - 瑠 + - 璢 + - 瑯 + - 㨗 + - 搥 + - 搯 + - 蔆 + - 惏 + - 楳 + - 槑 + - 捄 + - 廂 + - 慽 + - 慼 + - 瞇 + - 埜 + - 畧 + - 虵 + - 稭 + - 棃 + - 犂 + - 迻 + - 媮 + - 兠 + - 舩 + - 慾 + - 綵 + - 腳 + - 𩓐 + - 夠 + - 豬 + - 貓 + - 湊 + - 減 + - 庻 + - 蔴 + - 菴 + - 朢 + - 睠 + - 觕 + - 麤 + - 釬 + - 銲 + - 痳 + - 殽 + - 婬 + - 滛 + - 湻 + - 㴱 + - 樑 + - 顇 + - 㝛 + - 窰 + - 窯 + - 琹 + - 欵 + - 墖 + - 趂 + - 隄 + - 愽 + - 揷 + - 揫 + - 煑 + - 朞 + - 㪚 + - 塟 + - 蔥 + - 蔕 + - 稜 + - 棊 + - 碁 + - 椶 + - 偪 + - 㕑 + - 廚 + - 廈 + - 鴈 + - 冣 + - 㝡 + - 晳 + - 鼃 + - 餧 + - 餵 + - 嗁 + - 諠 + - 㡌 + - 賸 + - 筴 + - 筞 + - 筩 + - 栰 + - 暠 + - 皜 + - 踰 + - 蝟 + - 㪟 + - 燄 + - 遊 + - 媿 + - 嘅 + - 庽 + - 窓 + - 牎 + - 牕 + - 窻 + - 徧 + - 僱 + - 帬 + - 裠 + - 強 + - 彊 + - 疎 + - 壻 + - 瓌 + - 䰟 + - 皷 + - 擕 + - 㩗 + - 㩦 + - 攜 + - 懃 + - 鞾 + - 幙 + - 㮣 + - 酧 + - 詶 + - 醻 + - 掽 + - 踫 + - 㼝 + - 盌 + - 磟 + - 覩 + - 倸 + - 㬉 + - 煗 + - 煖 + - 晻 + - 闇 + - 炤 + - 跥 + - 䗬 + - 蠭 + - 寘 + - 辠 + - 稺 + - 穉 + - 燬 + - 譭 + - 瘉 + - 癒 + - 顋 + - 骽 + - 猨 + - 蝯 + - 稟 + - 痺 + - 癡 + - 亷 + - 㢘 + - 韻 + - 泝 + - 遡 + - 昚 + - 躶 + - 臝 + - 羣 + - 㬪 + - 曡 + - 疊 + - 勦 + - 琍 + - 瓈 + - 𤋮 + - 熈 + - 牓 + - 搾 + - 謌 + - 堿 + - 鹻 + - 鹼 + - 矁 + - 燻 + - 髈 + - 𤺥 + - 辢 + - 旂 + - 𡚁 + - 潄 + - 砦 + - 詧 + - 嫰 + - 櫈 + - 撐 + - 墪 + - 譔 + - 鞵 + - 鞌 + - 蕋 + - 橤 + - 蘂 + - 醕 + - 譆 + - 跴 + - 蹤 + - 蜨 + - 蠍 + - 稾 + - 殭 + - 惪 + - 厀 + - 襃 + - 癅 + - 䊀 + - 餬 + - 潛 + - 癄 + - 顦 + - 鷰 + - 藷 + - 櫥 + - 螎 + - 蹏 + - 蟇 + - 譟 + - 簒 + - 彫 + - 琱 + - 鵰 + - 餹 + - 餻 + - 簷 + - 粦 + - 燐 + - 緐 + - 幑 + - 蹧 + - 粇 + - 穅 + - 臋 + - 籐 + - 繙 + - 飜 + - 孼 + - 蠏 + - 燿 + - 蝡 + - 稬 + - 穤 + - 惷 + - 覇 + - 鑵 + - 戹 + - 阨 + - 剳 + - 帀 + - 巵 + - 亙 + - 佇 + - 竚 + - 穽 + - 岅 + - 虯 + - 𦍑 + - 羗 + - 啎 + - 姙 + - 㘭 + - 袟 + - 袠 + - 逈 + - 㒺 + - 犛 + - 氂 + - 偘 + - 甕 + - 罋 + - 冺 + - 姍 + - 蝨 + - 琺 + - 瑇 + - 尅 + - 梔 + - 斮 + - 斲 + - 斵 + - 暱 + - 毘 + - 蝱 + - 吚 + - 哶 + - 峝 + - 粃 + - 竢 + - 狥 + - 秈 + - 烱 + - 㳄 + - 袵 + - 盇 + - 涖 + - 蒞 + - 碪 + - 蠔 + - 唕 + - 倐 + - 儵 + - 雋 + - 皐 + - 臯 + - 衂 + - 䶊 + - 臙 + - 獧 + - 痾 + - 皰 + - 湼 + - 澣 + - 濬 + - 塚 + - 襢 + - 娿 + - 勅 + - 勑 + - 戞 + - 廐 + - 廄 + - 眥 + - 覜 + - 勗 + - 啗 + - 噉 + - 傯 + - 挱 + - 㥫 + - 惥 + - 慂 + - 陻 + - 蕚 + - 萲 + - 蕿 + - 蘐 + - 藼 + - 櫂 + - 箠 + - 槨 + - 啑 + - 蹠 + - 蚘 + - 痐 + - 蛕 + - 蜖 + - 瘖 + - 遯 + - 醃 + - 飱 + - 冪 + - 簑 + - 枏 + - 柟 + - 檝 + - 楥 + - 矴 + - 椗 + - 嘷 + - 獋 + - 粺 + - 䈰 + - 諐 + - 齶 + - 堘 + - 疿 + - 雝 + - 秔 + - 稉 + - 槀 + - 搉 + - 廝 + - 叡 + - 嘠 + - 蜋 + - 筯 + - 篛 + - 麞 + - 糉 + - 緥 + - 璿 + - 髥 + - 臕 + - 餈 + - 剹 + - 橜 + - 罇 + - 蜺 + - 矙 + - 憇 + - 翺 + - 饍 + - 瞖 + - 羴 + - 羶 + - 爕 + - 繦 + - 騌 + - 鬉 + - 騣 + - 蔾 + - 䠀 + - 簮 + - 躕 + - 蹵 + - 䝔 + - 貛 + - 鼴 + - 麐 + - 塡 + - あ + - い + - う + - え + - お + - か + - き + - く + - け + - こ + - さ + - し + - す + - せ + - そ + - た + - ち + - つ + - て + - と + - な + - に + - ぬ + - ね + - の + - は + - ひ + - ふ + - へ + - ほ + - ま + - み + - む + - め + - も + - や + - ゆ + - よ + - ら + - り + - る + - れ + - ろ + - わ + - を + - ん + - が + - ぎ + - ぐ + - げ + - ご + - ざ + - じ + - ず + - ぜ + - ぞ + - だ + - ぢ + - づ + - で + - ど + - ば + - び + - ぶ + - べ + - ぼ + - ぱ + - ぴ + - ぷ + - ぺ + - ぽ + - ぁ + - ぃ + - ぅ + - ぇ + - ぉ + - っ + - ゃ + - ゅ + - ょ + - ゎ + - ゕ + - ゖ + - ア + - イ + - ウ + - エ + - オ + - カ + - キ + - ク + - ケ + - コ + - サ + - シ + - ス + - セ + - ソ + - タ + - チ + - ツ + - テ + - ト + - ナ + - ニ + - ヌ + - ネ + - ノ + - ハ + - ヒ + - フ + - ヘ + - ホ + - マ + - ミ + - ム + - メ + - モ + - ヤ + - ユ + - ヨ + - ラ + - リ + - ル + - レ + - ロ + - ワ + - ヲ + - ン + - ガ + - ギ + - グ + - ゲ + - ゴ + - ザ + - ジ + - ズ + - ゼ + - ゾ + - ダ + - ヂ + - ヅ + - デ + - ド + - バ + - ビ + - ブ + - ベ + - ボ + - パ + - ピ + - プ + - ペ + - ポ + - ァ + - ィ + - ゥ + - ェ + - ォ + - ッ + - ャ + - ュ + - ョ + - ヮ + - ヵ + - ヶ + - ヷ + - ヸ + - ヹ + - ヺ + - ・ + - ー + - ヽ + - ヾ + - ヿ + - ア + - イ + - ウ + - エ + - オ + - カ + - キ + - ク + - ケ + - コ + - サ + - シ + - ス + - セ + - ソ + - タ + - チ + - ツ + - テ + - ト + - ナ + - ニ + - ヌ + - ネ + - ノ + - ハ + - ヒ + - フ + - ヘ + - ホ + - マ + - ミ + - ム + - メ + - モ + - ヤ + - ユ + - ヨ + - ラ + - リ + - ル + - レ + - ロ + - ワ + - ヲ + - ン + - ゙ + - ゚ + - ァ + - ィ + - ゥ + - ェ + - ォ + - ッ + - ャ + - ュ + - ョ + - 円 + - 気 + - 糸 + - 絵 + - 楽 + - 帰 + - 戸 + - 広 + - 黒 + - 図 + - 線 + - 読 + - 売 + - 歩 + - 毎 + - 亜 + - 悪 + - 圧 + - 扱 + - 囲 + - 為 + - 壱 + - 隠 + - 栄 + - 営 + - 駅 + - 塩 + - 縁 + - 艶 + - 応 + - 桜 + - 穏 + - 仮 + - 価 + - 箇 + - ゑ + - ゝ + - ゞ + - ヰ + - ヴ + - ㈱ + - 両 + - 丼 + - 丿 + - 亀 + - 仏 + - 伝 + - 侶 + - 俤 + - 値 + - 倶 + - 倹 + - 偐 + - 偽 + - 働 + - 儛 + - 兌 + - 児 + - 冑 + - 冨 + - 凞 + - 処 + - 凪 + - 別 + - 剣 + - 剤 + - 剰 + - 劔 + - 労 + - 勧 + - 勲 + - 匁 + - 匂 + - 匲 + - 卍 + - 単 + - 厳 + - 収 + - 呂 + - 呉 + - 呑 + - 呰 + - 唖 + - 喚 + - 喩 + - 喰 + - 噛 + - 噺 + - 嚢 + - 囃 + - 団 + - 圀 + - 圏 + - 堀 + - 堺 + - 塀 + - 塁 + - 塙 + - 増 + - 墺 + - 壊 + - 壌 + - 壷 + - 変 + - 奨 + - 姫 + - 娯 + - 嫐 + - 嬢 + - 嬾 + - 孁 + - 宍 + - 実 + - 宮 + - 寔 + - 寛 + - 対 + - 専 + - 尭 + - 峠 + - 崋 + - 嶋 + - 巀 + - 巌 + - 巣 + - 巻 + - 帯 + - 幇 + - 庁 + - 廃 + - 廻 + - 弉 + - 弌 + - 弐 + - 弖 + - 弾 + - 従 + - 徳 + - 徴 + - 忯 + - 恵 + - 悩 + - 惣 + - 懐 + - 懽 + - 戦 + - 戯 + - 戻 + - 払 + - 抜 + - 択 + - 拝 + - 拠 + - 拡 + - 拵 + - 挙 + - 挿 + - 捗 + - 捜 + - 掟 + - 掲 + - 掻 + - 揃 + - 換 + - 揺 + - 摂 + - 撃 + - 撹 + - 斉 + - 斎 + - 旛 + - 旡 + - 晧 + - 晩 + - 暁 + - 暦 + - 曽 + - 杁 + - 杢 + - 杣 + - 杮 + - 枓 + - 枠 + - 枡 + - 柾 + - 栂 + - 栃 + - 桝 + - 桟 + - 桾 + - 梛 + - 梱 + - 梲 + - 梶 + - 椙 + - 検 + - 椥 + - 楕 + - 楡 + - 楢 + - 榊 + - 榎 + - 槇 + - 様 + - 槙 + - 槻 + - 樋 + - 権 + - 樫 + - 橿 + - 檥 + - 欅 + - 歎 + - 歓 + - 歯 + - 歳 + - 歴 + - 毀 + - 沖 + - 沢 + - 浄 + - 涙 + - 済 + - 渉 + - 渋 + - 渓 + - 渕 + - 満 + - 滝 + - 漑 + - 潅 + - 澁 + - 瀞 + - 瀬 + - 焔 + - 焼 + - 煇 + - 煕 + - 煥 + - 燗 + - 爼 + - 犠 + - 狛 + - 猟 + - 獏 + - 獣 + - 珊 + - 瑤 + - 甞 + - 畑 + - 畠 + - 畳 + - 畷 + - 畺 + - 痩 + - 癪 + - 発 + - 県 + - 眞 + - 砕 + - 碕 + - 礒 + - 禖 + - 禿 + - 稲 + - 穂 + - 穣 + - 竃 + - 竜 + - 竴 + - 笹 + - 筈 + - 筬 + - 筰 + - 箆 + - 箏 + - 箙 + - 篠 + - 篭 + - 簺 + - 籾 + - 粂 + - 粋 + - 粛 + - 粧 + - 糺 + - 紬 + - 絁 + - 経 + - 絖 + - 絣 + - 絽 + - 継 + - 続 + - 綟 + - 総 + - 縄 + - 縅 + - 縒 + - 縦 + - 繊 + - 繋 + - 繍 + - 繝 + - 繧 + - 纐 + - 纒 + - 罠 + - 罧 + - 罵 + - 羂 + - 羇 + - 羨 + - 聟 + - 聡 + - 聨 + - 聴 + - 脇 + - 脳 + - 膣 + - 膵 + - 臈 + - 臓 + - 臥 + - 舎 + - 舖 + - 舗 + - 舘 + - 芿 + - 苅 + - 茲 + - 荊 + - 荘 + - 莬 + - 莵 + - 菫 + - 萠 + - 蔵 + - 薗 + - 薫 + - 薬 + - 薭 + - 蘊 + - 蛍 + - 蝋 + - 蝿 + - 蟷 + - 衞 + - 衵 + - 袙 + - 袞 + - 袰 + - 袴 + - 袿 + - 裃 + - 裡 + - 裲 + - 褄 + - 褌 + - 襴 + - 襷 + - 覗 + - 覚 + - 覧 + - 観 + - 訳 + - 証 + - 諌 + - 諚 + - 諟 + - 諡 + - 諮 + - 譛 + - 譲 + - 讃 + - 豅 + - 豊 + - 豎 + - 賎 + - 賛 + - 贔 + - 躙 + - 躰 + - 転 + - 軽 + - 輌 + - 辥 + - 辺 + - 辻 + - 込 + - 逓 + - 遅 + - 遙 + - 邉 + - 郷 + - 酔 + - 醗 + - 醤 + - 醸 + - 釈 + - 鉄 + - 鉇 + - 鉤 + - 鉱 + - 鉾 + - 銈 + - 銕 + - 銭 + - 鋲 + - 鋳 + - 鋺 + - 錆 + - 錍 + - 錣 + - 錬 + - 錵 + - 鍑 + - 鍮 + - 鍼 + - 鎌 + - 鎗 + - 鎚 + - 鎹 + - 鐇 + - 鐚 + - 鐡 + - 鑁 + - 鑑 + - 鑚 + - 鑢 + - 閇 + - 関 + - 閦 + - 闘 + - 陥 + - 険 + - 隣 + - 隷 + - 雑 + - 雫 + - 霊 + - 靜 + - 靫 + - 靭 + - 靱 + - 鞄 + - 鞆 + - 頚 + - 頬 + - 頴 + - 頼 + - 顕 + - 顗 + - 餝 + - 饂 + - 駄 + - 駆 + - 駈 + - 騒 + - 験 + - 騨 + - 髄 + - 髙 + - 髪 + - 髷 + - 鯖 + - 鯰 + - 鯱 + - 鰒 + - 鰯 + - 鰰 + - 鳰 + - 鴎 + - 鴫 + - 鵄 + - 鵞 + - 鵺 + - 鶏 + - 鹸 + - 麁 + - 麺 + - 麿 + - 黌 + - 黙 + - 鼈 + - 齢 + - 龗 + - 縯 + - 蟅 + - 坖 + - 祂 + - 鼂 + - 鱚 + - 蛻 + - 屌 + - 呾 + - 煔 + - 吶 + - 扥 + - 蚖 + - 銂 + - 尃 + - 夋 + - 鵼 + - 徬 + - 寳 + - 彡 + - 舨 + - 湳 + - 麼 + - 鍈 + - 崈 + - 鱣 + - 盺 + - 拺 + - 瑥 + - 茷 + - 焻 + - 奀 + - 驎 + - 鱰 + - 砢 + - 痟 + - 廱 + - 僜 + - 瘺 + - 鱊 + - 擥 + - 嶰 + - 淓 + - 跅 + - 浵 + - 媗 + - 璦 + - 煠 + - 檊 + - 媃 + - 峅 + - 躄 + - 鉟 + - 塽 + - 蟴 + - 鯮 + - 弍 + - 烒 + - 鵵 + - 妑 + - 孋 + - 蚡 + - 恊 + - 輭 + - 廞 + - 產 + - 曅 + - 盜 + - 騤 + - 囪 + - 鱀 + - 茇 + - 葊 + - 逹 + - 狓 + - 崢 + - 趖 + - 凃 + - 羙 + - 鮸 + - 昞 + - 楿 + - 渽 + - 圗 + - 麪 + - 屇 + - 鍉 + - 葝 + - 沯 + - 爭 + - 幵 + - 筭 + - 寊 + - 銋 + - 貮 + - 鎭 + - 熺 + - 昜 + - 鍱 + - 墬 + - 愒 + - 磺 + - 嚈 + - 稘 + - 珮 + - 釆 + - 殑 + - 鍩 + - 䲁 + - 蕷 + - 鐿 + - 僡 + - 佹 + - 輶 + - 冴 + - 襶 + - 賔 + - 猙 + - 辧 + - 絛 + - 磾 + - 韁 + - 螔 + - 譳 + - 礑 + - 鋱 + - 魩 + - 嚗 + - 棆 + - 牆 + - 敟 + - 柶 + - 瓛 + - 魣 + - 巎 + - 轘 + - 襌 + - 枼 + - 鸌 + - 逺 + - 錏 + - 縡 + - 帢 + - 騄 + - 媼 + - 埅 + - 鄤 + - 萐 + - 祙 + - 旼 + - 詥 + - 鶲 + - 燉 + - 卲 + - 銱 + - 庲 + - 伱 + - 氽 + - 嵿 + - 挻 + - 煵 + - 窋 + - 鐤 + - 鮊 + - 鱬 + - 鰧 + - 嬤 + - 譞 + - 諲 + - 脭 + - 悳 + - 崘 + - 阭 + - 內 + - 袾 + - 冚 + - 壐 + - 咗 + - 礠 + - 孮 + - 痲 + - 埈 + - 肹 + - 鰮 + - 鮓 + - 濊 + - 塜 + - 凜 + - 蒢 + - 噰 + - 桼 + - 峍 + - 焴 + - 鶒 + - 鋮 + - 綠 + - 鶹 + - 熿 + - 毴 + - 咟 + - 嘥 + - 睺 + - 繡 + - 郎 + - 瘞 + - 鉶 + - 蔎 + - 秠 + - 緤 + - 蝀 + - 躝 + - 蟜 + - 繃 + - 囮 + - 墫 + - 乭 + - 胊 + - 濙 + - 瘓 + - 榣 + - 鑛 + - 鐫 + - 嶴 + - 甹 + - 坮 + - 銾 + - 蒭 + - 睜 + - 俋 + - 餠 + - 榢 + - 蓳 + - 盋 + - 堷 + - 鍏 + - 苝 + - 巛 + - 蚵 + - 暏 + - 熤 + - 嬨 + - 墎 + - 鏽 + - 戶 + - 菺 + - 膮 + - 熖 + - 睪 + - 栜 + - 捱 + - 榗 + - 鍷 + - 曧 + - 犽 + - 韑 + - 袓 + - 䖝 + - 焄 + - 喦 + - 髲 + - 疌 + - 㴪 + - 侊 + - 貐 + - 蕅 + - 禠 + - 蕑 + - 囯 + - 暊 + - 儞 + - 佋 + - 柎 + - 㐱 + - 鰤 + - 苳 + - 鱥 + - 謤 + - 遶 + - 眀 + - 鑀 + - 羋 + - 顏 + - 陜 + - 銩 + - 黶 + - 苼 + - 蒤 + - 棛 + - 儫 + - 咁 + - 抦 + - 衚 + - 棩 + - 焿 + - 脫 + - 麅 + - 玏 + - 埧 + - 淸 + - 黁 + - 淽 + - 彠 + - 鮨 + - 沜 + - 糀 + - 厓 + - 楧 + - 嶌 + - 簹 + - 檵 + - 鱇 + - 嶬 + - 廸 + - 卽 + - 樀 + - 贌 + - 酼 + - 籛 + - 沒 + - 晸 + - 諪 + - 蕡 + - 妏 + - 鄋 + - 蒍 + - 奧 + - 抇 + - 蓨 + - 薆 + - 鱷 + - 巘 + - 䝉 + - 亰 + - 寈 + - 槩 + - 誒 + - 麴 + - 蕟 + - 溎 + - 蘗 + - 榦 + - 斿 + - 暟 + - 炲 + - 拚 + - 娖 + - 繖 + - 橚 + - 寜 + - 爀 + - 饟 + - 悅 + - 鯏 + - 彜 + - 眾 + - 葯 + - 嬝 + - 埮 + - 獇 + - 馛 + - 溙 + - 瀦 + - 熼 + - 硓 + - 鈢 + - 樆 + - 輬 + - 鰜 + - 蔘 + - 渙 + - 澔 + - 嗮 + - 旉 + - 籜 + - 媊 + - 燘 + - 儚 + - 頹 + - 缽 + - 俽 + - 逨 + - 鱓 + - 郞 + - 歊 + - 杴 + - 珡 + - 杋 + - 醁 + - 鰏 + - 鵾 + - 鐽 + - 鮋 + - 巶 + - 荅 + - 薾 + - 囓 + - 蹻 + - 獎 + - 禑 + - 鎓 + - 榲 + - 僴 + - 綞 + - 尓 + - 敭 + - 曔 + - 褔 + - 鬅 + - 亊 + - 鏦 + - 蓘 + - 裬 + - 鱲 + - 薡 + - 鰗 + - 箑 + - 鬪 + - 縂 + - 璸 + - 甙 + - 茮 + - 辵 + - 岻 + - 覿 + - 滈 + - 鯶 + - 鑂 + - 囶 + - 舺 + - 溋 + - 拋 + - 菾 + - 敾 + - 虨 + - 綝 + - 蝍 + - 醂 + - 禨 + - 賹 + - 廧 + - 絕 + - 槗 + - 徫 + - 鎔 + - 曮 + - 蠂 + - 捒 + - 堈 + - 莕 + - 蓪 + - 敎 + - 禃 + - 櫱 + - 綧 + - 瀶 + - 逌 + - 浤 + - 碻 + - 刄 + - 逤 + - 剏 + - 氹 + - 菈 + - 娫 + - 蜛 + - 嵗 + - 糎 + - 螶 + - 譓 + - 鏳 + - 嵙 + - 瑊 + - 隲 + - 檨 + - 緈 + - 畵 + - 砯 + - 簗 + - 彅 + - 鰺 + - 騋 + - 窶 + - 嚒 + - 嵻 + - 尙 + - 頵 + - 槰 + - 虉 + - 醞 + - 巂 + - 彔 + - 偊 + - 畇 + - 鱨 + - 妸 + - 塲 + - 畐 + - 鈫 + - 錟 + - 磪 + - 摠 + - 彥 + - 璙 + - 囝 + - 寗 + - 耎 + - 鮡 + - 蘓 + - 弅 + - 焃 + - 飥 + - 戙 + - 塰 + - 儱 + - 槺 + - 噏 + - 魟 + - 禵 + - 佧 + - 咘 + - 盪 + - 瑈 + - 鉲 + - 睭 + - 鏌 + - 鼇 + - 郋 + - 魮 + - 朖 + - 滽 + - 渃 + - 滙 + - 熯 + - 醿 + - 鎅 + - 褀 + - 鬬 + - 巄 + - 螥 + - 眜 + - 釚 + - 柉 + - 壎 + - 峇 + - 姸 + - 唭 + - 鮜 + - 鈖 + - 嫈 + - 壄 + - 洤 + - 黃 + - 伕 + - 堦 + - 嶔 + - 鮰 + - 鞞 + - 漎 + - 鉓 + - 鮗 + - 壴 + - 阝 + - 妀 + - 矽 + - 獢 + - 倗 + - 銪 + - 鴓 + - 橒 + - 凈 + - 哖 + - 屚 + - 偍 + - 瑺 + - 媯 + - 淍 + - 驌 + - 椇 + - 赬 + - 薐 + - 糹 + - 碽 + - 濲 + - 釭 + - 晭 + - 纕 + - 寖 + - 閞 + - 歿 + - 呎 + - 鶆 + - 屄 + - 櫿 + - 犎 + - 旲 + - 㙟 + - 龎 + - 翜 + - 螾 + - 說 + - 衜 + - 泆 + - 軎 + - 鵂 + - 荎 + - 嚧 + - 硂 + - 桖 + - 褭 + - 筊 + - 鰷 + - 秳 + - 戩 + - 轀 + - 鬹 + - 飬 + - 卋 + - 暸 + - 狦 + - 搢 + - 娋 + - 鏴 + - 溫 + - 毉 + - 淰 + - 謩 + - 餺 + - 鵙 + - 鳽 + - 鮀 + - 狶 + - 氻 + - 轝 + - 妺 + - 袛 + - 蓭 + - 梂 + - 娛 + - 牼 + - 稅 + - 兿 + - 玾 + - 煚 + - 僩 + - 鶿 + - 鬄 + - 崠 + - 鉆 + - 鯓 + - 蚢 + - 庀 + - 鵟 + - 坣 + - 殼 + - 悞 + - 熅 + - 敻 + - 鍠 + - 曶 + - 愼 + - 搳 + - 姃 + - 砳 + - 槼 + - 臞 + - 韾 + - 靑 + - 鸊 + - 薲 + - 虛 + - 蠄 + - 啟 + - 鶺 + - 苺 + - 滾 + - 褞 + - 仺 + - 胇 + - 憻 + - 郳 + - 烉 + - 驩 + - 冇 + - 枖 + - 夌 + - 搵 + - 匸 + - 盨 + - 櫾 + - 霤 + - 麊 + - 貒 + - 噓 + - 嗢 + - 笩 + - 晈 + - 冂 + - 銳 + - 毿 + - 慜 + - 囧 + - 閜 + - 娸 + - 庢 + - 壆 + - 馯 + - 桱 + - 兗 + - 葃 + - 侅 + - 煐 + - 鐦 + - 藸 + - 鷎 + - 嵰 + - 逎 + - 弒 + - 匋 + - 鐭 + - 廔 + - 砩 + - 孆 + - 灴 + - 伷 + - 兪 + - 鴗 + - 澯 + - 幚 + - 旙 + - 勻 + - 礽 + - 婑 + - 鱮 + - 娍 + - 銶 + - 吳 + - 鍟 + - 仼 + - 鳧 + - 彞 + - 娽 + - 昛 + - 鰼 + - 剎 + - 佉 + - 鉏 + - 偸 + - 鰆 + - 讙 + - 橪 + - 啱 + - 岀 + - 孻 + - 釪 + - 乹 + - 鈳 + - 漇 + - 檦 + - 埻 + - 祿 + - 爌 + - 禇 + - 鱵 + - 㸃 + - 梉 + - 燝 + - 霙 + - 炁 + - 飮 + - 蠙 + - 勷 + - 鵎 + - 儥 + - 鐠 + - 唻 + - 廰 + - 嚿 + - 嵕 + - 墱 + - 紑 + - 搖 + - 瘜 + - 皝 + - 鸑 + - 瀁 + - 粵 + - 撚 + - 巑 + - 梀 + - 啯 + - 眛 + - 諴 + - 夊 + - 僙 + - 鍝 + - 裖 + - 鮣 + - 凬 + - 飡 + - 灊 + - 橓 + - 嫳 + - 筳 + - 咑 + - 粍 + - 瓑 + - 璌 + - 伃 + - 閰 + - 傜 + - 黐 + - 謢 + - 驒 + - 橫 + - 蛯 + - 寕 + - 蠵 + - 瞓 + - 旳 + - 翏 + - 硏 + - 寯 + - 韡 + - 楤 + - 鰃 + - 朿 + - 侞 + - 鵯 + - 愨 + - 祹 + - 厔 + - 丌 + - 盩 + - 謏 + - 魕 + - 啣 + - 閱 + - 曺 + - 枛 + - 罉 + - 卐 + - 樻 + - 鷉 + - 鯒 + - 鋡 + - 磱 + - 枱 + - 攴 + - 蠷 + - 穈 + - 嚟 + - 檽 + - 趐 + - 奐 + - 鋐 + - 檇 + - 薀 + - 峼 + - 咭 + - 訔 + - 韠 + - 鑴 + - 鸐 + - 唃 + - 捦 + - 鸜 + - 誴 + - 罳 + - 璄 + - 暃 + - 夀 + - 賨 + - 鞥 + - 鈊 + - 灡 + - 鮍 + - 懮 + - 籣 + - 昐 + - 陁 + - 襾 + - 鮠 + - 鈏 + - 囍 + - 婯 + - 艔 + - 貭 + - 䰾 + - 姁 + - 禼 + - 堖 + - 鋶 + - 仛 + - 鏷 + - 謜 + - 鑅 + - 忬 + - 蘶 + - 謠 + - 觙 + - 奫 + - 狟 + - 泩 + - 桙 + - 飈 + - 垰 + - 啍 + - 嚞 + - 鯕 + - 蒧 + - 榞 + - 徸 + - 璹 + - 揔 + - 欉 + - 魞 + - 菶 + - 玧 + - 鳯 + - 廍 + - 侚 + - 岰 + - 岧 + - 鋕 + - 凵 + - 彣 + - 崱 + - 媜 + - 倢 + - 鵐 + - 砋 + - 鷚 + - 鱠 + - 鮻 + - 繻 + - 摵 + - 贓 + - 磵 + - 錻 + - 痠 + - 粩 + - 胅 + - 奣 + - 塨 + - 瀠 + - 鸘 + - 啚 + - 娳 + - 霶 + - 壔 + - 峚 + - 甂 + - 廁 + - 覌 + - 鰂 + - 猳 + - 鱻 + - 盫 + - 裿 + - 杬 + - 歛 + - 澋 + - 蘞 + - 嵜 + - 尐 + - 旽 + - 鉌 + - 鎛 + - 豿 + - 凖 + - 榤 + - 禓 + - 龝 + - 悧 + - 鷟 + - 鮟 + - 吋 + - 喢 + - 岪 + - 吥 + - 漵 + - 頠 + - 豔 + - 巿 + - 鑨 + - 醣 + - 熳 + - 懍 + - 湥 + - 檡 + - 韺 + - 戱 + - 緖 + - 鐈 + - 凉 + - 緃 + - 鮹 + - 媐 + - 爯 + - 巆 + - 褍 + - 鐬 + - 昍 + - 扙 + - 鍳 + - 芛 + - 蟳 + - 嬅 + - 糬 + - 吔 + - 塭 + - 譿 + - 冧 + - 鏓 + - 嶪 + - 嗹 + - 椵 + - 姀 + - 閿 + - 褧 + - 錞 + - 玆 + - 笘 + - 篔 + - 萡 + - 鶡 + - 螐 + - 鮄 + - 鰟 + - 脷 + - 啲 + - 杤 + - 蓚 + - 尗 + - 娎 + - 殟 + - 淥 + - 蝚 + - 蓧 + - 彐 + - 嚤 + - 銍 + - 囒 + - 坶 + - 淩 + - 鶼 + - 鱂 + - 喼 + - 燫 + - 肏 + - 姵 + - 廌 + - 禟 + - 籝 + - 迵 + - 嵨 + - 堮 + - 蟌 + - 憍 + - 廕 + - 蜑 + - 緁 + - 唘 + - 竩 + - 崙 + - 璚 + - 粄 + - 栨 + - 罈 + - 梫 + - 貤 + - 藔 + - 蜯 + - 訁 + - 斖 + - 煶 + - 馦 + - 妠 + - 閟 + - 疕 + - 夆 + - 鎪 + - 膥 + - 澻 + - 嘢 + - 嚐 + - 靁 + - 鎻 + - 鰛 + - 穵 + - 烋 + - 縕 + - 褎 + - 疒 + - 壠 + - 溼 + - 圂 + - 咅 + - 鯭 + - 鯙 + - 磘 + - 玨 + - 珤 + - 朊 + - 蚼 + - 濶 + - 薞 + - 嚩 + - 丟 + - 嫺 + - 鯻 + - 椲 + - 鰕 + - 刂 + - 蠘 + - 踎 + - 瀴 + - 琁 + - 鰶 + - 瑴 + - 肜 + - 㐂 + - 欥 + - 媺 + - 竻 + - 讚 + - 𣇉 + - 裵 + - 緜 + - 廩 + - 齧 + - 叄 + - 俌 + - 厰 + - 滀 + - 錄 + - 鷫 + - 鯗 + - 攞 + - 姌 + - 蔝 + - 幷 + - 縤 + - 屻 + - 鯃 + - 雞 + - 纁 + - 嫲 + - 嵮 + - 屭 + - 嶃 + - 跩 + - 鋗 + - 蕢 + - 篊 + - 俬 + - 淎 + - 暻 + - 鏻 + - 憓 + - 玗 + - 溈 + - 笭 + - 糢 + - 勳 + - 閒 + - 沍 + - 咾 + - 鉷 + - 蘵 + - 俁 + - 崵 + - 毸 + - 苪 + - 掙 + - 鴡 + - 萭 + - 俴 + - 屜 + - 蒾 + - 艹 + - 剷 + - 慍 + - 朮 + - 枴 + - 氳 + - 猓 + - 甽 + - 箝 + - 譁 + - 贗 + - 迆 + - 鈽 + - 鍊 + - 鍰 + - 鏍 + - 靦 + - 餽 + - 丮 + - 丱 + - 仜 + - 仩 + - 伬 + - 伔 + - 仱 + - 伀 + - 伻 + - 佢 + - 佒 + - 侀 + - 侇 + - 佷 + - 佌 + - 佪 + - 侐 + - 侜 + - 俓 + - 侲 + - 俉 + - 侻 + - 侳 + - 俇 + - 倅 + - 倇 + - 倰 + - 倛 + - 倳 + - 倷 + - 俷 + - 倠 + - 偯 + - 偞 + - 偠 + - 偋 + - 偝 + - 偛 + - 偢 + - 偅 + - 偟 + - 偩 + - 偫 + - 傛 + - 傔 + - 傞 + - 傋 + - 傌 + - 傎 + - 傝 + - 偨 + - 傂 + - 傽 + - 傿 + - 僆 + - 傮 + - 僄 + - 僈 + - 傰 + - 僁 + - 傱 + - 僋 + - 僗 + - 僛 + - 僪 + - 僝 + - 僓 + - 僿 + - 儃 + - 儰 + - 僸 + - 僶 + - 僾 + - 儌 + - 僽 + - 儜 + - 儓 + - 儗 + - 儑 + - 儢 + - 儤 + - 儠 + - 儸 + - 儹 + - 儽 + - 冓 + - 冘 + - 冞 + - 凊 + - 凅 + - 凔 + - 刌 + - 刉 + - 刓 + - 刜 + - 刞 + - 刵 + - 刲 + - 剆 + - 刱 + - 剉 + - 剚 + - 剒 + - 剫 + - 剭 + - 剬 + - 剺 + - 剸 + - 剻 + - 剼 + - 劀 + - 劋 + - 劖 + - 劘 + - 劗 + - 劙 + - 劦 + - 勴 + - 匊 + - 匢 + - 匰 + - 匴 + - 匷 + - 匽 + - 卌 + - 卼 + - 厎 + - 厒 + - 厗 + - 厞 + - 厜 + - 厤 + - 厬 + - 厹 + - 吰 + - 吷 + - 吪 + - 呿 + - 咈 + - 呫 + - 呺 + - 呥 + - 呬 + - 呴 + - 茍 + - 咷 + - 咮 + - 咶 + - 哅 + - 咠 + - 咢 + - 唦 + - 唗 + - 唒 + - 哤 + - 唚 + - 唈 + - 哫 + - 唅 + - 唴 + - 啢 + - 唶 + - 啒 + - 啅 + - 唌 + - 唲 + - 喨 + - 喥 + - 喭 + - 噅 + - 喓 + - 喣 + - 啽 + - 喌 + - 嗃 + - 嗛 + - 嗋 + - 嗀 + - 喿 + - 喍 + - 嗏 + - 嗕 + - 嗈 + - 嘕 + - 嘒 + - 嗼 + - 嘐 + - 嘓 + - 嘂 + - 嗺 + - 嘝 + - 嘄 + - 嗿 + - 噈 + - 噊 + - 噆 + - 噚 + - 嘳 + - 嘽 + - 嘾 + - 噮 + - 噳 + - 噣 + - 噭 + - 噞 + - 嚌 + - 嚍 + - 嚃 + - 嚘 + - 嚜 + - 嚫 + - 嚪 + - 嚬 + - 嚲 + - 嚵 + - 嚽 + - 嚾 + - 囆 + - 囅 + - 囋 + - 囗 + - 圁 + - 圞 + - 圠 + - 坁 + - 坅 + - 坲 + - 坱 + - 垀 + - 坴 + - 垗 + - 垝 + - 垔 + - 垘 + - 垽 + - 垼 + - 埢 + - 埶 + - 堩 + - 堣 + - 塈 + - 堥 + - 塓 + - 塉 + - 塯 + - 塕 + - 塼 + - 墆 + - 塿 + - 塴 + - 墋 + - 塺 + - 墝 + - 墯 + - 壈 + - 墽 + - 壖 + - 壝 + - 壛 + - 壾 + - 壿 + - 夃 + - 夎 + - 夒 + - 夗 + - 奅 + - 奊 + - 奰 + - 奲 + - 奼 + - 妦 + - 妎 + - 妢 + - 妐 + - 妵 + - 姏 + - 姎 + - 㚷 + - 姡 + - 姺 + - 姼 + - 娭 + - 婐 + - 婟 + - 婥 + - 婓 + - 婗 + - 媔 + - 媟 + - 媢 + - 婸 + - 媦 + - 媥 + - 媬 + - 媕 + - 娷 + - 嫇 + - 嫋 + - 媰 + - 媻 + - 嫮 + - 嫥 + - 嫢 + - 嫛 + - 嫿 + - 嫴 + - 嫷 + - 嫶 + - 嬎 + - 嬓 + - 嬐 + - 嬲 + - 嬽 + - 孈 + - 屘 + - 孲 + - 孷 + - 宎 + - 宨 + - 寪 + - 寍 + - 寋 + - 寑 + - 寙 + - 寠 + - 寱 + - 尌 + - 尒 + - 尟 + - 尰 + - 尳 + - 屖 + - 屔 + - 屝 + - 屧 + - 屩 + - 屮 + - 屴 + - 岏 + - 岋 + - 岉 + - 岒 + - 岮 + - 岤 + - 岯 + - 岟 + - 岝 + - 峐 + - 峌 + - 峞 + - 峉 + - 峊 + - 峬 + - 峮 + - 峷 + - 崝 + - 崨 + - 崥 + - 崏 + - 崰 + - 崣 + - 崷 + - 嵃 + - 嵑 + - 崳 + - 崺 + - 嵂 + - 嵱 + - 嵣 + - 嵥 + - 嵞 + - 嶀 + - 嵽 + - 嶆 + - 嵺 + - 嵷 + - 嶊 + - 嶉 + - 嶈 + - 嵾 + - 嶕 + - 嶜 + - 嶡 + - 嶚 + - 嶞 + - 嶱 + - 嶩 + - 嶵 + - 嶭 + - 巃 + - 巏 + - 巕 + - 巟 + - 巹 + - 帊 + - 帗 + - 帟 + - 帣 + - 帠 + - 帤 + - 帩 + - 帾 + - 帴 + - 幏 + - 幎 + - 幓 + - 幩 + - 幝 + - 幠 + - 幧 + - 幨 + - 幦 + - 幭 + - 幰 + - 庂 + - 庉 + - 庌 + - 庈 + - 庰 + - 庛 + - 庣 + - 庨 + - 庮 + - 庪 + - 庬 + - 庴 + - 廅 + - 廇 + - 廘 + - 廗 + - 廎 + - 廜 + - 緳 + - 廦 + - 廥 + - 廮 + - 廯 + - 蠯 + - 廾 + - 弚 + - 弝 + - 弣 + - 弤 + - 弮 + - 弳 + - 彃 + - 彉 + - 彋 + - 彏 + - 彯 + - 彴 + - 彸 + - 彾 + - 徦 + - 徥 + - 徯 + - 徲 + - 徾 + - 徿 + - 忀 + - 忁 + - 忔 + - 忕 + - 忨 + - 忣 + - 忷 + - 忥 + - 怭 + - 怲 + - 怋 + - 怴 + - 怗 + - 怚 + - 怞 + - 怬 + - 怢 + - 怐 + - 怮 + - 怓 + - 怷 + - 怹 + - 恲 + - 恞 + - 恅 + - 恇 + - 恉 + - 恛 + - 恌 + - 恀 + - 恟 + - 悀 + - 悁 + - 悕 + - 悗 + - 悇 + - 悊 + - 悐 + - 悾 + - 悺 + - 惓 + - 惤 + - 惈 + - 悷 + - 惉 + - 悹 + - 惌 + - 惢 + - 惄 + - 愊 + - 愖 + - 愅 + - 惵 + - 愓 + - 惸 + - 惼 + - 惾 + - 慉 + - 慅 + - 愶 + - 愲 + - 愮 + - 愯 + - 愬 + - 慁 + - 慞 + - 慱 + - 慒 + - 慓 + - 慲 + - 憀 + - 慴 + - 慔 + - 慺 + - 慛 + - 憃 + - 慹 + - 憱 + - 憰 + - 憢 + - 憉 + - 憛 + - 憯 + - 憟 + - 憪 + - 憡 + - 憝 + - 憖 + - 懅 + - 憴 + - 懆 + - 懁 + - 憿 + - 憸 + - 憵 + - 憼 + - 懧 + - 懠 + - 懥 + - 懤 + - 懘 + - 懭 + - 懱 + - 懪 + - 懰 + - 懫 + - 懻 + - 戁 + - 戃 + - 戄 + - 戉 + - 戠 + - 酨 + - 戺 + - 扐 + - 扜 + - 扤 + - 扡 + - 扢 + - 抆 + - 抌 + - 抎 + - 抏 + - 扻 + - 抭 + - 抴 + - 拑 + - 抾 + - 抪 + - 抶 + - 抮 + - 挍 + - 挋 + - 挃 + - 拫 + - 拹 + - 挏 + - 挌 + - 拸 + - 挀 + - 拲 + - 捖 + - 挬 + - 挶 + - 揤 + - 捊 + - 挼 + - 挩 + - 捁 + - 挴 + - 捘 + - 捔 + - 捥 + - 掝 + - 掗 + - 掫 + - 掯 + - 捵 + - 掜 + - 捼 + - 掤 + - 掔 + - 掱 + - 揎 + - 揥 + - 揨 + - 揯 + - 揊 + - 揲 + - 揵 + - 摡 + - 揟 + - 揝 + - 揜 + - 揘 + - 揅 + - 揱 + - 搆 + - 搟 + - 搕 + - 搘 + - 搹 + - 搷 + - 搣 + - 搰 + - 搊 + - 搚 + - 摀 + - 搧 + - 搫 + - 摍 + - 摝 + - 摲 + - 摦 + - 摎 + - 摋 + - 摓 + - 摐 + - 摿 + - 摮 + - 摰 + - 撢 + - 撠 + - 撗 + - 撜 + - 撋 + - 撊 + - 撌 + - 撟 + - 擗 + - 擖 + - 擏 + - 擉 + - 撽 + - 擩 + - 擣 + - 擫 + - 擭 + - 擨 + - 擽 + - 擸 + - 攇 + - 攐 + - 攍 + - 攌 + - 攗 + - 攕 + - 攓 + - 攡 + - 攠 + - 攦 + - 攩 + - 攭 + - 攲 + - 攳 + - 敁 + - 敊 + - 敆 + - 敓 + - 敧 + - 敪 + - 敤 + - 敜 + - 敯 + - 敳 + - 敶 + - 敺 + - 敹 + - 敿 + - 斁 + - 斀 + - 斄 + - 斒 + - 斔 + - 斞 + - 斨 + - 斪 + - 斻 + - 旍 + - 旓 + - 旚 + - 旝 + - 旟 + - 昲 + - 昦 + - 昢 + - 晇 + - 晥 + - 晜 + - 晼 + - 晬 + - 暀 + - 暆 + - 暍 + - 暋 + - 暡 + - 暰 + - 暩 + - 曀 + - 曊 + - 曋 + - 曏 + - 曒 + - 曚 + - 曣 + - 曭 + - 朁 + - 朅 + - 朄 + - 朒 + - 朘 + - 朣 + - 朾 + - 朹 + - 朻 + - 朼 + - 杅 + - 杇 + - 杝 + - 杗 + - 枎 + - 杶 + - 枆 + - 枌 + - 柲 + - 枺 + - 枻 + - 柸 + - 柀 + - 柅 + - 柫 + - 柤 + - 柍 + - 柮 + - 柣 + - 柂 + - 柧 + - 栚 + - 桋 + - 桏 + - 栱 + - 栵 + - 栫 + - 栭 + - 栯 + - 栘 + - 栔 + - 梡 + - 梇 + - 梐 + - 桭 + - 梮 + - 楖 + - 梬 + - 梩 + - 桵 + - 梒 + - 椌 + - 椄 + - 棜 + - 棷 + - 棳 + - 棌 + - 椈 + - 楰 + - 棯 + - 椔 + - 棸 + - 楟 + - 楎 + - 楱 + - 楅 + - 楺 + - 楈 + - 楛 + - 楉 + - 楬 + - 椳 + - 楀 + - 楄 + - 楶 + - 楘 + - 榶 + - 槉 + - 榠 + - 榬 + - 榼 + - 榙 + - 榩 + - 榾 + - 榯 + - 槄 + - 榽 + - 榹 + - 槥 + - 槸 + - 樕 + - 樠 + - 槬 + - 槢 + - 樛 + - 樝 + - 槾 + - 樧 + - 槮 + - 樔 + - 槷 + - 橀 + - 樴 + - 橉 + - 橧 + - 樲 + - 橨 + - 橝 + - 橭 + - 橶 + - 樿 + - 橁 + - 檍 + - 檖 + - 檁 + - 檟 + - 橾 + - 檛 + - 檓 + - 檕 + - 檃 + - 櫅 + - 檹 + - 櫡 + - 櫠 + - 櫌 + - 櫑 + - 櫙 + - 櫋 + - 櫜 + - 櫐 + - 櫫 + - 櫬 + - 櫰 + - 櫹 + - 櫺 + - 櫼 + - 欃 + - 欋 + - 欈 + - 欐 + - 欑 + - 欘 + - 欨 + - 欴 + - 欯 + - 欭 + - 欱 + - 欶 + - 欳 + - 欷 + - 欿 + - 歂 + - 歈 + - 歍 + - 歋 + - 歕 + - 歔 + - 歜 + - 歠 + - 歭 + - 歾 + - 肂 + - 殈 + - 殏 + - 殔 + - 殗 + - 殙 + - 殠 + - 殥 + - 殢 + - 殦 + - 殧 + - 殰 + - 殶 + - 毃 + - 毄 + - 毈 + - 毇 + - 毊 + - 毚 + - 毞 + - 毦 + - 毤 + - 毨 + - 毣 + - 毰 + - 毲 + - 毻 + - 毼 + - 毾 + - 氁 + - 氀 + - 氄 + - 氠 + - 氶 + - 汃 + - 汒 + - 汏 + - 汍 + - 汸 + - 沋 + - 汱 + - 汯 + - 沕 + - 汦 + - 汳 + - 泬 + - 沶 + - 沬 + - 泧 + - 沷 + - 泭 + - 泲 + - 泒 + - 沴 + - 洟 + - 洊 + - 洀 + - 浺 + - 浶 + - 洍 + - 涒 + - 浘 + - 浢 + - 涊 + - 涆 + - 浧 + - 涗 + - 涳 + - 涬 + - 淢 + - 涷 + - 淔 + - 渀 + - 淈 + - 涾 + - 淊 + - 涽 + - 淭 + - 湆 + - 湇 + - 湅 + - 湢 + - 渿 + - 湁 + - 渜 + - 渳 + - 湀 + - 渻 + - 渮 + - 湨 + - 湡 + - 渱 + - 渨 + - 湠 + - 湱 + - 湩 + - 渹 + - 溛 + - 滖 + - 溓 + - 溔 + - 滒 + - 溰 + - 溾 + - 滜 + - 滵 + - 滱 + - 漃 + - 漥 + - 漮 + - 潎 + - 漙 + - 漧 + - 漘 + - 漒 + - 滭 + - 漊 + - 潳 + - 滮 + - 潀 + - 漰 + - 潃 + - 漅 + - 濆 + - 澒 + - 澅 + - 潚 + - 潠 + - 澖 + - 潶 + - 潬 + - 潒 + - 潐 + - 潗 + - 澓 + - 潝 + - 濇 + - 濎 + - 濈 + - 濄 + - 澞 + - 澨 + - 瀄 + - 濌 + - 澩 + - 濴 + - 濔 + - 濣 + - 濭 + - 濧 + - 濦 + - 瀇 + - 瀎 + - 濿 + - 瀀 + - 濻 + - 瀙 + - 瀖 + - 瀫 + - 瀡 + - 瀢 + - 瀩 + - 瀯 + - 瀷 + - 灂 + - 瀸 + - 瀿 + - 瀺 + - 灄 + - 灉 + - 灖 + - 灗 + - 灛 + - 灟 + - 灨 + - 灩 + - 灪 + - 炾 + - 炰 + - 烓 + - 烑 + - 缹 + - 焍 + - 烰 + - 焠 + - 焮 + - 焣 + - 煆 + - 煣 + - 煝 + - 熐 + - 熉 + - 熀 + - 熂 + - 熚 + - 燅 + - 燂 + - 熸 + - 燀 + - 燡 + - 爁 + - 爊 + - 爂 + - 爓 + - 爞 + - 爢 + - 爣 + - 牄 + - 牉 + - 牋 + - 牏 + - 牣 + - 牬 + - 牰 + - 牸 + - 牷 + - 犈 + - 犉 + - 犆 + - 犅 + - 犌 + - 犑 + - 犐 + - 犗 + - 犕 + - 犓 + - 犘 + - 犚 + - 犝 + - 犞 + - 犥 + - 犦 + - 犤 + - 犣 + - 犩 + - 犪 + - 犮 + - 犵 + - 犿 + - 狆 + - 狖 + - 狋 + - 狘 + - 狜 + - 狔 + - 狚 + - 狌 + - 狑 + - 狊 + - 狤 + - 狫 + - 狪 + - 狣 + - 猀 + - 狾 + - 猑 + - 猘 + - 猈 + - 狿 + - 猏 + - 猋 + - 猒 + - 猧 + - 猲 + - 猭 + - 猦 + - 猣 + - 猵 + - 猼 + - 獂 + - 獀 + - 獊 + - 獑 + - 獌 + - 獘 + - 獞 + - 獟 + - 獝 + - 獛 + - 獡 + - 獩 + - 獦 + - 獥 + - 獳 + - 獶 + - 獽 + - 獿 + - 玂 + - 玁 + - 玈 + - 玊 + - 玔 + - 珓 + - 珶 + - 琖 + - 瑵 + - 璊 + - 瑽 + - 璅 + - 瑿 + - 璗 + - 瓁 + - 瓋 + - 瓝 + - 瓟 + - 瓡 + - 瓥 + - 瓨 + - 瓬 + - 瓵 + - 瓾 + - 瓽 + - 甀 + - 甃 + - 甈 + - 甋 + - 甐 + - 甒 + - 甔 + - 甖 + - 甝 + - 甮 + - 甿 + - 畟 + - 畣 + - 畽 + - 疀 + - 疧 + - 痁 + - 疻 + - 痀 + - 痎 + - 痏 + - 痋 + - 痌 + - 痑 + - 痚 + - 痡 + - 痝 + - 痗 + - 痯 + - 瘏 + - 痷 + - 痸 + - 痻 + - 瘈 + - 瘑 + - 瘝 + - 瘣 + - 瘯 + - 瘱 + - 瘽 + - 癈 + - 癉 + - 癙 + - 癐 + - 癓 + - 癠 + - 癵 + - 癹 + - 皊 + - 皏 + - 皫 + - 皯 + - 皵 + - 皻 + - 皽 + - 皾 + - 盄 + - 盓 + - 盝 + - 盬 + - 盭 + - 盳 + - 眃 + - 眅 + - 盻 + - 眝 + - 眐 + - 眓 + - 眒 + - 眣 + - 眑 + - 眕 + - 眹 + - 眱 + - 眲 + - 眴 + - 眳 + - 眽 + - 睆 + - 睅 + - 睊 + - 睋 + - 睌 + - 睕 + - 睟 + - 睒 + - 睖 + - 睩 + - 睧 + - 睔 + - 瞁 + - 睼 + - 瞂 + - 睮 + - 睯 + - 瞏 + - 瞉 + - 瞚 + - 瞝 + - 瞡 + - 瞛 + - 瞲 + - 瞷 + - 瞶 + - 瞴 + - 矂 + - 矉 + - 矊 + - 矌 + - 矎 + - 矏 + - 矐 + - 矔 + - 矕 + - 矘 + - 矠 + - 矱 + - 矲 + - 矹 + - 矺 + - 砅 + - 砐 + - 砏 + - 砎 + - 砨 + - 硈 + - 硉 + - 硠 + - 硥 + - 硱 + - 硰 + - 硩 + - 碔 + - 碄 + - 碅 + - 碆 + - 硾 + - 碫 + - 碞 + - 磍 + - 磌 + - 磎 + - 磈 + - 磃 + - 磝 + - 磩 + - 磥 + - 磞 + - 磛 + - 磳 + - 磼 + - 磿 + - 礔 + - 礉 + - 礝 + - 礛 + - 礜 + - 礥 + - 礣 + - 礧 + - 礨 + - 礭 + - 礿 + - 祌 + - 祅 + - 祔 + - 祒 + - 祑 + - 祤 + - 祩 + - 祪 + - 祣 + - 祫 + - 祡 + - 祴 + - 祳 + - 禂 + - 禗 + - 禜 + - 禫 + - 禭 + - 禬 + - 禴 + - 禷 + - 禸 + - 歶 + - 秅 + - 秏 + - 秖 + - 秎 + - 秮 + - 秪 + - 秺 + - 秶 + - 稊 + - 稒 + - 稫 + - 穊 + - 稰 + - 稯 + - 穋 + - 穛 + - 穖 + - 穧 + - 穨 + - 穮 + - 穬 + - 穭 + - 穱 + - 穾 + - 窆 + - 窉 + - 窌 + - 窏 + - 窔 + - 窐 + - 窙 + - 窢 + - 窞 + - 窫 + - 窲 + - 窴 + - 窱 + - 窾 + - 竀 + - 竁 + - 竷 + - 笐 + - 笓 + - 笅 + - 笵 + - 笻 + - 笴 + - 笰 + - 笢 + - 笝 + - 笲 + - 筄 + - 筡 + - 箈 + - 箊 + - 箌 + - 箛 + - 箎 + - 箘 + - 箄 + - 箷 + - 箾 + - 篎 + - 箯 + - 箹 + - 篞 + - 篣 + - 篧 + - 篕 + - 篨 + - 篹 + - 簅 + - 篲 + - 篿 + - 篻 + - 簎 + - 篴 + - 簂 + - 簁 + - 篸 + - 篽 + - 簜 + - 簩 + - 簙 + - 簭 + - 簦 + - 簨 + - 簢 + - 簥 + - 簳 + - 簼 + - 簬 + - 簻 + - 籉 + - 籈 + - 籊 + - 籔 + - 籗 + - 籧 + - 籦 + - 籯 + - 籺 + - 籸 + - 籹 + - 粊 + - 粔 + - 粻 + - 糔 + - 糪 + - 糱 + - 糷 + - 紎 + - 紟 + - 紒 + - 紽 + - 紸 + - 紶 + - 紩 + - 絇 + - 紾 + - 絘 + - 絯 + - 絓 + - 絧 + - 絏 + - 絭 + - 絫 + - 綀 + - 綍 + - 絿 + - 綅 + - 絻 + - 絼 + - 綔 + - 綷 + - 緂 + - 綪 + - 緀 + - 緅 + - 緎 + - 緆 + - 緌 + - 綯 + - 綼 + - 緷 + - 緛 + - 緪 + - 緧 + - 縃 + - 緺 + - 緶 + - 緰 + - 縗 + - 縌 + - 縓 + - 縎 + - 縜 + - 縚 + - 縏 + - 縼 + - 繂 + - 縳 + - 顈 + - 繈 + - 縸 + - 縪 + - 繉 + - 繀 + - 縩 + - 緵 + - 縰 + - 縿 + - 縶 + - 繜 + - 繐 + - 繣 + - 繘 + - 繢 + - 繟 + - 繑 + - 繠 + - 繶 + - 繵 + - 繸 + - 繷 + - 繺 + - 繲 + - 繴 + - 纀 + - 纇 + - 纋 + - 纆 + - 纑 + - 纗 + - 纚 + - 缿 + - 罊 + - 罏 + - 罜 + - 罞 + - 罝 + - 罛 + - 罣 + - 罥 + - 罦 + - 罭 + - 罫 + - 罬 + - 罻 + - 罼 + - 罺 + - 罿 + - 羃 + - 羉 + - 羍 + - 羒 + - 羜 + - 羛 + - 羢 + - 羠 + - 羦 + - 羬 + - 羭 + - 羵 + - 羳 + - 羷 + - 羺 + - 羾 + - 翋 + - 翍 + - 翐 + - 翑 + - 翇 + - 翢 + - 翣 + - 翭 + - 翪 + - 翨 + - 翴 + - 翲 + - 翽 + - 翿 + - 耟 + - 耞 + - 耡 + - 耴 + - 耾 + - 耹 + - 聇 + - 聈 + - 聑 + - 聏 + - 聝 + - 肕 + - 肙 + - 肒 + - 肣 + - 肵 + - 胘 + - 胑 + - 胐 + - 胕 + - 胉 + - 胏 + - 胹 + - 胵 + - 脁 + - 胻 + - 脀 + - 胾 + - 胔 + - 脰 + - 脥 + - 脤 + - 脙 + - 脡 + - 脕 + - 脧 + - 腃 + - 腏 + - 腄 + - 腇 + - 脽 + - 腍 + - 腤 + - 腷 + - 腜 + - 腛 + - 腢 + - 腲 + - 朡 + - 腞 + - 腶 + - 膉 + - 膆 + - 膃 + - 膇 + - 膍 + - 膌 + - 膋 + - 膟 + - 膕 + - 膢 + - 膱 + - 膹 + - 膫 + - 膰 + - 膬 + - 膴 + - 膲 + - 臇 + - 膷 + - 臄 + - 臅 + - 臒 + - 臐 + - 臗 + - 臛 + - 臡 + - 臦 + - 臩 + - 臮 + - 臲 + - 臷 + - 臸 + - 臿 + - 舋 + - 舑 + - 舕 + - 舝 + - 舡 + - 舼 + - 舽 + - 艀 + - 艂 + - 艓 + - 艒 + - 艐 + - 艑 + - 艕 + - 艛 + - 艵 + - 艼 + - 芀 + - 芐 + - 芅 + - 芓 + - 芔 + - 苀 + - 芚 + - 芵 + - 芧 + - 芞 + - 芺 + - 苙 + - 苨 + - 苖 + - 苬 + - 苲 + - 苵 + - 苶 + - 茙 + - 茥 + - 茿 + - 茦 + - 茢 + - 荂 + - 茪 + - 荍 + - 茖 + - 茤 + - 茠 + - 茩 + - 茻 + - 莐 + - 莣 + - 莍 + - 荺 + - 莤 + - 荴 + - 莏 + - 莁 + - 荵 + - 莔 + - 莃 + - 莌 + - 莋 + - 荾 + - 莥 + - 菨 + - 萒 + - 菧 + - 菤 + - 菆 + - 菣 + - 菿 + - 菋 + - 菎 + - 菵 + - 萉 + - 菞 + - 菳 + - 菕 + - 蓱 + - 萿 + - 葹 + - 葥 + - 葀 + - 葧 + - 萰 + - 葍 + - 葽 + - 蔇 + - 葞 + - 萷 + - 萺 + - 萴 + - 葅 + - 菙 + - 葋 + - 萯 + - 葂 + - 葟 + - 葌 + - 蓎 + - 蒬 + - 蒮 + - 蒫 + - 蒪 + - 蒚 + - 蒝 + - 蓌 + - 蒛 + - 蒩 + - 蒘 + - 蒶 + - 蒠 + - 蔤 + - 蔏 + - 蔩 + - 蔉 + - 蔍 + - 蔧 + - 蔜 + - 蓻 + - 蓺 + - 蓴 + - 蔪 + - 蓲 + - 蓷 + - 蓫 + - 蔒 + - 蓩 + - 蔖 + - 蓾 + - 蔨 + - 蔮 + - 蔂 + - 蓶 + - 蔱 + - 蓹 + - 蔠 + - 蔰 + - 蕫 + - 蕍 + - 蕀 + - 蕆 + - 蕄 + - 蕇 + - 蕣 + - 蕛 + - 蕱 + - 蕵 + - 蕮 + - 蕧 + - 蕠 + - 蕦 + - 蕝 + - 薃 + - 薧 + - 薕 + - 薠 + - 薋 + - 薣 + - 薚 + - 蕼 + - 薉 + - 蕸 + - 薎 + - 薖 + - 薍 + - 薝 + - 薂 + - 藆 + - 藀 + - 藃 + - 藂 + - 薵 + - 薽 + - 藇 + - 藄 + - 藋 + - 藈 + - 藅 + - 薱 + - 薶 + - 藒 + - 藫 + - 藱 + - 藙 + - 藡 + - 藚 + - 藗 + - 藲 + - 藬 + - 藘 + - 藣 + - 藑 + - 藰 + - 蘁 + - 藾 + - 蘛 + - 蘉 + - 蘌 + - 蘪 + - 蘦 + - 蘟 + - 蘣 + - 蘜 + - 蘙 + - 蘮 + - 蘡 + - 蘠 + - 蘥 + - 蘴 + - 蘳 + - 蘬 + - 虀 + - 蘹 + - 蘱 + - 蘻 + - 蘾 + - 虃 + - 虆 + - 虇 + - 虈 + - 虌 + - 虋 + - 虙 + - 虡 + - 虣 + - 虩 + - 虪 + - 虰 + - 虭 + - 虴 + - 蚑 + - 蚞 + - 蚇 + - 蚗 + - 蚚 + - 蚅 + - 蚥 + - 蚙 + - 蚿 + - 蚷 + - 蛂 + - 蛁 + - 蛅 + - 蛈 + - 蚹 + - 蚳 + - 蚸 + - 蛌 + - 蚻 + - 蛢 + - 蛦 + - 蛓 + - 蛣 + - 蛚 + - 蛪 + - 蛝 + - 蛫 + - 蛜 + - 蛬 + - 蛗 + - 蜄 + - 蛷 + - 蜌 + - 蛖 + - 蛵 + - 蜁 + - 蛶 + - 蜳 + - 蝫 + - 蜙 + - 蝃 + - 蜬 + - 蝁 + - 蝆 + - 蜠 + - 蜲 + - 蜪 + - 蜭 + - 蜼 + - 蜵 + - 蝂 + - 蜦 + - 蜧 + - 蜸 + - 蜤 + - 蜰 + - 蝖 + - 蝷 + - 蟡 + - 蝳 + - 蝔 + - 蝛 + - 蝒 + - 蝑 + - 蝞 + - 蝭 + - 蝪 + - 蝐 + - 蝝 + - 蝬 + - 蝺 + - 蝜 + - 螛 + - 螏 + - 螓 + - 螒 + - 螁 + - 螖 + - 螘 + - 蝹 + - 螇 + - 螑 + - 螝 + - 螜 + - 螚 + - 螪 + - 螰 + - 螹 + - 螼 + - 螮 + - 蟉 + - 蟃 + - 蟂 + - 螷 + - 螴 + - 螿 + - 螸 + - 蟞 + - 蟧 + - 蟦 + - 蟢 + - 蟟 + - 蟤 + - 蟔 + - 蟓 + - 蟭 + - 蟘 + - 螤 + - 蟗 + - 蟙 + - 蠁 + - 蟨 + - 蠀 + - 蟺 + - 蠉 + - 蠌 + - 蟼 + - 蠈 + - 蟿 + - 蠗 + - 蠩 + - 蠝 + - 蠛 + - 蠠 + - 蠤 + - 蠜 + - 蠫 + - 蠬 + - 蠨 + - 蠦 + - 蠪 + - 蠥 + - 蠰 + - 蠮 + - 蠳 + - 蠸 + - 蠾 + - 蠽 + - 蠿 + - 衁 + - 衈 + - 衋 + - 衧 + - 衪 + - 衭 + - 衶 + - 袀 + - 衱 + - 衯 + - 袃 + - 袉 + - 袕 + - 袨 + - 袚 + - 袑 + - 袡 + - 袘 + - 袧 + - 袬 + - 袌 + - 袺 + - 裗 + - 袹 + - 袸 + - 裀 + - 袶 + - 袽 + - 袲 + - 裋 + - 裍 + - 裞 + - 裚 + - 裷 + - 裧 + - 裺 + - 裮 + - 裶 + - 裯 + - 裻 + - 褁 + - 褅 + - 褋 + - 褗 + - 褆 + - 褖 + - 褑 + - 褦 + - 褮 + - 褱 + - 褢 + - 褩 + - 褵 + - 褼 + - 褾 + - 襒 + - 褷 + - 襂 + - 褽 + - 襓 + - 襋 + - 襆 + - 襐 + - 襛 + - 襗 + - 襡 + - 襘 + - 襝 + - 襣 + - 襭 + - 襩 + - 襮 + - 襳 + - 襹 + - 襺 + - 覂 + - 覅 + - 覕 + - 覛 + - 覝 + - 覢 + - 覤 + - 覣 + - 覭 + - 覮 + - 覶 + - 觓 + - 觤 + - 觡 + - 觠 + - 觢 + - 觩 + - 觰 + - 觬 + - 觲 + - 觷 + - 觺 + - 觻 + - 觼 + - 觾 + - 訑 + - 訰 + - 訧 + - 訬 + - 訞 + - 詍 + - 訹 + - 詙 + - 詀 + - 詄 + - 詅 + - 訿 + - 誂 + - 詻 + - 誃 + - 誫 + - 誙 + - 誋 + - 諆 + - 誸 + - 諔 + - 諕 + - 誻 + - 諀 + - 諅 + - 諵 + - 諝 + - 諰 + - 諈 + - 謞 + - 謘 + - 謑 + - 謋 + - 謒 + - 謕 + - 謍 + - 謈 + - 謪 + - 謧 + - 謣 + - 謰 + - 謵 + - 譇 + - 謯 + - 謱 + - 謥 + - 謷 + - 謦 + - 譐 + - 譈 + - 譊 + - 譀 + - 譋 + - 譕 + - 譑 + - 譠 + - 譪 + - 譝 + - 譨 + - 譣 + - 譥 + - 譹 + - 譸 + - 譅 + - 譺 + - 譻 + - 譾 + - 讄 + - 讂 + - 讆 + - 讋 + - 讔 + - 讘 + - 讟 + - 谹 + - 谻 + - 谽 + - 谾 + - 豃 + - 豋 + - 豍 + - 豏 + - 豗 + - 豜 + - 豝 + - 豟 + - 豥 + - 豤 + - 豦 + - 豭 + - 豰 + - 豲 + - 豱 + - 豯 + - 豵 + - 豷 + - 豶 + - 豻 + - 豽 + - 貁 + - 貀 + - 貄 + - 貏 + - 貑 + - 貕 + - 貙 + - 貗 + - 貜 + - 貣 + - 貾 + - 賌 + - 賥 + - 賟 + - 賙 + - 賵 + - 賮 + - 贆 + - 贕 + - 贙 + - 赨 + - 赩 + - 赮 + - 赸 + - 趀 + - 趌 + - 趎 + - 趏 + - 趍 + - 趓 + - 趠 + - 趜 + - 趡 + - 趥 + - 趧 + - 趬 + - 趪 + - 趭 + - 趫 + - 趮 + - 趷 + - 趹 + - 跘 + - 跓 + - 跍 + - 跇 + - 跜 + - 跕 + - 跙 + - 跈 + - 跰 + - 跠 + - 跮 + - 跦 + - 跢 + - 跧 + - 跲 + - 跫 + - 踂 + - 跿 + - 踍 + - 踃 + - 踇 + - 踆 + - 跾 + - 踠 + - 踥 + - 踤 + - 踡 + - 踕 + - 踛 + - 踖 + - 踑 + - 踙 + - 踧 + - 踘 + - 踓 + - 踳 + - 踾 + - 踸 + - 踼 + - 蹎 + - 蹍 + - 蹓 + - 蹗 + - 蹖 + - 蹞 + - 蹥 + - 蹛 + - 蹡 + - 蹝 + - 蹔 + - 蹸 + - 蹳 + - 蹪 + - 躆 + - 躈 + - 躖 + - 躗 + - 躟 + - 躠 + - 躤 + - 躣 + - 躩 + - 躨 + - 躽 + - 軓 + - 軘 + - 軞 + - 軯 + - 軷 + - 軦 + - 軮 + - 軥 + - 軵 + - 軧 + - 軨 + - 軶 + - 軱 + - 軬 + - 輆 + - 軿 + - 輁 + - 輀 + - 輂 + - 輐 + - 輑 + - 輤 + - 輘 + - 輚 + - 輠 + - 輣 + - 輖 + - 輗 + - 輮 + - 輵 + - 輲 + - 輹 + - 輷 + - 輴 + - 轃 + - 轇 + - 轈 + - 轒 + - 轑 + - 轏 + - 轐 + - 轓 + - 轙 + - 轖 + - 轗 + - 轕 + - 轚 + - 轞 + - 轛 + - 轠 + - 辴 + - 迉 + - 迒 + - 迋 + - 迍 + - 迖 + - 迣 + - 迡 + - 迾 + - 迿 + - 逜 + - 逿 + - 遝 + - 遳 + - 遰 + - 遻 + - 邆 + - 邅 + - 遾 + - 邍 + - 邔 + - 邟 + - 邥 + - 邞 + - 邧 + - 郱 + - 郕 + - 郖 + - 郠 + - 郙 + - 郣 + - 郥 + - 郘 + - 郰 + - 郲 + - 郔 + - 鄬 + - 郼 + - 鄈 + - 郹 + - 郻 + - 鄁 + - 鄇 + - 郺 + - 鄐 + - 鄍 + - 鄏 + - 鄎 + - 鄟 + - 鄝 + - 鄡 + - 鄛 + - 鄨 + - 鄪 + - 鄦 + - 鄮 + - 鄵 + - 鄸 + - 鄻 + - 鄾 + - 酀 + - 酁 + - 酄 + - 酇 + - 酖 + - 酘 + - 酓 + - 酟 + - 酳 + - 醆 + - 醊 + - 醓 + - 醙 + - 醟 + - 醥 + - 醧 + - 醰 + - 醱 + - 醷 + - 醲 + - 醳 + - 醹 + - 醽 + - 釂 + - 釃 + - 釢 + - 釱 + - 釳 + - 釸 + - 鈚 + - 鈌 + - 鈒 + - 釽 + - 鈆 + - 鉒 + - 鉠 + - 鉯 + - 鈶 + - 鉼 + - 銤 + - 銛 + - 銔 + - 鉹 + - 銗 + - 鋄 + - 鋀 + - 鋟 + - 鋘 + - 鋩 + - 鋝 + - 鋂 + - 鋊 + - 錧 + - 錼 + - 錭 + - 錎 + - 鋋 + - 鎡 + - 鎃 + - 鎯 + - 鍖 + - 鍜 + - 鍐 + - 鍭 + - 鍌 + - 鎒 + - 鎷 + - 鎝 + - 鎉 + - 鎎 + - 鎞 + - 鏏 + - 鏂 + - 鏚 + - 鏬 + - 鏙 + - 鐋 + - 鐏 + - 鏾 + - 鐕 + - 鐨 + - 鐍 + - 鐀 + - 鐎 + - 鐖 + - 鐻 + - 鐶 + - 鑐 + - 鑋 + - 鑕 + - 鑮 + - 鑯 + - 钂 + - 钀 + - 钁 + - 钃 + - 镺 + - 镻 + - 镼 + - 镽 + - 閈 + - 閍 + - 閺 + - 閵 + - 闀 + - 闉 + - 闅 + - 閷 + - 闒 + - 闑 + - 闚 + - 闛 + - 闠 + - 闟 + - 闤 + - 阞 + - 阢 + - 阤 + - 阠 + - 阰 + - 阹 + - 阸 + - 阺 + - 陏 + - 陓 + - 陊 + - 陼 + - 陭 + - 陫 + - 隇 + - 陾 + - 隉 + - 隒 + - 隓 + - 隞 + - 隤 + - 隿 + - 雂 + - 雈 + - 雓 + - 雔 + - 雗 + - 雚 + - 雟 + - 雘 + - 雺 + - 雽 + - 雿 + - 霂 + - 霋 + - 霒 + - 霐 + - 霠 + - 霣 + - 霢 + - 霩 + - 霫 + - 霬 + - 霮 + - 霵 + - 霿 + - 靆 + - 靃 + - 靪 + - 靮 + - 靷 + - 靲 + - 靾 + - 鞃 + - 鞀 + - 鞂 + - 靻 + - 鞊 + - 鞎 + - 鞈 + - 鞙 + - 鞗 + - 鞚 + - 鞜 + - 鞤 + - 鞪 + - 鞷 + - 鞶 + - 鞹 + - 鞻 + - 鞿 + - 韄 + - 韅 + - 韇 + - 韎 + - 韐 + - 韏 + - 韕 + - 韔 + - 韗 + - 韝 + - 韟 + - 韣 + - 韥 + - 韰 + - 韱 + - 韹 + - 韽 + - 頄 + - 頖 + - 頞 + - 頝 + - 頩 + - 頨 + - 頯 + - 頲 + - 顁 + - 顄 + - 顊 + - 顉 + - 顅 + - 顐 + - 顑 + - 顜 + - 顝 + - 顠 + - 顣 + - 顟 + - 顤 + - 顪 + - 顩 + - 顲 + - 颬 + - 颲 + - 颸 + - 颽 + - 颻 + - 颾 + - 飁 + - 飂 + - 飉 + - 飋 + - 飌 + - 飣 + - 飶 + - 餂 + - 餀 + - 飺 + - 餔 + - 餖 + - 餕 + - 餤 + - 餟 + - 餥 + - 餫 + - 餪 + - 餲 + - 餯 + - 餭 + - 餱 + - 餰 + - 饁 + - 饇 + - 饐 + - 饎 + - 饙 + - 饘 + - 饛 + - 饡 + - 馣 + - 馲 + - 馰 + - 馵 + - 馻 + - 馺 + - 駂 + - 馽 + - 駜 + - 駍 + - 駏 + - 駎 + - 駖 + - 駮 + - 駬 + - 駥 + - 駤 + - 駣 + - 駩 + - 駺 + - 駴 + - 駷 + - 駹 + - 駶 + - 駻 + - 駽 + - 駾 + - 騃 + - 騉 + - 騑 + - 騊 + - 騇 + - 騚 + - 騕 + - 騥 + - 騝 + - 騛 + - 騢 + - 騠 + - 騧 + - 騞 + - 騜 + - 騵 + - 騲 + - 騴 + - 騱 + - 騬 + - 騪 + - 騩 + - 騹 + - 騽 + - 驆 + - 騺 + - 驓 + - 驔 + - 驈 + - 驉 + - 驖 + - 驞 + - 驠 + - 驦 + - 驨 + - 骭 + - 骫 + - 骹 + - 骿 + - 骴 + - 骾 + - 髇 + - 髊 + - 髆 + - 髍 + - 髐 + - 髟 + - 髧 + - 髬 + - 髳 + - 髶 + - 髺 + - 髾 + - 鬁 + - 髼 + - 鬋 + - 鬊 + - 鬎 + - 鬌 + - 鬐 + - 鬕 + - 鬗 + - 鬖 + - 鬙 + - 鬞 + - 鬠 + - 鬤 + - 鬫 + - 鬳 + - 鬵 + - 鬺 + - 鬾 + - 鬿 + - 魊 + - 魌 + - 魖 + - 魠 + - 魡 + - 魧 + - 魱 + - 魦 + - 魶 + - 魵 + - 鮅 + - 鮇 + - 魼 + - 魾 + - 魻 + - 鮂 + - 鮚 + - 鮞 + - 鮛 + - 鮦 + - 鮥 + - 鮤 + - 鮆 + - 鯆 + - 鮿 + - 鮵 + - 鯈 + - 鯫 + - 鯠 + - 鯞 + - 鯦 + - 鯬 + - 鰌 + - 鰋 + - 鰅 + - 鯸 + - 鰫 + - 鰝 + - 鰬 + - 鱆 + - 鰿 + - 鱄 + - 鱁 + - 鰴 + - 鱐 + - 鱍 + - 鱋 + - 鱕 + - 鱦 + - 鱢 + - 鱞 + - 鱴 + - 鱳 + - 鱹 + - 鳦 + - 鳪 + - 鳭 + - 鳱 + - 鳵 + - 鳼 + - 鳺 + - 鳿 + - 鳷 + - 鴀 + - 鳹 + - 鳻 + - 鴅 + - 鴃 + - 鴥 + - 鴠 + - 鴔 + - 鴩 + - 鴘 + - 鴢 + - 鴐 + - 鴳 + - 鵁 + - 鵧 + - 鴶 + - 鴮 + - 鴱 + - 鴸 + - 鵅 + - 鵃 + - 鴾 + - 鵀 + - 鴽 + - 鵏 + - 鵊 + - 鵛 + - 鵋 + - 鵖 + - 鵌 + - 鵗 + - 鵔 + - 鵷 + - 鶁 + - 鶊 + - 鶄 + - 鶈 + - 鵱 + - 鶀 + - 鵸 + - 鶋 + - 鶌 + - 鵽 + - 鵫 + - 鵴 + - 鵩 + - 鶅 + - 鵳 + - 鵻 + - 鶂 + - 鵹 + - 鶟 + - 鶙 + - 鶤 + - 鶝 + - 鶐 + - 鶛 + - 鶠 + - 鶔 + - 鶜 + - 鶪 + - 鶗 + - 鶢 + - 鶨 + - 鶞 + - 鶣 + - 鶖 + - 鶷 + - 鶶 + - 鷁 + - 鷇 + - 鷊 + - 鷏 + - 鶾 + - 鷅 + - 鷃 + - 鶵 + - 鷈 + - 鶱 + - 鶭 + - 鷛 + - 鷒 + - 鷞 + - 鷋 + - 鷐 + - 鷜 + - 鷑 + - 鷩 + - 鷘 + - 鷖 + - 鷵 + - 鷕 + - 鷻 + - 鷷 + - 鷣 + - 鷤 + - 鷶 + - 鷡 + - 鷮 + - 鷢 + - 鸂 + - 鷾 + - 鸇 + - 鸃 + - 鸆 + - 鸅 + - 鸀 + - 鸁 + - 鸉 + - 鷿 + - 鷽 + - 鸄 + - 鸋 + - 鸍 + - 鸏 + - 鸒 + - 鸔 + - 鸓 + - 鸗 + - 鸙 + - 鹺 + - 麃 + - 麆 + - 麉 + - 麎 + - 麌 + - 麔 + - 麙 + - 麛 + - 麚 + - 麜 + - 麠 + - 麡 + - 麧 + - 麮 + - 麰 + - 麶 + - 麷 + - 黀 + - 黂 + - 黈 + - 黓 + - 黕 + - 黖 + - 黚 + - 黤 + - 黫 + - 黮 + - 黭 + - 黰 + - 黳 + - 黵 + - 黺 + - 鼁 + - 鼀 + - 鼆 + - 鼊 + - 鼏 + - 鼖 + - 鼛 + - 鼘 + - 鼜 + - 鼤 + - 鼣 + - 鼥 + - 鼪 + - 鼨 + - 鼭 + - 鼰 + - 鼮 + - 鼵 + - 鼳 + - 鼲 + - 鼸 + - 鼶 + - 齀 + - 齂 + - 齃 + - 齌 + - 齍 + - 齎 + - 齖 + - 齗 + - 齘 + - 齛 + - 齠 + - 齞 + - 齝 + - 齥 + - 齤 + - 齫 + - 齱 + - 齰 + - 齮 + - 齯 + - 齴 + - 齵 + - 齸 + - 齻 + - 齺 + - 齹 + - 齾 + - 龒 + - 龤 + - 堔 + - 礂 + - 蒏 + - 蒆 + - 兙 + - 兛 + - 兞 + - 兝 + - 兡 + - 兣 + - 嗧 + - 瓩 + - 忼 + - 擡 + - 氊 + - 穇 + - 擧 + - 譌 + - '!' + - '"' + - '#' + - $ + - '%' + - '&' + - '''' + - ( + - ) + - '*' + - + + - ',' + - '-' + - . + - / + - '0' + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + - '8' + - '9' + - ':' + - ; + - < + - '=' + - '>' + - '?' + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - N + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - Y + - Z + - '[' + - ']' + - _ + - '`' + - a + - b + - c + - d + - e + - f + - g + - h + - i + - j + - k + - l + - m + - n + - o + - p + - q + - r + - s + - t + - u + - v + - w + - x + - y + - z + - © + - ° + - ² + - ´ + - ½ + - Á + - Ä + - Å + - Ç + - È + - É + - Í + - Ó + - Ö + - × + - Ü + - ß + - à + - á + - â + - ã + - ä + - å + - æ + - ç + - è + - é + - ê + - ë + - í + - ð + - ñ + - ò + - ó + - ô + - õ + - ö + - ø + - ú + - û + - ü + - ý + - ā + - ă + - ą + - ć + - Č + - č + - đ + - ē + - ė + - ę + - ğ + - ī + - ı + - Ł + - ł + - ń + - ň + - ō + - ř + - Ş + - ş + - Š + - š + - ţ + - ū + - ż + - Ž + - ž + - Ș + - ș + - ț + - Δ + - α + - λ + - μ + - φ + - Г + - О + - а + - в + - л + - о + - р + - с + - т + - я + - ồ + - — + - ― + - ’ + - “ + - ” + - … + - ℃ + - → + - ∇ + - − + - ■ + - ☆ + - 、 + - 。 + - 々 + - 〆 + - 〈 + - 〉 + - 「 + - 」 + - 『 + - 』 + - 〔 + - 〕 + - 〜 + - ! + - # + - % + - & + - ( + - ) + - + + - , + - - + - . + - / + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - : + - ; + - = + - ? + - @ + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - N + - O + - P + - R + - S + - T + - U + - V + - W + - X + - Z + - a + - b + - c + - d + - e + - f + - g + - h + - i + - j + - k + - l + - m + - n + - o + - p + - q + - r + - s + - t + - u + - v + - w + - x + - y + - z + - ~ + - ・ + - ǎ + - ǒ + - ě + - ǐ + - ì + - ǔ + - ù + - ǖ + - ǘ + - ǚ + - ǜ + - 【 + - 】 + - 《 + - 》 + - ‥ + - '{' + - '}' + - \ + - '|' + - '@' + - ^ + - '~' + - ÷ + - ∕ + - ∙ + - ⋅ + - · + - ⊕ + - ⊖ + - ⊗ + - ⊘ + - ⊙ + - ± + - ∓ + - ∩ + - ∪ + - □ + - ⊎ + - ⊓ + - ⊔ + - ≠ + - ≈ + - ≡ + - ≤ + - ≥ + - ≪ + - ≫ + - ≲ + - ≳ + - ≶ + - ≷ + - ≺ + - ≻ + - ≼ + - ≽ + - ∈ + - ∉ + - ⊂ + - ⊃ + - ⊆ + - ⊇ + - ⊄ + - ⊅ + - ∅ + - ∖ + - ∁ + - ∆ + - ∧ + - ∨ + - ¬ + - ⊻ + - ⊼ + - ⊽ + - ← + - ↔ + - ⇒ + - ⇐ + - ⇔ + - ∀ + - ∃ + - ∄ + - ∴ + - ∵ + - ∝ + - ∞ + - ⊥ + - ∟ + - ∠ + - ∡ + - ∢ + - ′ + - ″ + - ∥ + - ⊾ + - ⊿ + - ∂ + - ∫ + - ∬ + - ∭ + - ∮ + - ∯ + - ∰ + - ∑ + - ∏ + - √ + - ∛ + - ∜ + - ∱ + - ∲ + - ∳ + - ∶ + - ∷ + - ∼ + - ® + - ≄ + - ≅ + - ≃ + - ≦ + - ≧ + - ⊈ + - ⊉ + - ⊢ + - ⊤ + - ⊨ + - ⊧ + - ℉ + - Ω + - ℧ + - Å + - ⌀ + - ℏ + - ⅀ + - ⍺ + - ⍵ + - ¢ + - € + - £ + - ¥ + - ¥ + - ₿ + - ↑ + - ↓ + - ↕ + - ↖ + - ↗ + - ↘ + - ↙ + - ↺ + - ↻ + - ↼ + - ↽ + - ↾ + - ↿ + - ⇀ + - ⇁ + - ⇂ + - ⇃ + - ⇋ + - ⇌ + - ª + - º + - ⁰ + - ¹ + - ³ + - ⁴ + - ⁵ + - ⁶ + - ⁷ + - ⁸ + - ⁹ + - ⁺ + - ⁻ + - ⁼ + - ⁽ + - ⁾ + - ⁿ + - ₀ + - ₁ + - ₂ + - ₃ + - ₄ + - ₅ + - ₆ + - ₇ + - ₈ + - ₉ + - ₊ + - ₋ + - ₌ + - ₍ + - ₎ + - Ⅰ + - Ⅱ + - Ⅲ + - Ⅳ + - Ⅴ + - Ⅵ + - Ⅶ + - Ⅷ + - Ⅸ + - Ⅹ + - Ⅺ + - Ⅻ + - ⅰ + - ⅱ + - ⅲ + - ⅳ + - ⅴ + - ⅵ + - ⅶ + - ⅷ + - ⅸ + - ⅹ + - ⅺ + - ⅻ + - ☰ + - ☱ + - ☲ + - ☳ + - ☴ + - ☵ + - ☶ + - ☷ + - ♀ + - ♂ + - ♳ + - ♴ + - ♵ + - ♶ + - ♷ + - ♸ + - ♹ + - ♺ + - ♩ + - ♪ + - ♫ + - ♬ + - ⚪ + - ⚫ + - ⚬ + - ✶ + - ✷ + - ✸ + - ➀ + - ➁ + - ➂ + - ➃ + - ➄ + - ➅ + - ➆ + - ➇ + - ➈ + - ➉ + - ➊ + - ➋ + - ➌ + - ➍ + - ➎ + - ➏ + - ➐ + - ➑ + - ➒ + - ➓ + - ⏀ + - ⏁ + - ⏂ + - ⏃ + - ⏄ + - ⏅ + - ⏆ + - ⏇ + - ⏈ + - ⏉ + - ⏊ + - ⏋ + - ⏌ + - ⏚ + - ⏴ + - ⏵ + - ⏶ + - ⏷ + - ⏸ + - ⏹ + - ⏺ + - ⏻ + - ⏼ + - Α + - Β + - Γ + - Ε + - Ζ + - Η + - Θ + - Ι + - Κ + - Λ + - Μ + - Ν + - Ξ + - Ο + - Π + - Ρ + - Σ + - Τ + - Υ + - Φ + - Χ + - Ψ + - β + - γ + - δ + - ε + - ζ + - η + - θ + - ι + - κ + - ν + - ξ + - ο + - π + - ρ + - σ + - τ + - υ + - χ + - ψ + - ω + - ϐ + - ϑ + - ϒ + - ϕ + - █ + - ϖ + - ϰ + - ϱ + - ϴ + - ϵ + - ϝ + - Ϟ + - ϟ + - Ϡ + - ϡ + - Ϣ + - ϣ + - Ϥ + - ϥ + - Ϧ + - ϧ + - Ϩ + - ϩ + - Ϫ + - ϫ + - Ϭ + - ϭ + - Ϯ + - ϯ + - ∸ + - ∹ + - ∺ + - ∻ + - ∽ + - ∾ + - ∿ + - ≀ + - ≁ + - ≂ + - ≆ + - ≇ + - ≉ + - ≊ + - ≋ + - ≌ + - ≍ + - ≎ + - ≏ + - ≐ + - ≑ + - ≒ + - ≓ + - ≔ + - ≕ + - ≖ + - ≗ + - ≘ + - ≙ + - ≚ + - ≛ + - ≜ + - ≝ + - ≞ + - ≟ + - ≢ + - ≣ + - ≨ + - ≩ + - ≬ + - ≭ + - ≮ + - ≯ + - ≰ + - ≱ + - ≴ + - ≵ + - ≸ + - ≹ + - ≾ + - ≿ + - ⊀ + - ⊁ + - ⊊ + - ⊋ + - ⊌ + - ⊍ + - ⊏ + - ⊐ + - ⊑ + - ⊒ + - ⊚ + - ⊛ + - ⊜ + - ⊝ + - ⊞ + - ⊟ + - ⊠ + - ⊡ + - ⊣ + - ⊦ + - ⊩ + - ⊪ + - ⊫ + - ⊬ + - ⊭ + - ⊮ + - ⊯ + - ⊰ + - ⊱ + - ⊲ + - ⊳ + - ⊴ + - ⊵ + - ⊶ + - ⊷ + - ⊸ + - ⊹ + - ⊺ + - ℎ + - ℘ + - ℜ + - ℑ + - ℵ + - ℶ + - ℷ + - ℸ + - ⌬ + - ⌭ + - ⌮ + - ⌯ + - ⎔ + - ¤ + - ₠ + - ₡ + - ₢ + - ₣ + - ₤ + - ₥ + - ₦ + - ₧ + - ₨ + - ₩ + - ₪ + - ₫ + - ₭ + - ₮ + - ₯ + - ₰ + - ₱ + - ₲ + - ₳ + - ₴ + - ₵ + - ₶ + - ₷ + - ₸ + - ₹ + - ₺ + - ₻ + - ₼ + - ₽ + - ₾ + - ↚ + - ↛ + - ↜ + - ↝ + - ↞ + - ↟ + - ↠ + - ↡ + - ↢ + - ↣ + - ↤ + - ↥ + - ↦ + - ↧ + - ↨ + - ↩ + - ↪ + - ↫ + - ↬ + - ↭ + - ↮ + - ↯ + - ↰ + - ↱ + - ↲ + - ↳ + - ↴ + - ↵ + - ↶ + - ↷ + - ↸ + - ↹ + - ⇄ + - ⇅ + - ⇆ + - ⇇ + - ⇈ + - ⇉ + - ⇊ + - ⇍ + - ⇎ + - ⇏ + - ⇑ + - ⇓ + - ⇕ + - ⇖ + - ⇗ + - ⇘ + - ⇙ + - ⇚ + - ⇛ + - ⇜ + - ⇝ + - ⇞ + - ⇟ + - ⇠ + - ⇡ + - ⇢ + - ⇣ + - ⇤ + - ⇥ + - ⇦ + - ⇧ + - ⇨ + - ⇩ + - ⇪ + - ⇫ + - ⇬ + - ⇭ + - ⇮ + - ⇯ + - ⇰ + - ⇱ + - ⇲ + - ⇳ + - ⇴ + - ⇵ + - ⇶ + - ⇷ + - ⇸ + - ⇹ + - ⇺ + - ⇻ + - ⇼ + - ⇽ + - ⇾ + - ⇿ + - ↀ + - ↁ + - ↂ + - ☀ + - ☁ + - ☂ + - ☃ + - ☄ + - ★ + - ☇ + - ☈ + - ☉ + - ☊ + - ☋ + - ☌ + - ☍ + - ☎ + - ☏ + - ☐ + - ☑ + - ☒ + - ☓ + - ☔ + - ☕ + - ☖ + - ☗ + - ☘ + - ☙ + - ☚ + - ☛ + - ☜ + - ☝ + - ☞ + - ☟ + - ☠ + - ☡ + - ☢ + - ☣ + - ☤ + - ☥ + - ☦ + - ☧ + - ☨ + - ☩ + - ☪ + - ☫ + - ☬ + - ☭ + - ☮ + - ☯ + - ☸ + - ☹ + - ☺ + - ☻ + - ☼ + - ☽ + - ☾ + - ☿ + - ♁ + - ♃ + - ♄ + - ♅ + - ♆ + - ♇ + - ♔ + - ♕ + - ♖ + - ♗ + - ♘ + - ♙ + - ♚ + - ♛ + - ♜ + - ♝ + - ♞ + - ♟ + - ♠ + - ♡ + - ♢ + - ♣ + - ♤ + - ♥ + - ♦ + - ♧ + - ♨ + - ♭ + - ♮ + - ♯ + - ♰ + - ♱ + - ♲ + - ♻ + - ♼ + - ♽ + - ♾ + - ⚀ + - ⚁ + - ⚂ + - ⚃ + - ⚄ + - ⚅ + - ⚆ + - ⚇ + - ⚈ + - ⚉ + - ⚊ + - ⚋ + - ⚌ + - ⚍ + - ⚎ + - ⚏ + - ⚐ + - ⚑ + - ⚒ + - ⚓ + - ⚔ + - ⚕ + - ⚖ + - ⚗ + - ⚘ + - ⚙ + - ⚚ + - ⚛ + - ⚜ + - ⚝ + - ⚞ + - ⚟ + - ⚠ + - ⚡ + - ⚢ + - ⚣ + - ⚤ + - ⚥ + - ⚦ + - ⚧ + - ⚨ + - ⚩ + - ⚭ + - ⚮ + - ⚯ + - ⚰ + - ⚱ + - ⚲ + - ⚳ + - ⚴ + - ⚵ + - ⚶ + - ⚷ + - ⚸ + - ⚹ + - ⚺ + - ⚻ + - ⚼ + - ⚿ + - ⛀ + - ⛁ + - ⛂ + - ⛃ + - ⛆ + - ⛇ + - ⛈ + - ⛉ + - ⛊ + - ⛋ + - ⛌ + - ⛍ + - ⛏ + - ⛐ + - ⛑ + - ⛒ + - ⛓ + - ⛕ + - ⛖ + - ⛗ + - ⛘ + - ⛙ + - ⛚ + - ⛛ + - ⛜ + - ⛝ + - ⛞ + - ⛠ + - ⛡ + - ⛢ + - ⛣ + - ⛤ + - ⛥ + - ⛦ + - ⛧ + - ⛨ + - ⛩ + - ⛪ + - ⛫ + - ⛬ + - ⛭ + - ⛮ + - ⛯ + - ⛶ + - ⛾ + - ⛿ + - ✆ + - ✇ + - ✈ + - ✉ + - ✌ + - ✍ + - ✎ + - ✏ + - ✐ + - ✑ + - ✒ + - ✓ + - ✔ + - ✕ + - ✙ + - ✚ + - ✛ + - ✜ + - ✝ + - ✞ + - ✟ + - ✠ + - ✡ + - ✢ + - ✣ + - ✤ + - ✥ + - ✦ + - ✧ + - ✩ + - ✪ + - ✫ + - ✬ + - ✭ + - ✮ + - ✯ + - ✰ + - ✱ + - ✲ + - ✳ + - ✴ + - ✵ + - ✹ + - ✺ + - ✻ + - ✼ + - ✽ + - ✾ + - ✿ + - ❀ + - ❁ + - ❂ + - ❃ + - ❄ + - ❅ + - ❆ + - ❇ + - ❈ + - ❉ + - ❊ + - ❋ + - ❍ + - ❏ + - ❐ + - ❑ + - ❒ + - ❖ + - ❘ + - ❙ + - ❚ + - ❛ + - ❜ + - ❝ + - ❞ + - ❡ + - ❢ + - ❣ + - ❤ + - ❥ + - ❦ + - ❧ + - ❨ + - ❩ + - ❪ + - ❫ + - ❬ + - ❭ + - ❮ + - ❯ + - ❰ + - ❱ + - ❲ + - ❳ + - ❴ + - ❵ + - ❶ + - ❷ + - ❸ + - ❹ + - ❺ + - ❻ + - ❼ + - ❽ + - ❾ + - ❿ + - ① + - ② + - ③ + - ④ + - ⑤ + - ⑥ + - ⑦ + - ⑧ + - ⑨ + - ⑩ + - ➔ + - ➕ + - ➖ + - ➗ + - ➘ + - ➙ + - ➚ + - ➛ + - ➜ + - ➝ + - ➞ + - ➟ + - ➠ + - ➡ + - ➢ + - ➣ + - ➤ + - ➥ + - ➦ + - ➧ + - ➨ + - ➩ + - ➪ + - ➫ + - ➬ + - ➭ + - ➮ + - ➯ + - ➰ + - ➱ + - ➲ + - ➳ + - ➴ + - ➵ + - ➶ + - ➷ + - ➸ + - ➹ + - ➺ + - ➻ + - ➼ + - ➽ + - ➾ + - ➿ + - ⌘ + - ⌥ + - ⌃ + - ⎋ + - ⌫ + - ⌦ + - ⏏ + - ⌤ + - ⌧ + - ⌨ + - ⎆ + - ⎇ + - ⎈ + - ⎉ + - ⎊ + - ⎌ + - ⎍ + - ⎎ + - ⎏ + - ⎐ + - ⎑ + - ⎒ + - ⎓ + - ⎕ + - ⎖ + - ⎗ + - ⎘ + - ⎙ + - ⎚ + - ⎛ + - ⎜ + - ⎝ + - ⎞ + - ⎟ + - ⎠ + - ⎡ + - ⎢ + - ⎣ + - ⎤ + - ⎥ + - ⎦ + - ⎧ + - ⎨ + - ⎩ + - ⎪ + - ⎫ + - ⎬ + - ⎭ + - ⎮ + - ⎯ + - ⎰ + - ⎱ + - ⎲ + - ⎳ + - ⎴ + - ⎵ + - ⎶ + - ⎷ + - ⎸ + - ⎹ + - ⎺ + - ⎻ + - ⎼ + - ⎽ + - ⎾ + - ⎿ + - ⏍ + - ⏎ + - ⏐ + - ⏑ + - ⏒ + - ⏓ + - ⏔ + - ⏕ + - ⏖ + - ⏗ + - ⏘ + - ⏙ + - ⏛ + - ⏜ + - ⏝ + - ⏞ + - ⏟ + - ⏠ + - ⏡ + - ⏢ + - ⏣ + - ⏤ + - ⏥ + - ⏦ + - ⏧ + - ⏨ + - ⏭ + - ⏮ + - ⏯ + - ⏱ + - ⏲ + - ▲ + - ▽ + - ◐ + - ⏽ + - ⏾ + - ⏿ + - ɐ + - ɑ + - ɒ + - ɓ + - ɔ + - ɕ + - ɖ + - ɗ + - ɘ + - ə + - ɚ + - ɛ + - ɜ + - ɝ + - ɞ + - ɟ + - ɠ + - ɡ + - ɢ + - ɣ + - ɤ + - ɥ + - ɦ + - ɧ + - ɨ + - ɩ + - ɪ + - ɫ + - ɬ + - ɭ + - ɮ + - ɯ + - ɰ + - ɱ + - ɲ + - ɳ + - ɴ + - ɵ + - ɶ + - ɷ + - ɸ + - ɹ + - ɺ + - ɻ + - ɼ + - ɽ + - ɾ + - ɿ + - ʀ + - ʁ + - ʂ + - ʃ + - ʄ + - ʅ + - ʆ + - ʇ + - ʈ + - ʉ + - ʊ + - ʋ + - ʌ + - ʍ + - ʎ + - ʏ + - ʐ + - ʑ + - ʒ + - ʓ + - ʔ + - ʕ + - ʖ + - ʗ + - ʘ + - ʙ + - ʚ + - ʛ + - ʜ + - ʝ + - ʞ + - ʟ + - ʠ + - ʡ + - ʢ + - ʣ + - ʤ + - ʥ + - ʦ + - ʧ + - ʨ + - ʩ + - ʪ + - ʫ + - ʬ + - ʭ + - ʮ + - ʯ + - ━ + - Ǝ + - Ã + - ● + - ▶ + - | + - 𝑢 + - 〖 + - 〗 + - ︽ + - – + - ﹥ + - 𝜓 + - • + - ∋ + - ƒ + - ० + - ✘ + - Е + - ◉ + - 〒 + - 𝒱 + - 𝜆 + - ⟹ + - ﹪ + - ◊ + - ╆ + - 오 + - ˂ + - 〉 + - 𝝎 + - ▪ + - △ + - ▁ + - ◼ + - 〇 + - ▷ + - ▬ + - 𝒮 + - † + - ₒ + - ⼁ + - 〵 + - ⭐ + - ╳ + - ⟶ + - 으 + - ⬆ + - Ạ + - ◀ + -  + - ▫ + - 丄 + - ︾ + - ◥ + - ‖ + - 𝜌 + - ⅼ + - ▼ + - ⁎ + - ﹏ + - 😁 + - 😂 + - 😃 + - 😄 + - 😅 + - 😆 + - 😉 + - 😊 + - 😋 + - 😌 + - 😍 + - 😏 + - 😒 + - 😓 + - 😔 + - 😖 + - 😘 + - 😚 + - 😜 + - 😝 + - 😞 + - 😠 + - 😡 + - 😢 + - 😣 + - 😤 + - 😥 + - 😨 + - 😩 + - 😪 + - 😫 + - 😭 + - 😰 + - 😱 + - 😲 + - 😳 + - 😵 + - 😷 + - 😸 + - 😹 + - 😺 + - 😻 + - 😼 + - 😽 + - 😾 + - 😿 + - 🙀 + - 🙅 + - 🙆 + - 🙇 + - 🙈 + - 🙉 + - 🙊 + - 🙋 + - 🙌 + - 🙍 + - 🙎 + - 🙏 + - ✂ + - ✅ + - ✊ + - ✋ + - ✖ + - ✨ + - ❌ + - ❎ + - ❓ + - ❔ + - ❕ + - ❗ + - 🚀 + - 🚃 + - 🚄 + - 🚅 + - 🚇 + - 🚉 + - 🚌 + - 🚏 + - 🚑 + - 🚒 + - 🚓 + - 🚕 + - 🚗 + - 🚙 + - 🚚 + - 🚢 + - 🚤 + - 🚥 + - 🚧 + - 🚨 + - 🚩 + - 🚪 + - 🚫 + - 🚬 + - 🚭 + - 🚲 + - 🚶 + - 🚹 + - 🚺 + - 🚻 + - 🚼 + - 🚽 + - 🚾 + - 🛀 + - Ⓜ + - 🅰 + - 🅱 + - 🅾 + - 🅿 + - 🆎 + - 🆑 + - 🆒 + - 🆓 + - 🆔 + - 🆕 + - 🆖 + - 🆗 + - 🆘 + - 🆙 + - 🆚 + - 🇩🇪 + - 🇬🇧 + - 🇨🇳 + - 🇯🇵 + - 🇫🇷 + - 🇰🇷 + - 🇪🇸 + - 🇮🇹 + - 🇷🇺 + - 🇺🇸 + - 🈁 + - ℹ + - ⌚ + - ⌛ + - ⏩ + - ⏪ + - ⏫ + - ⏬ + - ⏰ + - ⏳ + - ◻ + - ◽ + - ◾ + - ♈ + - ♉ + - ♊ + - ♋ + - ♌ + - ♍ + - ♎ + - ♏ + - ♐ + - ♑ + - ♒ + - ♓ + - ♿ + - ⚽ + - ⚾ + - ⛄ + - ⛅ + - ⛎ + - ⛔ + - ⛲ + - ⛳ + - ⛵ + - ⛺ + - ⛽ + - ⤴ + - ⤵ + - ⬅ + - ⬇ + - ⬛ + - ⬜ + - ⭕ + - 〰 + - 〽 + - ㊗ + - ㊙ + - 🀄 + - 🃏 + - 🌀 + - 🌁 + - 🌂 + - 🌃 + - 🌄 + - 🌅 + - 🌆 + - 🌇 + - 🌈 + - 🌉 + - 🌊 + - 🌋 + - 🌌 + - 🌏 + - 🌑 + - 🌓 + - 🌔 + - 🌕 + - 🌙 + - 🌛 + - 🌟 + - 🌠 + - 🌰 + - 🌱 + - 🌴 + - 🌵 + - 🌷 + - 🌸 + - 🌹 + - 🌺 + - 🌻 + - 🌼 + - 🌽 + - 🌾 + - 🌿 + - 🍀 + - 🍁 + - 🍂 + - 🍃 + - 🍄 + - 🍅 + - 🍆 + - 🍇 + - 🍈 + - 🍉 + - 🍊 + - 🍌 + - 🍍 + - 🍎 + - 🍏 + - 🍑 + - 🍒 + - 🍓 + - 🍔 + - 🍕 + - 🍖 + - 🍗 + - 🍘 + - 🍙 + - 🍚 + - 🍛 + - 🍜 + - 🍝 + - 🍞 + - 🍟 + - 🍠 + - 🍡 + - 🍢 + - 🍣 + - 🍤 + - 🍥 + - 🍦 + - 🍧 + - 🍨 + - 🍩 + - 🍪 + - 🍫 + - 🍬 + - 🍭 + - 🍮 + - 🍯 + - 🍰 + - 🍱 + - 🍲 + - 🍳 + - 🍴 + - 🍵 + - 🍶 + - 🍷 + - 🍸 + - 🍹 + - 🍺 + - 🍻 + - 🎀 + - 🎁 + - 🎂 + - 🎃 + - 🎄 + - 🎅 + - 🎆 + - 🎇 + - 🎈 + - 🎉 + - 🎊 + - 🎋 + - 🎌 + - 🎍 + - 🎎 + - 🎏 + - 🎐 + - 🎑 + - 🎒 + - 🎓 + - 🎠 + - 🎡 + - 🎢 + - 🎣 + - 🎤 + - 🎥 + - 🎦 + - 🎧 + - 🎨 + - 🎩 + - 🎪 + - 🎫 + - 🎬 + - 🎭 + - 🎮 + - 🎯 + - 🎰 + - 🎱 + - 🎲 + - 🎳 + - 🎴 + - 🎵 + - 🎶 + - 🎷 + - 🎸 + - 🎹 + - 🎺 + - 🎻 + - 🎼 + - 🎽 + - 🎾 + - 🎿 + - 🏀 + - 🏁 + - 🏂 + - 🏃 + - 🏄 + - 🏆 + - 🏈 + - 🏊 + - 🏠 + - 🏡 + - 🏢 + - 🏣 + - 🏥 + - 🏦 + - 🏧 + - 🏨 + - 🏩 + - 🏪 + - 🏫 + - 🏬 + - 🏭 + - 🏮 + - 🏯 + - 🏰 + - 🐌 + - 🐍 + - 🐎 + - 🐑 + - 🐒 + - 🐔 + - 🐗 + - 🐘 + - 🐙 + - 🐚 + - 🐛 + - 🐜 + - 🐝 + - 🐞 + - 🐟 + - 🐠 + - 🐡 + - 🐢 + - 🐣 + - 🐤 + - 🐥 + - 🐦 + - 🐧 + - 🐨 + - 🐩 + - 🐫 + - 🐬 + - 🐭 + - 🐮 + - 🐯 + - 🐰 + - 🐱 + - 🐲 + - 🐳 + - 🐴 + - 🐵 + - 🐶 + - 🐷 + - 🐸 + - 🐹 + - 🐺 + - 🐻 + - 🐼 + - 🐽 + - 🐾 + - 👀 + - 👂 + - 👃 + - 👄 + - 👅 + - 👆 + - 👇 + - 👈 + - 👉 + - 👊 + - 👋 + - 👌 + - 👍 + - 👎 + - 👏 + - 👐 + - 👑 + - 👒 + - 👓 + - 👔 + - 👕 + - 👖 + - 👗 + - 👘 + - 👙 + - 👚 + - 👛 + - 👜 + - 👝 + - 👞 + - 👟 + - 👠 + - 👡 + - 👢 + - 👣 + - 👤 + - 👦 + - 👧 + - 👨 + - 👩 + - 👪 + - 👫 + - 👮 + - 👯 + - 👰 + - 👱 + - 👲 + - 👳 + - 👴 + - 👵 + - 👶 + - 👷 + - 👸 + - 👹 + - 👺 + - 👻 + - 👼 + - 👽 + - 👾 + - 👿 + - 💀 + - 💁 + - 💂 + - 💃 + - 💄 + - 💅 + - 💆 + - 💇 + - 💈 + - 💉 + - 💊 + - 💋 + - 💌 + - 💍 + - 💎 + - 💏 + - 💐 + - 💑 + - 💒 + - 💓 + - 💔 + - 💕 + - 💖 + - 💗 + - 💘 + - 💙 + - 💚 + - 💛 + - 💜 + - 💝 + - 💞 + - 💟 + - 💠 + - 💡 + - 💢 + - 💣 + - 💤 + - 💥 + - 💦 + - 💧 + - 💨 + - 💩 + - 💪 + - 💫 + - 💬 + - 💮 + - 💯 + - 💰 + - 💲 + - 💳 + - 💴 + - 💵 + - 💸 + - 💹 + - 💺 + - 💻 + - 💼 + - 💽 + - 💾 + - 💿 + - 📀 + - 📁 + - 📂 + - 📃 + - 📄 + - 📅 + - 📆 + - 📇 + - 📈 + - 📉 + - 📊 + - 📋 + - 📌 + - 📍 + - 📎 + - 📏 + - 📐 + - 📑 + - 📒 + - 📓 + - 📔 + - 📕 + - 📖 + - 📗 + - 📘 + - 📙 + - 📚 + - 📛 + - 📜 + - 📝 + - 📞 + - 📟 + - 📠 + - 📡 + - 📢 + - 📣 + - 📤 + - 📥 + - 📦 + - 📧 + - 📨 + - 📩 + - 📪 + - 📫 + - 📮 + - 📰 + - 📱 + - 📲 + - 📳 + - 📴 + - 📶 + - 📷 + - 📹 + - 📺 + - 📻 + - 📼 + - 🔃 + - 🔊 + - 🔋 + - 🔌 + - 🔍 + - 🔎 + - 🔏 + - 🔐 + - 🔑 + - 🔒 + - 🔓 + - 🔔 + - 🔖 + - 🔗 + - 🔘 + - 🔙 + - 🔚 + - 🔛 + - 🔜 + - 🔝 + - 🔞 + - 🔟 + - 🔠 + - 🔡 + - 🔢 + - 🔣 + - 🔤 + - 🔥 + - 🔦 + - 🔧 + - 🔨 + - 🔩 + - 🔪 + - 🔫 + - 🔮 + - 🔯 + - 🔰 + - 🔱 + - 🔲 + - 🔳 + - 🔴 + - 🔵 + - 🔶 + - 🔷 + - 🔸 + - 🔹 + - 🔺 + - 🔻 + - 🔼 + - 🔽 + - 🕐 + - 🕑 + - 🕒 + - 🕓 + - 🕔 + - 🕕 + - 🕖 + - 🕗 + - 🕘 + - 🕙 + - 🕚 + - 🕛 + - 🗻 + - 🗼 + - 🗽 + - 🗾 + - 🗿 + - 😀 + - 😇 + - 😈 + - 😎 + - 😐 + - 😑 + - 😕 + - 😗 + - 😙 + - 😛 + - 😟 + - 😦 + - 😧 + - 😬 + - 😮 + - 😯 + - 😴 + - 😶 + - 🚁 + - 🚂 + - 🚆 + - 🚈 + - 🚊 + - 🚍 + - 🚎 + - 🚐 + - 🚔 + - 🚖 + - 🚘 + - 🚛 + - 🚜 + - 🚝 + - 🚞 + - 🚟 + - 🚠 + - 🚡 + - 🚣 + - 🚦 + - 🚮 + - 🚯 + - 🚰 + - 🚱 + - 🚳 + - 🚴 + - 🚵 + - 🚷 + - 🚸 + - 🚿 + - 🛁 + - 🛂 + - 🛃 + - 🛄 + - 🛅 + - 🌍 + - 🌎 + - 🌐 + - 🌒 + - 🌖 + - 🌗 + - 🌘 + - 🌚 + - 🌜 + - 🌝 + - 🌞 + - 🌲 + - 🌳 + - 🍋 + - 🍐 + - 🍼 + - 🏇 + - 🏉 + - 🏤 + - 🐀 + - 🐁 + - 🐂 + - 🐃 + - 🐄 + - 🐅 + - 🐆 + - 🐇 + - 🐈 + - 🐉 + - 🐊 + - 🐋 + - 🐏 + - 🐐 + - 🐓 + - 🐕 + - 🐖 + - 🐪 + - 👥 + - 👬 + - 👭 + - 💭 + - 💶 + - 💷 + - 📬 + - 📭 + - 📯 + - 📵 + - 🔀 + - 🔁 + - 🔂 + - 🔄 + - 🔅 + - 🔆 + - 🔇 + - 🔉 + - 🔕 + - 🔬 + - 🔭 + - 🕜 + - 🕝 + - 🕞 + - 🕟 + - 🕠 + - 🕡 + - 🕢 + - 🕣 + - 🕤 + - 🕥 + - 🕦 + - 🕧