From e4504daca03b790a6cb49bfeccdec581c0729bcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=BE=99?= Date: Tue, 1 Apr 2025 09:51:35 +0800 Subject: [PATCH] v0.1.1 node_tree_0.6 before web bak --- DBManager.py | 6 - TaskManager.py | 24 +- main.py | 53 +- mycode/ControlCenter.py | 19 +- mycode/DBManager.py | 3 + .../InstructionManager.py | 0 mycode/LLMManager.py | 4 +- TargetManager.py => mycode/TargetManager.py | 0 pipfile | 19 +- test | 1 - test.py | 26 +- tools/CurlTool.py | 17 +- tools/MkdirTool.py | 11 + tools/NiktoTool.py | 9 +- tools/NmapTool.py | 9 +- tools/PrintfTool.py | 11 + tools/PythoncodeTool.py | 4 +- tools/ToolBase.py | 5 +- tools/TouchTool.py | 11 + web/API/__init__.py | 4 + web/API/user.py | 143 +++ web/__init__.py | 65 + web/common/__init__.py | 0 web/common/errors.py | 4 + web/common/models.py | 10 + web/common/utils.py | 43 + web/main/__init__.py | 5 + web/main/routes.py | 83 ++ web/main/static/data/document.js | 7 + web/main/static/data/styles.css | 105 ++ web/main/static/favicon.ico | Bin 0 -> 72051 bytes web/main/static/favicon_bak.ico | Bin 0 -> 15406 bytes web/main/static/images/login/zf.svg | 26 + web/main/static/plugins/debug/debug.js | 171 +++ .../static/plugins/debug/styles/debug.css | 265 +++++ .../debug/styles/images/console_panel_off.svg | 3 + .../debug/styles/images/console_panel_on.svg | 3 + .../static/plugins/page_notes/page_notes.js | 474 ++++++++ .../styles/images/notes_panel_off.svg | 3 + .../styles/images/notes_panel_on.svg | 3 + .../plugins/page_notes/styles/page_notes.css | 209 ++++ .../static/plugins/recordplay/recordplay.js | 479 ++++++++ .../plugins/recordplay/styles/recordplay.css | 90 ++ web/main/static/plugins/sitemap/sitemap.js | 562 +++++++++ .../sitemap/styles/images/back_keys.svg | 7 + .../sitemap/styles/images/closed_item.svg | 14 + .../plugins/sitemap/styles/images/flow.svg | 15 + .../styles/images/folder_closed_blue.svg | 6 + .../sitemap/styles/images/forward_keys.svg | 10 + .../sitemap/styles/images/left_arrow.svg | 3 + .../sitemap/styles/images/open_item.svg | 12 + .../sitemap/styles/images/page_lt_grey.svg | 6 + .../sitemap/styles/images/right_arrow.svg | 3 + .../sitemap/styles/images/search_off.svg | 6 + .../sitemap/styles/images/search_on.svg | 6 + .../styles/images/sitemap_panel_off.svg | 3 + .../styles/images/sitemap_panel_on.svg | 3 + .../static/plugins/sitemap/styles/sitemap.css | 384 ++++++ web/main/static/resources/Other.html | 35 + .../static/resources/css/axure_rp_page.css | 292 +++++ .../static/resources/css/bootstrap.min.css | 6 + web/main/static/resources/css/default.css | 1052 +++++++++++++++++ web/main/static/resources/css/headers.css | 15 + .../static/resources/css/images/images.html | 25 + .../static/resources/css/images/newwindow.gif | Bin 0 -> 112 bytes web/main/static/resources/css/images/note.gif | Bin 0 -> 98 bytes .../static/resources/css/images/touch.cur | Bin 0 -> 16958 bytes .../static/resources/css/images/touch.svg | 32 + .../css/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_75_ffffff_1x400.png | Bin 0 -> 107 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 0 -> 123 bytes .../css/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../css/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../css/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../css/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../css/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../static/resources/css/jquery-ui-themes.css | 412 +++++++ .../static/resources/css/previewfonts.css | 12 + .../SourceSansPro-OpenFontLicense.txt | 93 ++ .../previewfonts/SourceSansPro-Regular.woff2 | Bin 0 -> 86844 bytes .../previewfonts/SourceSansPro-Semibold.woff2 | Bin 0 -> 86196 bytes web/main/static/resources/css/reset.css | 24 + web/main/static/resources/css/sign-in.css | 33 + web/main/static/resources/expand.html | 60 + .../static/resources/images/caret_down.svg | 3 + .../resources/images/caret_down_off.svg | 3 + web/main/static/resources/images/close_x.svg | 6 + .../resources/images/close_x_minimize.svg | 6 + web/main/static/resources/images/divider.png | Bin 0 -> 110 bytes web/main/static/resources/images/divider.svg | 13 + web/main/static/resources/images/exit.svg | 6 + .../static/resources/images/favicon_play.ico | Bin 0 -> 5430 bytes .../static/resources/images/overflow-icon.svg | 7 + .../resources/images/overflow_checkmark.svg | 3 + .../resources/images/overflow_icon_off.svg | 7 + web/main/static/resources/images/refresh.svg | 5 + web/main/static/resources/images/resize.svg | 5 + web/main/static/resources/images/return.svg | 3 + .../static/resources/images/transparent.gif | Bin 0 -> 43 bytes .../static/resources/images/views-icon.svg | 6 + web/main/static/resources/images/zf.png | Bin 0 -> 96356 bytes web/main/static/resources/images/zf.svg | 26 + web/main/static/resources/reload.html | 24 + .../resources/scripts/aiortc-client-new.js | 563 +++++++++ web/main/static/resources/scripts/base.js | 93 ++ .../resources/scripts/bootstrap.bundle.min.js | 7 + .../resources/scripts/channel_manager.js | 735 ++++++++++++ web/main/static/resources/scripts/client.js | 104 ++ web/main/static/resources/scripts/flv.min.js | 10 + .../resources/scripts/jquery-1.7.1.min.js | 4 + .../resources/scripts/jquery-3.2.1.min.js | 14 + .../scripts/jquery-3.2.1.slim.min.js | 4 + .../scripts/jquery-ui-1.8.10.custom.min.js | 233 ++++ .../static/resources/scripts/messagecenter.js | 381 ++++++ .../static/resources/scripts/model_manager.js | 303 +++++ .../static/resources/scripts/popper.min.js | 5 + .../static/resources/scripts/socket.io.min.js | 7 + .../resources/scripts/system_manager.js | 440 +++++++ .../static/resources/scripts/user_manager.js | 48 + .../static/resources/scripts/warn_manager.js | 246 ++++ web/main/templates/base.html | 78 ++ web/main/templates/footer.html | 29 + web/main/templates/header.html | 36 + web/main/templates/index_webrtc.html | 176 +++ web/main/templates/login.html | 124 ++ web/main/templates/system_manager.html | 286 +++++ web/main/templates/upload.html | 23 + web/main/templates/user_manager.html | 48 + web/main/templates/view_main.html | 143 +++ 134 files changed, 9732 insertions(+), 89 deletions(-) delete mode 100644 DBManager.py rename InstructionManager.py => mycode/InstructionManager.py (100%) rename TargetManager.py => mycode/TargetManager.py (100%) delete mode 100644 test create mode 100644 tools/MkdirTool.py create mode 100644 tools/PrintfTool.py create mode 100644 tools/TouchTool.py create mode 100644 web/API/__init__.py create mode 100644 web/API/user.py create mode 100644 web/__init__.py create mode 100644 web/common/__init__.py create mode 100644 web/common/errors.py create mode 100644 web/common/models.py create mode 100644 web/common/utils.py create mode 100644 web/main/__init__.py create mode 100644 web/main/routes.py create mode 100644 web/main/static/data/document.js create mode 100644 web/main/static/data/styles.css create mode 100644 web/main/static/favicon.ico create mode 100644 web/main/static/favicon_bak.ico create mode 100644 web/main/static/images/login/zf.svg create mode 100644 web/main/static/plugins/debug/debug.js create mode 100644 web/main/static/plugins/debug/styles/debug.css create mode 100644 web/main/static/plugins/debug/styles/images/console_panel_off.svg create mode 100644 web/main/static/plugins/debug/styles/images/console_panel_on.svg create mode 100644 web/main/static/plugins/page_notes/page_notes.js create mode 100644 web/main/static/plugins/page_notes/styles/images/notes_panel_off.svg create mode 100644 web/main/static/plugins/page_notes/styles/images/notes_panel_on.svg create mode 100644 web/main/static/plugins/page_notes/styles/page_notes.css create mode 100644 web/main/static/plugins/recordplay/recordplay.js create mode 100644 web/main/static/plugins/recordplay/styles/recordplay.css create mode 100644 web/main/static/plugins/sitemap/sitemap.js create mode 100644 web/main/static/plugins/sitemap/styles/images/back_keys.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/closed_item.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/flow.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/folder_closed_blue.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/forward_keys.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/left_arrow.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/open_item.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/page_lt_grey.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/right_arrow.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/search_off.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/search_on.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/sitemap_panel_off.svg create mode 100644 web/main/static/plugins/sitemap/styles/images/sitemap_panel_on.svg create mode 100644 web/main/static/plugins/sitemap/styles/sitemap.css create mode 100644 web/main/static/resources/Other.html create mode 100644 web/main/static/resources/css/axure_rp_page.css create mode 100644 web/main/static/resources/css/bootstrap.min.css create mode 100644 web/main/static/resources/css/default.css create mode 100644 web/main/static/resources/css/headers.css create mode 100644 web/main/static/resources/css/images/images.html create mode 100644 web/main/static/resources/css/images/newwindow.gif create mode 100644 web/main/static/resources/css/images/note.gif create mode 100644 web/main/static/resources/css/images/touch.cur create mode 100644 web/main/static/resources/css/images/touch.svg create mode 100644 web/main/static/resources/css/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 web/main/static/resources/css/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 web/main/static/resources/css/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 web/main/static/resources/css/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 web/main/static/resources/css/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 web/main/static/resources/css/images/ui-bg_glass_75_ffffff_1x400.png create mode 100644 web/main/static/resources/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 web/main/static/resources/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png create mode 100644 web/main/static/resources/css/images/ui-icons_222222_256x240.png create mode 100644 web/main/static/resources/css/images/ui-icons_2e83ff_256x240.png create mode 100644 web/main/static/resources/css/images/ui-icons_454545_256x240.png create mode 100644 web/main/static/resources/css/images/ui-icons_888888_256x240.png create mode 100644 web/main/static/resources/css/images/ui-icons_cd0a0a_256x240.png create mode 100644 web/main/static/resources/css/jquery-ui-themes.css create mode 100644 web/main/static/resources/css/previewfonts.css create mode 100644 web/main/static/resources/css/previewfonts/SourceSansPro-OpenFontLicense.txt create mode 100644 web/main/static/resources/css/previewfonts/SourceSansPro-Regular.woff2 create mode 100644 web/main/static/resources/css/previewfonts/SourceSansPro-Semibold.woff2 create mode 100644 web/main/static/resources/css/reset.css create mode 100644 web/main/static/resources/css/sign-in.css create mode 100644 web/main/static/resources/expand.html create mode 100644 web/main/static/resources/images/caret_down.svg create mode 100644 web/main/static/resources/images/caret_down_off.svg create mode 100644 web/main/static/resources/images/close_x.svg create mode 100644 web/main/static/resources/images/close_x_minimize.svg create mode 100644 web/main/static/resources/images/divider.png create mode 100644 web/main/static/resources/images/divider.svg create mode 100644 web/main/static/resources/images/exit.svg create mode 100644 web/main/static/resources/images/favicon_play.ico create mode 100644 web/main/static/resources/images/overflow-icon.svg create mode 100644 web/main/static/resources/images/overflow_checkmark.svg create mode 100644 web/main/static/resources/images/overflow_icon_off.svg create mode 100644 web/main/static/resources/images/refresh.svg create mode 100644 web/main/static/resources/images/resize.svg create mode 100644 web/main/static/resources/images/return.svg create mode 100644 web/main/static/resources/images/transparent.gif create mode 100644 web/main/static/resources/images/views-icon.svg create mode 100644 web/main/static/resources/images/zf.png create mode 100644 web/main/static/resources/images/zf.svg create mode 100644 web/main/static/resources/reload.html create mode 100644 web/main/static/resources/scripts/aiortc-client-new.js create mode 100644 web/main/static/resources/scripts/base.js create mode 100644 web/main/static/resources/scripts/bootstrap.bundle.min.js create mode 100644 web/main/static/resources/scripts/channel_manager.js create mode 100644 web/main/static/resources/scripts/client.js create mode 100644 web/main/static/resources/scripts/flv.min.js create mode 100644 web/main/static/resources/scripts/jquery-1.7.1.min.js create mode 100644 web/main/static/resources/scripts/jquery-3.2.1.min.js create mode 100644 web/main/static/resources/scripts/jquery-3.2.1.slim.min.js create mode 100644 web/main/static/resources/scripts/jquery-ui-1.8.10.custom.min.js create mode 100644 web/main/static/resources/scripts/messagecenter.js create mode 100644 web/main/static/resources/scripts/model_manager.js create mode 100644 web/main/static/resources/scripts/popper.min.js create mode 100644 web/main/static/resources/scripts/socket.io.min.js create mode 100644 web/main/static/resources/scripts/system_manager.js create mode 100644 web/main/static/resources/scripts/user_manager.js create mode 100644 web/main/static/resources/scripts/warn_manager.js create mode 100644 web/main/templates/base.html create mode 100644 web/main/templates/footer.html create mode 100644 web/main/templates/header.html create mode 100644 web/main/templates/index_webrtc.html create mode 100644 web/main/templates/login.html create mode 100644 web/main/templates/system_manager.html create mode 100644 web/main/templates/upload.html create mode 100644 web/main/templates/user_manager.html create mode 100644 web/main/templates/view_main.html diff --git a/DBManager.py b/DBManager.py deleted file mode 100644 index c5fc077..0000000 --- a/DBManager.py +++ /dev/null @@ -1,6 +0,0 @@ -''' -数据库管理功能类 -''' -class DBManager: - def __init__(self): - pass \ No newline at end of file diff --git a/TaskManager.py b/TaskManager.py index a668d6e..09b550e 100644 --- a/TaskManager.py +++ b/TaskManager.py @@ -1,11 +1,11 @@ ''' 渗透测试任务管理类 一次任务的闭合性要检查2025-3-10 一次任务后要清理LLM和InstrM的数据 ''' -from TargetManager import TargetManager # 从模块导入类 +from mycode.TargetManager import TargetManager # 从模块导入类 #from LLMManager import LLMManager # 同理修正其他导入 from mycode.ControlCenter import ControlCenter #控制中心替代LLM--控制中心要实现一定的基础逻辑和渗透测试树的维护。 from myutils.FileManager import FileManager -from InstructionManager import InstructionManager +from mycode.InstructionManager import InstructionManager from mycode.DBManager import DBManager from myutils.MyTime import get_local_timestr from myutils.MyLogger_logger import LogHandler @@ -28,7 +28,7 @@ class TaskManager: self.CCM = ControlCenter(self.DBM,self) self.InstrM = InstructionManager(self) # 类对象渗透,要约束只读取信息 # 控制最大并发指令数量 - self.max_thread_num = 6 + self.max_thread_num = 2 self.task_id = 0 #任务id -- self.workth_list = [] #线程句柄list # self.long_instr_num = 0 #耗时指令数量 @@ -94,7 +94,6 @@ class TaskManager: pickle.dump(self.CCM.attack_tree, f) except queue.Empty: - self.logger.debug("暂无需要执行指令的节点!") time.sleep(20) def start_task(self,target_name,target_in): @@ -143,13 +142,13 @@ if __name__ == "__main__": current_path = os.path.dirname(os.path.realpath(__file__)) strMsg = FM.read_file("test",1) - test_type = 1 + test_type = 2 instr_index = 19 iput_index = -1 # 0是根节点 indexs = [] if test_type == 0: #新目标测试 # 启动--初始化指令 - node_list = TM.CCM.start_do("192.168.204.137", 0) + node_list = TM.CCM.start_do("58.216.217.70", 1) #异步处理,需要等待线程结束了 for th in TM.CCM.llmth_list: th.join() @@ -210,8 +209,9 @@ if __name__ == "__main__": # 遍历node,查看有instr的ndoe nodes = TM.CCM.attack_tree.traverse_dfs() instrlist = nodes[instr_index].instr_queue - # instrlist = [''' - # '''] + instrlist = [''' + mkdir -p /tmp/nfs_test && mount -t nfs -o nolock 192.168.204.137:/ /tmp/nfs_test && ls /tmp/nfs_test + '''] for instr in instrlist: start_time = get_local_timestr() # 指令执行开始时间 bres, instr, reslut, source_result, ext_params = TM.InstrM.execute_instruction(instr) @@ -285,6 +285,14 @@ if __name__ == "__main__": with open("attack_tree", 'wb') as f: pickle.dump(TM.CCM.attack_tree, f) + elif test_type ==8: #显示有漏洞信息的数据 + with open("attack_tree", "rb") as f: + TM.CCM.attack_tree = pickle.load(f) + nodes = TM.CCM.attack_tree.traverse_dfs() + if nodes: + for node in nodes: + if node.vul_type != "未发现": + print(f"{node.path}----{node.vul_type}") elif test_type == 9: #处理自定义llm回复内容 with open("attack_tree", "rb") as f: TM.CCM.attack_tree = pickle.load(f) diff --git a/main.py b/main.py index f316fea..50be11d 100644 --- a/main.py +++ b/main.py @@ -1,40 +1,16 @@ -# This is a sample Python script. - -# Press Shift+F10 to execute it or replace it with your mycode. -# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings. - - -import os -from openai import OpenAI +import asyncio +import uvicorn import TaskManager +import os +from web import create_app +from hypercorn.asyncio import serve +from hypercorn.config import Config -def LLMtest(): - client = OpenAI( - # 请用知识引擎原子能力API Key将下行替换为:api_key="sk-xxx", - api_key="sk-fGBYaQLHykBOQsFwVrQdIFTsYr8YDtDVDQWFU41mFsmvfNPc", - base_url="https://api.lkeap.cloud.tencent.com/v1", - ) - - completion = client.chat.completions.create( - model="deepseek-v3", # 此处以 deepseek-r1 为例,可按需更换模型名称。 - messages=[ - {'role': 'user', 'content': '你是一个渗透测试专家,正在对IP58.216.217.70进行渗透测试。当前阶段是[信息收集]。请生成下一步的指令。'} - ], - ) - - # 通过reasoning_content字段打印思考过程 - # print("思考过程:") - # print(completion.choices[0].message.reasoning_content) - # 通过content字段打印最终答案 - print("最终答案:") - print(completion.choices[0].message.content) - print("\n" + "=" * 20 + "Token 使用情况" + "=" * 20 + "\n") - print(completion.usage) - - -def print_hi(name): - # Use a breakpoint in the mycode line below to debug your script. - print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint. +async def run_quart_app(): + app = create_app() + config = Config() + config.bind = ["0.0.0.0:5001"] + await serve(app, config) #对某个目标进行测试 def startWork(targets): @@ -46,7 +22,8 @@ def startWork(targets): # Press the green button in the gutter to run the script. if __name__ == '__main__': - print_hi('PyCharm') - LLMtest() + print(f"Current working directory (run.py): {os.getcwd()}") + #启动web项目 + asyncio.run(run_quart_app()) + uvicorn.run("run:app", host="0.0.0.0", port=5001, workers=4, reload=True) -# See PyCharm help at https://www.jetbrains.com/help/pycharm/ diff --git a/mycode/ControlCenter.py b/mycode/ControlCenter.py index 1384ae2..63a29ae 100644 --- a/mycode/ControlCenter.py +++ b/mycode/ControlCenter.py @@ -245,10 +245,10 @@ class ControlCenter: action = node_json["action"] if action == "add_node": # 新增节点 parent_node_name = node_json["parent"] + status = node_json["status"] + node_names = node_json["nodes"].split(',') # 新增节点原则上应该都是当前节点增加子节点 if node.name == parent_node_name or parent_node_name.endswith(node.name): - status = node_json["status"] - node_names = node_json["nodes"].split(',') for node_name in node_names: # 判重---遇到过补充未生成指令的节点时,返回了新增这些节点的指令 bfind = False @@ -260,6 +260,19 @@ class ControlCenter: # 添加节点 new_node = TreeNode(node_name, node.task_id, status) node.add_child(new_node) # message的传递待验证 + elif node.parent.name == parent_node_name or parent_node_name.endswith(node.parent.name): + #是添加当前节点的平级节点(当前节点的父节点下添加子节点) --使用2233ai-o3时遇到的情况 + for node_name in node_names: + # 判重---遇到过补充未生成指令的节点时,返回了新增这些节点的指令 + bfind = False + for node_child in node.parent.children: + if node_child.name == node_name: + bfind = True + break + if not bfind: + # 添加节点 + new_node = TreeNode(node_name, node.task_id, status) + node.parent.add_child(new_node) else: self.logger.error(f"添加子节点时,遇到父节点名称不一致的,需要介入!!{node_json}") # 丢弃该节点 else:#其他指令添加到list @@ -272,7 +285,7 @@ class ControlCenter: node_name = node_json["node"] status = node_json["status"] vul_type = "未发现" - if node.name == node_name: + if node.name == node_name or node_name.endswith(node_name): node.status = status if "vulnerability" in node_json: #{\"name\":\"漏洞名称\",\"risk\":\"风险等级(低危/中危/高危)\",\"info\":\"补充信息(没有可为空)\"}}; diff --git a/mycode/DBManager.py b/mycode/DBManager.py index c25031e..6a83954 100644 --- a/mycode/DBManager.py +++ b/mycode/DBManager.py @@ -246,6 +246,9 @@ class DBManager: cursor.close() conn.close() +#全局的单一实例 +app_DBM = DBManager() +app_DBM.connect() if __name__ == "__main__": mDBM = DBManager() diff --git a/InstructionManager.py b/mycode/InstructionManager.py similarity index 100% rename from InstructionManager.py rename to mycode/InstructionManager.py diff --git a/mycode/LLMManager.py b/mycode/LLMManager.py index e3d8101..9b8824c 100644 --- a/mycode/LLMManager.py +++ b/mycode/LLMManager.py @@ -97,8 +97,8 @@ class LLMManager: - 完成测试未发现漏洞:{\"action\": \"update_status\", \"node\": \"节点\", \"status\": \"已完成\"}; - 完成测试且发现漏洞:{\"action\": \"update_status\", \"node\": \"节点\", \"status\": \"已完成\",\"vulnerability\": {\"name\":\"漏洞名称\",\"risk\":\"风险等级(低危/中危/高危)\",\"info\":\"补充信息(没有可为空)\"}}; **测试指令格式** -- shell指令:```bash-[节点路径](.*?)```包裹,需要避免用户交互,若涉及到多步指令,请生成python代码; -- python指令:```python-[节点路径](.*?)```包裹,主函数名为dynamic_fun,需包含错误处理,必须返回一个tuple(status, output); +- shell指令:```bash-[节点路径]指令内容```包裹,需要避免用户交互,若涉及到多步指令,请生成python代码; +- python指令:```python-[节点路径]指令内容```包裹,主函数名为dynamic_fun,需包含错误处理,必须返回一个tuple(status, output); - [节点路径]为从根节点到目标节点的完整层级描述。 **核心要求** - 优先保障新增中高危测试节点的完整性。 diff --git a/TargetManager.py b/mycode/TargetManager.py similarity index 100% rename from TargetManager.py rename to mycode/TargetManager.py diff --git a/pipfile b/pipfile index 7c486fe..5260e24 100644 --- a/pipfile +++ b/pipfile @@ -20,4 +20,21 @@ pip install psycopg2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ cd /usr/share/wordlists/ gzip -d rockyou.txt.gz -#searchsploit -u 更新漏洞信息 \ No newline at end of file +#searchsploit -u 更新漏洞信息 +#-----------------web相关------------------- +pip install quart -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install hypercorn -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install uvicorn[standard] -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install quart-session -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install quart-cors -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install pymemcache -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install quart-sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple + + +---arial.ttf字体--- +sudo apt-get install ttf-mscorefonts-installer +sudo fc-cache -fv #更新字体缓存 +fc-match Arial #验证安装 + + diff --git a/test b/test deleted file mode 100644 index 14e8fac..0000000 --- a/test +++ /dev/null @@ -1 +0,0 @@ -[{"role": "system", "content": "你是一位资深的渗透测试专家,需要动态控制整个渗透测试过程,包括信息收集、漏洞扫描、漏洞利用等阶段,最终生成渗透测试报告。由你规划执行的指令,我会根据你的指令执行并提交结果,你再对结果进行分析,规划并生成下一步指令,直到完成渗透测试,生成测试报告。生成的指令需满足如下约束:1.只返回具体的shell指令或Python代码,不要包含注释和说明;2.shell指令以```bash(.*?)```包裹,python代码以```python(.*?)```包裹;3.针对提供的Python代码,需要包含错误处理,并将执行结果保存到文件中(为每个任务指定唯一文件名),执行结束返回success或failure和该文件名;4.如果认为渗透测试已完成,请生成生成报告的python代码,并返回success和complete"}, {"role": "user", "content": "现在开始对目标192.168.204.137进行渗透测试,已知信息无,请提供下一步执行的指令。"}, {"role": "assistant", "content": "```bash\nnmap -Pn -sS -sV -O -T4 -p- 192.168.204.137 -oN nmap_initial_scan.txt\n```"}] \ No newline at end of file diff --git a/test.py b/test.py index 0df3139..621a68c 100644 --- a/test.py +++ b/test.py @@ -57,25 +57,23 @@ def do_worker_ftp_script(str_instruction): import socket +import ssl def dynamic_fun(): try: - host = "192.168.204.137" - port = 8009 - # 尝试建立连接 - sock = socket.create_connection((host, port), timeout=15) - # 发送一个基础的AJP协议探测包(仅用于检测响应) - payload = b'\x12\x34\x00\x02' # 示例数据包 - sock.sendall(payload) - response = sock.recv(1024) - sock.close() - if response: - return (1, "收到响应,可能存在CVE-2020-1938漏洞风险,请进一步人工验证") - else: - return (0, "无响应,暂未检测到漏洞") + host = "58.216.217.70" + port = 992 + # Create a socket and wrap it with SSL context since service is SSL/Telnet + context = ssl.create_default_context() + sock = socket.create_connection((host, port), timeout=5) + ssl_sock = context.wrap_socket(sock, server_hostname=host) + # Attempt to receive banner + banner = ssl_sock.recv(1024) + ssl_sock.close() + return (True, banner.decode("utf-8", errors="ignore")) except Exception as e: - return (0, "连接失败或错误: " + str(e)) + return (False, str(e)) if __name__ == "__main__": # 示例使用 diff --git a/tools/CurlTool.py b/tools/CurlTool.py index 5a26741..fc47fc1 100644 --- a/tools/CurlTool.py +++ b/tools/CurlTool.py @@ -56,14 +56,15 @@ class CurlTool(ToolBase): parts = instruction_old.split() if 'base64 -d' in instruction_old: return instruction_old - if '-i' not in parts and '--include' not in parts: - url_index = next((i for i, p in enumerate(parts) if p.startswith(('http://', 'https://'))), None) - if url_index is not None: - # 在URL前插入 -i 参数‌:ml-citation{ref="1" data="citationList"} - parts.insert(url_index, '-i') - else: - # 无URL时直接在末尾添加 - parts.append('-i') + if "-I" not in parts:#-I 仅输出响应头信息 + if '-i' not in parts and '--include' not in parts: + url_index = next((i for i, p in enumerate(parts) if p.startswith(('http://', 'https://'))), None) + if url_index is not None: + # 在URL前插入 -i 参数‌:ml-citation{ref="1" data="citationList"} + parts.insert(url_index, '-i') + else: + # 无URL时直接在末尾添加 + parts.append('-i') return ' '.join(parts),timeout def get_ssl_info(self,stderr,stdout): diff --git a/tools/MkdirTool.py b/tools/MkdirTool.py new file mode 100644 index 0000000..adcf061 --- /dev/null +++ b/tools/MkdirTool.py @@ -0,0 +1,11 @@ +from tools.ToolBase import ToolBase + +class MkdirTool(ToolBase): + def validate_instruction(self, instruction): + #指令过滤 + timeout = 0 + return instruction,timeout + + def analyze_result(self, result,instruction,stderr,stdout): + #指令结果分析 + return result \ No newline at end of file diff --git a/tools/NiktoTool.py b/tools/NiktoTool.py index 3b045b3..0ed26fa 100644 --- a/tools/NiktoTool.py +++ b/tools/NiktoTool.py @@ -10,12 +10,15 @@ class NiktoTool(ToolBase): :param instruction: :return: ''' - timeout = 0 + timeout = 60*30 #30分钟 # 使用正则表达式匹配 -ssl 参数及其相邻的空格 cleaned_command = re.sub(r'\s+-ssl\b|\b-ssl\b', '', instruction, flags=re.IGNORECASE) # 处理可能残留的多余空格 command = re.sub(r'\s+', ' ', cleaned_command).strip() command = command.replace("-p80","-p 80") + #添加输出文件 + if "-output" not in instruction: + instruction += " -output nikto_out.txt" return command,timeout @@ -23,8 +26,8 @@ class NiktoTool(ToolBase): # 检查结果 if stderr: result = stderr - else: - result = self.parse_nikto_full_info(result) + # else: + # result = self.parse_nikto_full_info(result) return result def parse_nikto_full_info(self,nikto_output: str) -> dict: diff --git a/tools/NmapTool.py b/tools/NmapTool.py index f5994cc..5f237d5 100644 --- a/tools/NmapTool.py +++ b/tools/NmapTool.py @@ -92,9 +92,12 @@ class NmapTool(ToolBase): def analyze_result(self, result,instruction,stderr,stdout): # 检查结果 - start_index = result.find("If you know the service/version") - if start_index != -1: - return result[:start_index] + if len(result) < 5120: + return result + else: + start_index = result.find("If you know the service/version") + if start_index != -1: + return result[:start_index] #result = self.parse_nmap_output(result) # tmpstr = self.extract_key_info(result) diff --git a/tools/PrintfTool.py b/tools/PrintfTool.py new file mode 100644 index 0000000..a229d32 --- /dev/null +++ b/tools/PrintfTool.py @@ -0,0 +1,11 @@ +from tools.ToolBase import ToolBase + +class PrintfTool(ToolBase): + def validate_instruction(self, instruction): + #指令过滤 + timeout = 0 + return instruction,timeout + + def analyze_result(self, result,instruction,stderr,stdout): + #指令结果分析 + return result \ No newline at end of file diff --git a/tools/PythoncodeTool.py b/tools/PythoncodeTool.py index 91ed859..e8f4b14 100644 --- a/tools/PythoncodeTool.py +++ b/tools/PythoncodeTool.py @@ -11,6 +11,7 @@ import socket import struct import sys import requests +import ssl import mysql.connector from tools.ToolBase import ToolBase from mycode.Result_merge import my_merge @@ -111,7 +112,8 @@ class PythoncodeTool(ToolBase): 'mysql.connector':mysql.connector, 'struct':struct, 'sys':sys, - 'requests':requests} + 'requests':requests, + 'ssl':ssl} safe_locals = {} #不需要预设局部参数 # 在限制环境中执行代码 exec(instruction, safe_globals,safe_locals) diff --git a/tools/ToolBase.py b/tools/ToolBase.py index f8708c6..284bba6 100644 --- a/tools/ToolBase.py +++ b/tools/ToolBase.py @@ -44,6 +44,9 @@ class ToolBase(abc.ABC): :param valid_flags: 合法的输出参数列表,默认支持 -o, -oN, -oG, -output :return: dict,键为输出参数,值为对应的文件路径(如果有的话) """ + if command.strip().startswith("mkdir"): + return "" + if valid_flags is None: valid_flags = ['-o', '-oN', '-oG', '-output'] @@ -146,7 +149,7 @@ class ToolBase(abc.ABC): if not analysis: #analysis为“” 不提交LLM ext_params.is_user = True - return False,instruction,analysis,output,ext_params + #return False,instruction,analysis,output,ext_params -- 单节点后都要提交结果 return True,instruction, analysis,output,ext_params @abc.abstractmethod diff --git a/tools/TouchTool.py b/tools/TouchTool.py new file mode 100644 index 0000000..4cfe092 --- /dev/null +++ b/tools/TouchTool.py @@ -0,0 +1,11 @@ +from tools.ToolBase import ToolBase + +class TouchTool(ToolBase): + def validate_instruction(self, instruction): + #指令过滤 + timeout = 0 + return instruction,timeout + + def analyze_result(self, result,instruction,stderr,stdout): + #指令结果分析 + return result \ No newline at end of file diff --git a/web/API/__init__.py b/web/API/__init__.py new file mode 100644 index 0000000..92cdafb --- /dev/null +++ b/web/API/__init__.py @@ -0,0 +1,4 @@ +from quart import Blueprint +#定义模块 +api = Blueprint('api',__name__) +from . import user diff --git a/web/API/user.py b/web/API/user.py new file mode 100644 index 0000000..1c6f683 --- /dev/null +++ b/web/API/user.py @@ -0,0 +1,143 @@ +import os +import hashlib +from quart import Quart, render_template, request, session, redirect, url_for,jsonify,send_file,flash +from quart_sqlalchemy import SQLAlchemy +from quart_session import Session +from web.common.utils import generate_captcha,login_required +from myutils.ConfigManager import myCongif +from . import api +from web.common.errors import handle_error + + +@api.route('/user/code',methods=['GET']) +async def user_get_code(): #获取验证码 + captcha_text, buffer = generate_captcha() + print(captcha_text) + session['captcha'] = captcha_text # 记录验证码? + return await send_file(buffer, mimetype='image/png') + + +@api.route('/user/login',methods=['POST']) +async def user_login(): #用户登录 + try: + form = await request.form + username = form['username'] + password = form['password'] + captcha = form['captcha'] + except Exception as e: + await flash('请求数据格式错误', 'error') + return redirect(url_for('main.login')) + #return jsonify({'error': '请求数据格式错误'}), 400 + + if captcha != session.get('captcha'): + # 验证码验证过后,需要失效 + session.pop('captcha', None) + await flash('验证码错误', 'error') + return redirect(url_for('main.login')) + #return jsonify({'error': '验证码错误'}), 400 + #return 'captcha error!', 400 + #比对用户名和密码 + strsql = f"select password from user where username = '{username}'" + db_password = mDBM.do_select(strsql,1) + passwd_md5 = get_md5(password) + if db_password: + if db_password[0] == passwd_md5: #后续需要对密码进行MD5加默 + print("登录成功") + session['user'] = username + return redirect(url_for('main.get_html', html='view_main.html')) + await flash('用户名或密码错误', 'error') + return redirect(url_for('main.login')) + +@api.route('/user/userinfo',methods=['GET']) +@login_required +async def user_info(): #获取用户列表 + strsql = "select username,status,people,tellnum from user;"; + data = mDBM.do_select(strsql) + if data: + user_list = [{"username": user[0], "status": user[1], + "people":user[2],"tellnum":user[3]} for user in data] + return jsonify(user_list) + else: + return jsonify(0) + + +@api.route('/user/adduser',methods=['POST']) +@login_required +async def user_adduser(): #新增用户 + username = (await request.form)['username'] + people = (await request.form)['people'] + tellnum = (await request.form)['tellnum'] + strsql = f"select username from user where username = '{username}';" + password = myCongif.get_data('pw') + data = mDBM.do_select(strsql) + if data: + reStatus = 0 + reMsg = '用户名重复,请重新输入!' + else: + strsql = (f"INSERT INTO user (username ,password ,status,people,tellnum ) VALUES " + f"('{username}','{password}',1,'{people}','{tellnum}');") + ret = mDBM.do_sql(strsql) + if ret == True: + reStatus = 1 + reMsg = '添加用户成功' + else: + reStatus = 0 + reMsg = '添加用户异常,请联系管理员处理!' + return jsonify({'status':reStatus,'msg':reMsg}) + +@api.route('/user/passwd',methods=['POST']) +@login_required +async def user_change_passwd(): #修改密码 + json_data = await request.get_json() + oldpasswd = json_data.get('oldpasswd') + newpasswd = json_data.get('newpasswd') + old_md5= get_md5(oldpasswd) + print(old_md5) + strsql = f"select id from user where password='{old_md5}';" + data = mDBM.do_select(strsql,1) + reStatus = 0 + if data: + new_md5 = get_md5(newpasswd) + strsql = f"update user set password = '{new_md5}' where password = '{old_md5}';" + ret = mDBM.do_sql(strsql) + if ret: + reStatus = 1 + reMsg = '修改密码成功' + else: + reMsg = '修改密码失败,请联系技术支持!' + else: + reMsg = '原密码错误,请确认!' + return jsonify({'status':reStatus,'msg':reMsg}) + + +@api.route('/user/changeuser',methods=['POST']) +@login_required +async def user_change_user_info(): #修改用户信息 + username = (await request.form)['username'] + people = (await request.form)['people'] + tellnum = (await request.form)['tellnum'] + strsql = f"update user set people='{people}',tellnum='{tellnum}' where username='{username}';" + ret = mDBM.do_sql(strsql) + if ret == True: + reStatus = 1 + reMsg = '修改用户信息成功' + else: + reStatus = 0 + reMsg = '修改失败,请联系管理员处理!' + return jsonify({'status': reStatus, 'msg': reMsg}) + +@api.route('/user/', methods=['GET']) +async def get_user(user_id): + try: + user = user_id + if user: + return jsonify(user) + else: + return jsonify({'error': 'User not found'}), 404 + except Exception as e: + return handle_error(e) + +def get_md5(value): + md5 = hashlib.md5() # 创建一个md5对象 + md5.update(value.encode('utf-8')) # 使用utf-8编码更新待计算的字符串 + return md5.hexdigest() # 返回十六进制的MD5值 \ No newline at end of file diff --git a/web/__init__.py b/web/__init__.py new file mode 100644 index 0000000..4c5e75d --- /dev/null +++ b/web/__init__.py @@ -0,0 +1,65 @@ +from quart import Quart,session,redirect, url_for +from quart_session import Session +from quart_cors import cors +from pymemcache.client import base +from .main import main +from .API import api +from functools import wraps +from myutils.ConfigManager import myCongif +# from quart_sqlalchemy import SQLAlchemy +# from flask_migrate import Migrate + +#app.config['SECRET_KEY'] = 'mysecret' #密钥 --需要放配置文件 +#socketio = SocketIO(app) + +# Create the custom backend for quart-session +class MemcachedSessionInterface: #只是能用,不明所以 + def __init__(self, client): + self.client = client + + async def open_session(self, app, request): + sid = request.cookies.get(app.session_cookie_name) + if not sid: + sid = self._generate_sid() + val = await self.client.get(self.key_prefix + sid) + if val is not None: + return self._deserialize(val) + return self._get_default_session() + + async def save_session(self, app, session, response): + val = self._serialize(session) + await self.client.set(self.key_prefix + session.sid, val, self.expire) + +def create_app(): + app = Quart(__name__) + app.config['SECRET_KEY'] = 'zfxxkj_2024_!@#' + + if myCongif.get_data("model_platform") == "acl": + app.config['SESSION_TYPE'] = 'memcached' # session类型 + elif myCongif.get_data("model_platform") =="cpu": + app.config['SESSION_TYPE'] = 'redis' # session类型 + + #app.config['SESSION_FILE_DIR'] = './sessions' # session保存路径 + #app.config['SESSION_MEMCACHED'] = base.Client(('localhost', 11211)) + app.config['SESSION_PERMANENT'] = True # 如果设置为True,则关闭浏览器session就失效。 + app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密 + + memcached_client = base.Client(('localhost', 11211)) + app.session_interface = MemcachedSessionInterface(memcached_client) + Session(app) + + # 注册main + app.register_blueprint(main) + #注册API模块 + app.register_blueprint(api,url_prefix = '/api') + return app + + +def login_required(f): + @wraps(f) + async def decorated_function(*args, **kwargs): + if 'user' not in session: + return redirect(url_for('main.login')) + return await f(*args, **kwargs) + return decorated_function + diff --git a/web/common/__init__.py b/web/common/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/web/common/errors.py b/web/common/errors.py new file mode 100644 index 0000000..7cf2cf5 --- /dev/null +++ b/web/common/errors.py @@ -0,0 +1,4 @@ +from quart import jsonify + +def handle_error(e): + return jsonify({'error':str(e)}),500 \ No newline at end of file diff --git a/web/common/models.py b/web/common/models.py new file mode 100644 index 0000000..c446c76 --- /dev/null +++ b/web/common/models.py @@ -0,0 +1,10 @@ +from app import db +import datetime + +class Captcha(db.Model): + id = db.Column(db.Integer, primary_key=True) + captcha_text = db.Column(db.String(10), nullable=False) + timestamp = db.Column(db.DateTime, default=datetime.datetime.utcnow) + + def __init__(self, captcha_text): + self.captcha_text = captcha_text diff --git a/web/common/utils.py b/web/common/utils.py new file mode 100644 index 0000000..17a03c5 --- /dev/null +++ b/web/common/utils.py @@ -0,0 +1,43 @@ +from PIL import Image, ImageDraw, ImageFont,ImageFilter +import random +import string +import io +from functools import wraps +from quart import session, redirect, url_for + +def generate_captcha(): + characters = string.ascii_uppercase + string.digits + captcha_text = ''.join(random.choices(characters, k=6)) + + font = ImageFont.truetype("arial.ttf", 36) + image = Image.new('RGB', (200, 60), color=(255, 255, 255)) + draw = ImageDraw.Draw(image) + + for i in range(6): + draw.text((10 + i * 30, 10), captcha_text[i], font=font, + fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) + # 模糊化处理 + image = image.filter(ImageFilter.BLUR) + + # 将图片保存到BytesIO流中 + buffer = io.BytesIO() + image.save(buffer, 'jpeg') + buffer.seek(0) + + # captcha_path = os.path.join('static', 'captcha', f'{captcha_text}.png') + # image.save(captcha_path) + # return captcha_text, f'static/captcha/{captcha_text}.png' + return captcha_text, buffer + + +def verify_captcha(user_input, actual_captcha): + return user_input == actual_captcha + + +def login_required(f): + @wraps(f) + async def decorated_function(*args, **kwargs): + if 'user' not in session: + return redirect(url_for('main.index',error='未登录,请重新登录')) + return await f(*args, **kwargs) + return decorated_function diff --git a/web/main/__init__.py b/web/main/__init__.py new file mode 100644 index 0000000..bab07fb --- /dev/null +++ b/web/main/__init__.py @@ -0,0 +1,5 @@ +from quart import Blueprint + +main = Blueprint('main', __name__,static_folder='static/resources',template_folder='templates') + +from . import routes diff --git a/web/main/routes.py b/web/main/routes.py new file mode 100644 index 0000000..82a9b2b --- /dev/null +++ b/web/main/routes.py @@ -0,0 +1,83 @@ +import os +from web.main import main +from quart import render_template, send_from_directory,request +from quart import session, redirect, url_for,flash +from functools import wraps +from myutils.ConfigManager import myCongif +from werkzeug.utils import secure_filename + +''' +页面路由 +''' + +def login_required(f): + @wraps(f) + async def decorated_function(*args, **kwargs): + if 'user' not in session: + return redirect(url_for('main.index',error='未登录,请重新登录')) + return await f(*args, **kwargs) + return decorated_function + +@main.route('/') +async def index(): + #return await render_template('实时预览.html') + return await render_template('login.html') + #return await render_template('index_webrtc.html') + +@main.route('/login', methods=['GET', 'POST']) +async def login(): + if request.method == 'POST': + form = await request.form + username = form.get('username') + password = form.get('password') + # Add your login logic here + if username == 'admin' and password == 'password': + return redirect(url_for('main.dashboard')) # Assuming you have a dashboard route + else: + return "Invalid credentials", 401 + return await render_template('login.html') + +@main.route('/dashboard') +async def dashboard(): + return "Welcome to the dashboard!" + +@main.route('/favicon.ico') +async def favicon(): + return await send_from_directory('web/main/static', 'favicon.ico') + +@main.route('/') +@login_required +async def get_html(html): + return await render_template(html) + + +''' +各种配置文件路由 +''' +@main.route('/data/') +async def data(file): + return await send_from_directory('web/main/static/data', file) + +@main.route('/files//') +async def files(subdir,file): + return await send_from_directory(os.path.join('web/main/static/files', subdir), file) + +@main.route('/images//') +async def images(subdir,file): + return await send_from_directory(os.path.join('web/main/static/images', subdir), file) + +@main.route('/resources/') +async def resources(file): + return await send_from_directory('web/main/static/resources', file) + +@main.route('/resources//') +async def resources_dir(subdir,file): + return await send_from_directory(os.path.join('web/main/static/resources', subdir), file) + +@main.route('/resources/css//') +async def resources_css_dir(subdir,file): + return await send_from_directory(os.path.join('web/main/static/resources/css', subdir), file) + +@main.route('/resources/scripts//') +async def resources_scripts_dir(subdir,file): + return await send_from_directory(os.path.join('web/main/static/resources/scripts', subdir), file) diff --git a/web/main/static/data/document.js b/web/main/static/data/document.js new file mode 100644 index 0000000..35a308c --- /dev/null +++ b/web/main/static/data/document.js @@ -0,0 +1,7 @@ +$axure.loadDocument( +(function() { + var _ = function() { var r={},a=arguments; for(var i=0; izcUXFSqY$ihUg3c$N+gM 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 literal 0 HcmV?d00001 diff --git a/web/main/static/favicon_bak.ico b/web/main/static/favicon_bak.ico new file mode 100644 index 0000000000000000000000000000000000000000..b8d74a1e838aa4047f1c066a093a58026f216a0a GIT binary patch literal 15406 zcmeI3Ym8n+8OP6dy%v$%VxgF3!9v&C-F46Zu%S_#R2xMWSmd&{3GIrdt+f9BXXiPYcXsByx6>wG zPV#ha&*eWe&&)hC?>5W2vhM86Gc(fO?6YsnvY{-?dV8nJeP?Ca_o%DYT>B+i_SCsq z)&~zFNKDm}H1#c7v}j=Q;>BB_KS6IgQhtltQcC8|o%>G5^A_m|M+Zqoc^P@NZ56Mt z$H_k7`1Zqh$H2hA`;A9=)zQA+@jT({pzTKJi_iw27A{|6LJ(OpY?r}P{ zNC&Y&>W@PkRn}+nq`!oAI=Ywi_wd>L z=JMia9DYIl-=UelJmr_67evVJApJEYd11)$JN_$FhCb)Z+xV%@;TO)_uf&heYc*!% zd&vJ;1nUgaeEdn5+qlAWDfB#)`y}Zh=xb0hcP@X8$w%70LR;?7q?>5Jl{EC9RpviI z+ugNV?PKbTzE1tu)1m$}T0dKS-_HSf{~&KZX})1|RJwjW6)k18&-6kgkoKoezxng$ zzlT0t4}FI@c^aC4jyh8QX|;(*yq(%Jd3^FhXLAx8p&zBnlai6F>1j1}zOxZMnx~YV z(t624cbEA^3>Wt1K)V~*JwW?DN6MFBk*+y0TVWmh=!f9do)YT&7j+M_SKq*Xc3vo_ zI<<)h5^pH~vUG=Xei<3{`<007qy9eS%f#~HMaQENJ<=T=2h9<4wVD0n;+W2M>acY) zbS%KJJLV7YY=mwC!*2rqa2$)W`Z+W-bdJvt{*U`unV0Kmufrgp^m(*SsFSa1FA{%Y zqb%Qyec3_hExsPvl1;-vS$m3X9vU7VKAZF}K7T6TtbN%*N1Z>&rs}m<(KhMXxShP_ zEgu76#czjXD931P+f&V!OMgr{6Vh34^RRA8%k+PnwJ%BZX>FQL zo$a=t7j;_0j`vQF_l1#>5u(}YUn}Prn5-FrdaID9*>>h##3is`my&9Pp zn6r<1?HUV(HpLgQ|3`Qf1IOrQ>K}m2o@__`uP{J{aoc4w+?FF_UAi~ znM}7*TYtVBHb3F<{FA-peb(NJ{n+|L_w}A`jmyKP+fuE4_{NM6pV(k+t=LD$4@`$r z*^cbLw}$(y+dIEuvdB$vPP|(fLi@Dc5|dXQZ6Ad0a(eRpS30OG&L7&&H#=o1V=x-C zUnZkA?vU?QDw~qm2R1u@$DEItf0m_Mt24s>H?l8#*seQ&RfnARd+oQ1!OH9wZTQpG zt=f0}EAGLvtxsnub`__7i#4PtlFC2uo{Ro^;Ko67QOtEDe}KAuj+8Ism9El$n{7*-Kinx_ZJ;}8*U4^7&9~VqOWoSk z{xI1Bj*jo2Ats9zwQqpK;ubr<^K(pXP^I_p5XXO8S;0gNx)G}4odh+puSKe&e`*C>3WxL%z z=$yp1{H6FkCt?2$>h*idcHIM@*(sZ96OVW$14-5}$I^qsAS@}Jse0r_q1Q_EEADwr z`q>A2Q+iVMl98-*K>qtnT|a~Y%47PJuCSi*S%uEBaeoP&pMs|c*%_gH3*{No;dH%3 zz7D%rJ}690=h6kxfUgHqA7b-xMB|!})48g%=_uoHDd`8GGM_B%Q@i+u zP4fUw`BKb=Fox%JH+4F{jsJ(_XF}hGV&hVwt;wo~J`6_z4ig0CM^43gu) zw(dr%y9!e5n8cZC>lDBGfDY|(vAtDT74zxqVy+ZNhOxo6dGqF-PW_XRkN+5Y?_+!} z;|{j6gcj(1s#X7=f;9CncC{9CKKS;P*E+aO*cF3QRty~SJWpL8Sg$43dG5FWT<;^k ztyI1f{OHv0@!C^j=kyL?*FA#v7Xy64`W!SzXE%NQZP0$0x{(xSzrI8K{GCj#7u#cj zec^l2?oE-l6X4r!IA~uD9rO7Zmq%!Cc=mRRUl@eNw{3aq?at@>MxMvNZ!r8E$>$+c z_a068C_KZ)lS-?=FD!=HPr<*Qvf}y}{vwXl8OnHn3BI~HpsY9L(mALI|Lhn>>g=u^ z;-3h|lQGbK9IlgB@y`#3yneX^|7Q7bGsHgjE^PlQ(ucj&#rF5uZ&Etr9td=3KJF=t z&r|r3I|S)o)R5Stmot7>!yAsXuuqGX@Ri5?F|<5meKGu@5AEUYy!hKQ{=|MyM9E9}~X ztX!n{Td{u{c1ziJ*C6wcKyJ5wLoyyqQ~2p`H2ya^KXt#&#O|~Cdt`tk?*sUY^UK$z zygSeS5Xilb%(Odd75IfEu$5!f`K2>B(N@F{A%2w^KgF!Ye34g-w~f8D?r+?xzz@b` z{NUm@?ZG}4<;Peuy)o>nqh0r#zXfuyGBXCI|Jz5r(hz)hj*7Y;kh_{ZU;| zY~$bG_qdp;E&S+umhqY^#Z}>#F2-ep!(VrQR~z;Aexi6_SBLoDMBf)s+f^lga0!3x z{X|{Ro~XN~-rrx-K1jaZ@t2Q12K7{hUvB~EyN5Ygn}dz~qxVCw{}evG`CJ2Cr9QVw zcj&FJc<<< z$^89jR9I3t8`a};tH7uA(8@dR1pJ-+ekWV{y<%EC+X!#09pBS$GTN8IH&Wl9s>;iT z;(GnoQq|Yx_Ewz_IzOty8tT#i^I9ug0B^X@w9`4T>zr1sp%|o!`H&9jlFlOTYX@5k mGK!b{zuySowZd_Yl_hh^|9&Ir + + + + + + + diff --git a/web/main/static/plugins/debug/debug.js b/web/main/static/plugins/debug/debug.js new file mode 100644 index 0000000..57d37c1 --- /dev/null +++ b/web/main/static/plugins/debug/debug.js @@ -0,0 +1,171 @@ +// use this to isolate the scope +(function () { + + if(!$axure.document.configuration.showConsole) { return; } + + $(document).ready(function () { + $axure.player.createPluginHost({ + id: 'debugHost', + context: 'inspect', + title: 'Console', + gid: 3 + }); + + generateDebug(); + + $('#variablesClearLink').click(clearvars_click); + $('#traceClear').click(cleartrace_click); + $('#traceToggle').click(stoptrace_click); + $('#traceStart').click(starttrace_click); + $('#traceClear').hide(); + $('#traceToggle').hide(); + + $('#closeConsole').click(close); + + var currentStack= []; + var finishedStack = []; + + $axure.messageCenter.addMessageListener(function (message, data) { + if(message == 'axCompositeEventMessage') { + for(var i = 0; i < data.length; i++) { + processMessages(data[i].message, data[i].data); + } + } else processMessages(message, data); + }); + + var processMessages = function(message, data) { + if(message == 'globalVariableValues') { + $('#variablesDiv').empty(); + for(var key in data) { + var value = data[key] == '' ? '(blank)' : data[key]; + $('#variablesDiv').append('

'); + } + } else if(message == 'axEvent') { + var addToStack = "
"; + addToStack += "
"; + addToStack += "
" + new Date().toLocaleTimeString() + "
"; + addToStack += "
" + data.event.description + ":
"; + addToStack += "
" + data.label + " (" + data.type + ")
"; + addToStack += "
"; + + currentStack.push(addToStack); + } else if (message == 'axEventComplete') { + currentStack[currentStack.length - 1] += "
"; + finishedStack.push(currentStack.pop()); + if(currentStack.length == 0) { + $('#traceEmptyState').hide(); + $('#traceClear').show(); + $('#traceToggle').show(); + + for(var i = finishedStack.length - 1; i >= 0; i--) { + if($('#traceDiv').children().length > 99) $('#traceDiv').children().last().remove(); + $('#traceDiv').prepend(finishedStack[i]); + } + finishedStack = []; + } + } else if (message == 'axCase') { + //var addToStack = "
"; + var addToStack = "
"; + addToStack += "
" + data.item + "
"; + if (data.description) { addToStack += "
" + data.description + "
" }; + addToStack += "
"; + + currentStack[currentStack.length - 1] += addToStack; + } else if (message == 'axAction') { + var addToStack = "
"; + addToStack += "
" + data.name + "
"; + //addToStack += "
" + data.item + "
"; + //if (data.description) { addToStack += "
" + data.description + "
" }; + addToStack += "
"; + + currentStack[currentStack.length - 1] += addToStack; + } else if (message == 'axInfo') { + var addToStack = "
"; + addToStack += "
" + data.item + "
"; + if (data.description) { addToStack += "
" + data.description + "
" }; + addToStack += "
"; + + currentStack[currentStack.length - 1] += addToStack; + } + } + + // bind to the page load + $axure.page.bind('load.debug', function () { + var traceStr = $axure.player.getHashStringVar(TRACE_VAR_NAME); + if (traceStr.length > 0) $axure.messageCenter.setState("isTracing", true); + else $axure.messageCenter.setState("isTracing", false); + $axure.messageCenter.postMessage('getGlobalVariables', ''); + + return false; + }); + + function clearvars_click(event) { + $axure.messageCenter.postMessage('resetGlobalVariables', ''); + } + + function close() { + $axure.player.pluginClose("debugHost"); + } + + function cleartrace_click(event) { + $('#traceDiv').html(''); + } + + function starttrace_click(event) { + $axure.messageCenter.setState("isTracing", true); + //$('#traceDiv').html(''); + $('#traceEmptyState').hide(); + $('#traceClear').show(); + $('#traceToggle').text('Stop Trace'); + $('#traceToggle').off("click"); + $('#traceToggle').click(stoptrace_click); + $('#traceToggle').show(); + console.log("starting trace"); + $axure.player.setVarInCurrentUrlHash(TRACE_VAR_NAME, 1); + } + + function stoptrace_click(event) { + $axure.messageCenter.setState("isTracing", false); + $('#traceDiv').prepend('
Trace Paused
'); + $('#traceToggle').text('Restart Trace'); + $('#traceToggle').off("click"); + $('#traceToggle').click(starttrace_click); + console.log("stopping trace"); + $axure.player.deleteVarFromCurrentUrlHash(TRACE_VAR_NAME); + } + }); + + function generateDebug() { + var pageNotesUi = "
"; + pageNotesUi += "
"; + pageNotesUi += "
Console
"; + + pageNotesUi += "
"; + pageNotesUi += "
"; + + pageNotesUi += "
"; + pageNotesUi += "
"; + + pageNotesUi += "
"; + pageNotesUi += "TraceClear TraceStop Trace"; + pageNotesUi += "
"; + pageNotesUi += "
"; + pageNotesUi += "
"; + pageNotesUi += "
"; + + + pageNotesUi += "
"; + pageNotesUi += "
Click the button below to start recording interactions as you click through the prototype.
"; + pageNotesUi += "
Start Trace
"; + pageNotesUi += "
"; + pageNotesUi += "
"; + pageNotesUi += "
"; + + $('#debugHost').html(pageNotesUi); + $('#traceEmptyState').show(); + } + +})(); \ No newline at end of file diff --git a/web/main/static/plugins/debug/styles/debug.css b/web/main/static/plugins/debug/styles/debug.css new file mode 100644 index 0000000..a478293 --- /dev/null +++ b/web/main/static/plugins/debug/styles/debug.css @@ -0,0 +1,265 @@ +#debugHost { + display: flex; + flex-direction: column; + font-size: 13px; + color: #4a4a4a; + height: 100%; +} + +#debugHostBtn { + order: 4; +} + +#debugHostBtn a { + background: url('images/console_panel_on.svg') no-repeat center center, linear-gradient(transparent, transparent); +} + +#debugHostBtn a.selected, #debugHostBtn a.selected:hover { + background: url('images/console_panel_off.svg') no-repeat center center, linear-gradient(transparent, transparent); +} + +#debugToolbar { + margin-left: 8px; +} + +#variablesClearLink { + display: inline-block; + margin-bottom: 15px; +} + +#variablesClearLink:hover { + color: #0a6cd6; +} + +#traceClearLink { + display: inline-block; + margin-bottom: 15px; +} + +#traceClearLink:hover { + color: #0a6cd6; +} + +#debugScrollContainer +{ + overflow: auto; + width: 100%; + -webkit-overflow-scrolling: touch; + flex: 1; +} + +#debugContainer { + padding: 10px 0px 10px 0px; +} + +#consoleTitle { + clear: right; + margin: 12px 0px; +} + +.variableName +{ + font-weight: bold; +} + +.variableDiv +{ + margin-bottom: 20px; + line-height: 16px; + +} + +#variablesDiv +{ + clear: right; +} + +#variablesContainer { + border-bottom: solid 1px #e7e7e7; + padding: 0px 10px 12px 10px; +} + +#traceContainer { + margin-bottom: 5px; + padding: 15px 10px 0px 10px; +} + +#variablesTitle { + margin-bottom: 9px; +} + +.sectionTitle { + font-size: 11px; + color: #2c2c2c; + display: inline-block; +} + +.debugToolbarButton +{ + font-size: 1em; + color: #069; +} + +.axEventBlock { + display: inline-block; + width: 100%; + margin: 5px 0px 5px 0px; + line-height: 21px; + border-bottom: solid 5px #e7e7e7; +} + +.axEventContainer { + background-color: #e7e7e7; + padding: 0px 10px 0px 10px; +} + +.axTime { + margin: 0px 0px 0px 5px; + font-size: 10px; + color: #575757; + display: inline-block; + float: right; +} + +.axLabel { + display: inline-block; +} + +.axEvent { + margin: 0px 0px 2px 0px; + font-size: 15px; + font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; +} + +.axCaseContainer, .axActionContainer, .axInfoContainer { + justify-content: space-between; + padding: 0px 10px 0px 10px; +} + .axCaseContainer { + border-top: solid 2px #e7e7e7; + /*background-color: #47b6b5;*/ + background-color: #e7e7e7; + /*color: #ffffff;*/ + } + .axActionContainer { + border-top: solid 3px #e7e7e7; + } + .axInfoContainer { + border-top: solid 1px #e7e7e7; + } + +.axCaseItem, .axActionItem, .axInfoItem { + overflow: hidden; + text-overflow: ellipsis; +} + .axCaseItem { + font-size: 15px; + font-weight: bold; + } + .axActionItem { + font-weight: bold; + } + .axInfoItem { + color: #8c8c8c; + } + +.axCaseDescription { + flex: 5 0 33%; + margin-left: 10px; + text-align: right; +} +/*.axActionDescription, .axInfoDescription { + flex: 5 0 33%; + margin-left: 10px; + text-align: right; +}*/ + .axCaseDescription, .axActionDescription { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .axInfoDescription, .axActionDescription { + color: #8c8c8c; + font-size: 11px; + } + +.variableName { + width: 55%; + line-height: 0.92; + text-align: left; + color: #0891b3; + display: inline-block; + word-wrap: break-word; + vertical-align: top; +} + +.variableValue { + width: 45%; + line-height: 0.92; + text-align: right; + color: #373d48; + display: inline-block; + word-wrap: break-word; +} + +.traceEvent { + border-bottom: solid 1px #e7e7e7; +} + +.tracePausedNotification { + height: 25px; + /*background-color: #e7e7e7;*/ + border-radius: 5px; + line-height: 25px; + margin: 5px 10px; + text-align: center +} + +#traceEmptyState.emptyStateContainer { + margin-top: 0px; +} + +.variableList{ + width: 100%; + margin-bottom: 4px; +} + +.traceOption { + margin-left: 11px; + height: 16px; + float: right; + font-size: 12px; + font-style: italic; + line-height: 1.45; + text-align: right; + color: #8c8c8c; + text-decoration: underline; + display: inline-block; +} + +.startInstructions { + margin: auto; + width: 179px; + font-size: 11px; + text-align: center; + color: #666666; +} + +.startButton { + margin: auto; + margin-top: 10px; + width: 181px; + height: 24px; + border-radius: 2px; + border: solid 1px #008fe0; + text-align: center; + line-height: 24px; + color: #008fe0; + cursor: pointer; +} + +.debugLinksContainer { + text-align: right; +} \ No newline at end of file diff --git a/web/main/static/plugins/debug/styles/images/console_panel_off.svg b/web/main/static/plugins/debug/styles/images/console_panel_off.svg new file mode 100644 index 0000000..904e7b2 --- /dev/null +++ b/web/main/static/plugins/debug/styles/images/console_panel_off.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/debug/styles/images/console_panel_on.svg b/web/main/static/plugins/debug/styles/images/console_panel_on.svg new file mode 100644 index 0000000..1eeec2e --- /dev/null +++ b/web/main/static/plugins/debug/styles/images/console_panel_on.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/page_notes/page_notes.js b/web/main/static/plugins/page_notes/page_notes.js new file mode 100644 index 0000000..b0bee8c --- /dev/null +++ b/web/main/static/plugins/page_notes/page_notes.js @@ -0,0 +1,474 @@ +// use this to isolate the scope +(function () { + // No notes shown specified by generation config + if (!$axure.document.configuration.showPageNotes && !$axure.document.configuration.showAnnotationsSidebar && !$axure.document.configuration.showAnnotations) { return; } + + $(window.document).ready(function () { + // Load right panel for Page Notes + if ($axure.document.configuration.showPageNotes || $axure.document.configuration.showAnnotationsSidebar) { + $axure.player.createPluginHost({ + id: 'pageNotesHost', + context: 'inspect', + title: 'Documentation', + gid: 2, + }); + } + + // Load footnotes on widgets + if ($axure.document.configuration.showAnnotations) { + $('#overflowMenuContainer').prepend('
Show Note Markers
'); + } + + createNotesOverlay(); + generatePageNotes(); + + if ($axure.player.isMobileMode()) { + $('#showNotesOption').hide(); + } else { + $('#showNotesOption').click(footnotes_click); + $('#showNotesOption').find('.overflowOptionCheckbox').addClass('selected'); + } + + function populateNotes(pageForNotes) { + var hasNotes = false; + if ($axure.document.configuration.showPageNotes) { + var pageNoteUi = ''; + + function populatePageNotes(pageOrMaster) { + //populate the page notes + var notes = pageOrMaster.notes; + if (notes && !$.isEmptyObject(notes)) { + pageNoteUi += "
" + pageOrMaster.pageName + "
"; + + var showNames = $axure.document.configuration.showPageNoteNames; + for(var noteName in notes) { + pageNoteUi += "
"; + if(showNames) { + pageNoteUi += "
" + noteName + "
"; + } + pageNoteUi += "
" + linkify(notes[noteName]) + "
"; + pageNoteUi += "
"; + //$('#pageNotesContent').append(pageNoteUi); + + hasNotes = true; + } + } + } + + populatePageNotes(pageForNotes); + if (pageForNotes.masterNotes) { + for (var i = 0; i < pageForNotes.masterNotes.length; i++) { + populatePageNotes(pageForNotes.masterNotes[i]); + } + } + + if (pageNoteUi.length > 0) { + pageNoteUi += "
"; + var pageNotesHeader = "
Page Notes
"; + $('#pageNotesContent').append(pageNotesHeader + pageNoteUi); + } + } + + if ($axure.document.configuration.showAnnotationsSidebar) { + var widgetNoteUi = ''; + //var widgetNotes = pageForNotes.widgetNotes; + function populateWidgetNotes(widgetNotes){ + if (widgetNotes) { + for (var i = 0; i < widgetNotes.length; i++) { + var widgetNote = widgetNotes[i]; + widgetNoteUi += "
"; + widgetNoteUi += "
" + widgetNote["fn"] + "
"; + widgetNoteUi += "
" + widgetNote["label"] + "
"; + + for (var widgetNoteName in widgetNote) { + if (widgetNoteName != "label" && widgetNoteName != "fn" && widgetNoteName != "ownerId") { + widgetNoteUi += "
" + widgetNoteName + "
"; + widgetNoteUi += "
" + linkify(widgetNote[widgetNoteName]) + "
"; + //widgetNoteUi += "
"; + } + } + widgetNoteUi += "
"; + //widgetNoteUi += "
"; + //$('#pageNotesContent').append(widgetNoteUi); + hasNotes = true; + } + } + } + + populateWidgetNotes(pageForNotes.widgetNotes); + if (pageForNotes.masterNotes) { + for (var i = 0; i < pageForNotes.masterNotes.length; i++) { + populateWidgetNotes(pageForNotes.masterNotes[i].widgetNotes); + } + } + + if (widgetNoteUi.length > 0) { + var widgetNotesHeader = "
Widget Notes
"; + $('#pageNotesContent').append(widgetNotesHeader + widgetNoteUi); + + //$('.widgetNoteContainer').children(':last-child').remove(); + //$('.widgetNoteFootnote').append("
"); + $('.widgetNoteContainer').click(function () { + var wasSelected = $(this).hasClass('widgetNoteContainerSelected'); + $('.widgetNoteContainerSelected').removeClass('widgetNoteContainerSelected'); + if (!wasSelected) $(this).addClass('widgetNoteContainerSelected'); + + var dimStr = $('.currentAdaptiveView').attr('data-dim'); + var h = dimStr ? dimStr.split('x')[1] : '0'; + var $leftPanel = $('.leftPanel:visible'); + var leftPanelOffset = (!$axure.player.isMobileMode() && $leftPanel.length > 0) ? $leftPanel.width() : 0; + var $rightPanel = $('.rightPanel:visible'); + var rightPanelOffset = (!$axure.player.isMobileMode() && $rightPanel.length > 0) ? $rightPanel.width() : 0; + var viewDimensions = { + h: h != '0' ? h : '', + scaleVal: $('.vpScaleOption').find('.selectedRadioButton').parent().attr('val'), + height: $('.rightPanel').height(), + panelWidthOffset: leftPanelOffset + rightPanelOffset + }; + $axure.messageCenter.postMessage('toggleSelectWidgetNote', { id: this.getAttribute('data-id'), value: !wasSelected, view: viewDimensions}); + }); + } + + + //if (pageForNotes.masterNotes) { + // for (var i = 0; i < pageForNotes.masterNotes.length; i++) { + // var master = pageForNotes.masterNotes[i]; + // hasNotes = populateNotes(master) || hasNotes; + // } + //} + } + + return hasNotes; + } + + // bind to the page load + $axure.page.bind('load.page_notes', function () { + closeAllDialogs(); + + var hasNotes = false; + + $('#pageNotesContent').html(""); + hasNotes = populateNotes($axure.page); + + if(hasNotes) $('#pageNotesEmptyState').hide(); + else $('#pageNotesEmptyState').show(); + + //If footnotes enabled for this prototype... + if ($axure.player.isMobileMode()) { + $axure.messageCenter.postMessage('annotationToggle', false); + } else if($axure.document.configuration.showAnnotations == true) { + //If the fn var is defined and set to 0, hide footnotes + //else if hide-footnotes button selected, hide them + var fnVal = $axure.player.getHashStringVar(FOOTNOTES_VAR_NAME); + if(fnVal.length > 0 && fnVal == 0) { + $('#showNotesOption').find('.overflowOptionCheckbox').removeClass('selected'); + $axure.messageCenter.postMessage('annotationToggle', false); + } else if(!$('#showNotesOption').find('.overflowOptionCheckbox').hasClass('selected')) { + //If the footnotes button isn't selected, hide them on this loaded page + $axure.messageCenter.postMessage('annotationToggle', false); + } + } + + // Get multiple click call if not removing beforehand + $('#notesOverlay').off('click'); + $('#notesOverlay').on('click', '.closeNotesDialog', function () { + var ownerId = $(this).attr("data-ownerid"); + _toggleAnnDialog(ownerId); + }); + + $axure.player.updatePlugins(); + return false; + }); + + $axure.messageCenter.addMessageListener(function (message, data) { + //var messageData = { id: elementId, x: event.pageX, y: event.pageY } + if (message == 'toggleAnnDialog') { + _toggleAnnDialog(data.id, data.x, data.y, data.page); + } + }); + + }); + + function linkify(text) { + var urlRegex = /(\b(((https?|ftp|file):\/\/)|(www\.))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; + return text.replace(urlRegex, function (url, b, c) { + var url2 = (c == 'www.') ? 'http://' + url : url; + return '' + url + ''; + }); + } + + function getWidgetNotesHtml(ownerId, page) { + var pageForNotes = page || $axure.page; + var widgetNoteUi = ''; + + widgetNoteUi += "
"; + widgetNoteUi += "
"; + + function getNotesForPage(widgetNotes) { + for (var i = 0; i < widgetNotes.length; i++) { + var widgetNote = widgetNotes[i]; + if (widgetNote["ownerId"] == ownerId) { + widgetNoteUi += "
"; + widgetNoteUi += "
" + widgetNote["fn"] + "
"; + widgetNoteUi += "
" + widgetNote["label"] + "
"; + + for (var widgetNoteName in widgetNote) { + if (widgetNoteName != "label" && widgetNoteName != "fn" && widgetNoteName != "ownerId") { + widgetNoteUi += "
" + widgetNoteName + "
"; + widgetNoteUi += "
" + linkify(widgetNote[widgetNoteName]) + "
"; + } + } + widgetNoteUi += "
"; + } + } + } + + getNotesForPage(pageForNotes.widgetNotes); + if (pageForNotes.masterNotes) { + for (var i = 0; i < pageForNotes.masterNotes.length; i++) { + getNotesForPage(pageForNotes.masterNotes[i].widgetNotes); + } + } + + widgetNoteUi += "
"; + widgetNoteUi += "
"; + + return widgetNoteUi; + } + + var maxZIndex = 1; + var dialogs = {}; + var _toggleAnnDialog = function (id, srcLeft, srcTop, page) { + + if(dialogs[id]) { + var $dialog = dialogs[id]; + // reset the dialog + dialogs[id] = undefined; + $dialog.find('.notesDialogScroll').getNiceScroll().remove(); + $dialog.remove(); + return; + } + + var bufferH = 10; + var bufferV = 10; + var blnLeft = false; + var blnAbove = false; + var mfPos = $('#mainPanelContainer').position(); + var viewablePanelLeftMargin = parseInt($('#mainPanelContainer').css('margin-left')); + + var sourceTop = srcTop + mfPos.top; + var sourceLeft = srcLeft + viewablePanelLeftMargin; + + var width = 300; + var height = 300; + + if(sourceLeft > width + bufferH) { + blnLeft = true; + } + if(sourceTop > height + bufferV) { + blnAbove = true; + } + + var top = 0; + var left = 0; + if(blnAbove) top = sourceTop - height - 20; + else top = sourceTop + 10; + if(blnLeft) left = sourceLeft - width - 4; + else left = sourceLeft - 6; + + //need to set the zindex + maxZIndex = maxZIndex + 1; + + var $dialog = $('
') + .appendTo('#notesOverlay') + .html(getWidgetNotesHtml(id, page)); + + $dialog.css({ 'left': left, 'top': top, 'z-index': maxZIndex }); + + $dialog.find('.notesDialogScroll').niceScroll({ cursorcolor: "#8c8c8c", cursorborder: "0px solid #fff" }); + + $dialog.find('.notesDialogScroll').on($axure.eventNames.mouseDownName, function(event) { + event.stopPropagation(); + }); + + $dialog.find('.closeNotesDialog').on($axure.eventNames.mouseDownName, function (event) { + event.stopPropagation(); + }); + + $dialog.on($axure.eventNames.mouseDownName, startDialogMove); + var startMouseX; + var startMouseY; + var startDialogX; + var startDialogY; + function startDialogMove() { + startMouseX = window.event.pageX; + startMouseY = window.event.pageY; + var position = $dialog.position(); + startDialogX = position.left; + startDialogY = position.top; + + $dialog.addClass('active'); + $('
').insertAfter($('#notesOverlay')); + $(document).bind($axure.eventNames.mouseMoveName, doDialogMove).bind($axure.eventNames.mouseUpName, endDialogMove); + + $dialog.find('.notesDialogScroll').getNiceScroll().hide(); + } + + function doDialogMove() { + var currentX = window.event.pageX; + var currentY = window.event.pageY; + $dialog.css({ 'left': startDialogX + currentX - startMouseX, 'top': startDialogY + currentY - startMouseY }); + } + + function endDialogMove() { + $('div.splitterMask').remove(); + $dialog.removeClass('active'); + $(document).unbind($axure.eventNames.mouseMoveName, doDialogMove).unbind($axure.eventNames.mouseUpName, endDialogMove); + + $dialog.find('.notesDialogScroll').getNiceScroll().resize(); + $dialog.find('.notesDialogScroll').getNiceScroll().show(); + } + + $dialog.find('.resizeNotesDialog').on($axure.eventNames.mouseDownName, startDialogResize); + + var startDialogW; + var startDialogH; + function startDialogResize() { + event.stopPropagation(); + + startMouseX = window.event.pageX; + startMouseY = window.event.pageY; + startDialogW = Number($dialog.css('width').replace('px','')); + startDialogH = Number($dialog.css('height').replace('px', '')); + + $dialog.addClass('active'); + $('
').insertAfter($('#notesOverlay')); + $(document).bind($axure.eventNames.mouseMoveName, doDialogResize).bind($axure.eventNames.mouseUpName, endDialogResize); + + $dialog.find('.notesDialogScroll').getNiceScroll().hide(); + } + + function doDialogResize() { + var currentX = window.event.pageX; + var currentY = window.event.pageY; + var newWidth = Math.max(200, startDialogW + currentX - startMouseX); + var newHeight = Math.max(200, startDialogH + currentY - startMouseY); + $dialog.css({ 'width': newWidth, 'height': newHeight }); + } + + function endDialogResize() { + $('div.splitterMask').remove(); + $dialog.removeClass('active'); + $(document).unbind($axure.eventNames.mouseMoveName, doDialogResize).unbind($axure.eventNames.mouseUpName, endDialogResize); + + $dialog.find('.notesDialogScroll').getNiceScroll().resize(); + $dialog.find('.notesDialogScroll').getNiceScroll().show(); + } + + dialogs[id] = $dialog; + + // scroll ... just for IE + //window.scrollTo(scrollX, scrollY); + }; + + $(document).on('sidebarCollapse', function (event, data) { + clearSelection(); + }); + + $(document).on('pluginShown', function (event, data) { + if(data != 2) { + clearSelection(); + } + }); + + function clearSelection() { + var selectedNote = $('#pageNotesContainer').find('.widgetNoteContainerSelected'); + if(selectedNote.length > 0) { + selectedNote.removeClass('widgetNoteContainerSelected'); + //var dimStr = $('.currentAdaptiveView').attr('data-dim'); + //var h = dimStr ? dimStr.split('x')[1] : '0'; + //var $leftPanel = $('.leftPanel:visible'); + //var leftPanelOffset = (!$axure.player.isMobileMode() && $leftPanel.length > 0) ? $leftPanel.width() : 0; + //var $rightPanel = $('.rightPanel:visible'); + //var rightPanelOffset = (!$axure.player.isMobileMode() && $rightPanel.length > 0) ? $rightPanel.width() : 0; + //var viewDimensions = { + // h: h != '0' ? h : '', + // scaleVal: $('.vpScaleOption').find('.selectedRadioButton').parent().attr('val'), + // scrollLeft: $('#clipFrameScroll').scrollLeft(), + // scrollTop: $('#clipFrameScroll').scrollTop(), + // height: $('.rightPanel').height(), + // panelWidthOffset: leftPanelOffset + rightPanelOffset + //}; + //$axure.messageCenter.postMessage('toggleSelectWidgetNote', { id: '', value: false, view: viewDimensions }); + $axure.messageCenter.postMessage('toggleSelectWidgetNote', { id: '', value: false }); + //$axure.messageCenter.postMessage('toggleSelectWidgetNote', ''); + } + } + + function closeAllDialogs() { + for (var id in dialogs) { + var $dialog = dialogs[id]; + if ($dialog !== undefined) _toggleAnnDialog(id); + } + } + + $axure.player.toggleFootnotes = function(val) { + var scaleCheckDiv = $('#showNotesOption').find('.overflowOptionCheckbox'); + if (scaleCheckDiv.hasClass('selected')) { + if (!val) $('#showNotesOption').click(); + } else { + if (val) $('#showNotesOption').click(); + } + } + + function footnotes_click(event) { + var scaleCheckDiv = $('#showNotesOption').find('.overflowOptionCheckbox'); + if (scaleCheckDiv.hasClass('selected')) { + closeAllDialogs(); + + scaleCheckDiv.removeClass('selected'); + $axure.messageCenter.postMessage('annotationToggle', false); + //Add 'fn' hash string var so that footnotes stay hidden across reloads + $axure.player.setVarInCurrentUrlHash(FOOTNOTES_VAR_NAME, 0); + } else { + scaleCheckDiv.addClass('selected'); + $axure.messageCenter.postMessage('annotationToggle', true); + //Delete 'fn' hash string var if it exists since default is visible + $axure.player.deleteVarFromCurrentUrlHash(FOOTNOTES_VAR_NAME); + } + } + + function createNotesOverlay() { + var $targetPanel = $('#clippingBounds'); + + if (!$('#notesOverlay').length) { + var notesOverlay = document.createElement('div'); + notesOverlay.setAttribute('id', 'notesOverlay'); + + $targetPanel.prepend(notesOverlay); + $(notesOverlay).append(' '); + } + } + + function generatePageNotes() { + var pageNotesUi = "
"; + + pageNotesUi += "
"; + pageNotesUi += "
"; + pageNotesUi += "
"; + + + pageNotesUi += "
"; + pageNotesUi += "
"; + pageNotesUi += "
No notes for this page.
Notes added in Axure RP will appear here.
"; + pageNotesUi += ""; + pageNotesUi += "
"; + + $('#pageNotesHost').html(pageNotesUi); + + if(!$axure.document.configuration.showAnnotations) { + $('#pageNotesHost .pageNameHeader').css('padding-right', '55px'); + } + } + +})(); \ No newline at end of file diff --git a/web/main/static/plugins/page_notes/styles/images/notes_panel_off.svg b/web/main/static/plugins/page_notes/styles/images/notes_panel_off.svg new file mode 100644 index 0000000..3682486 --- /dev/null +++ b/web/main/static/plugins/page_notes/styles/images/notes_panel_off.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/page_notes/styles/images/notes_panel_on.svg b/web/main/static/plugins/page_notes/styles/images/notes_panel_on.svg new file mode 100644 index 0000000..3e7af5d --- /dev/null +++ b/web/main/static/plugins/page_notes/styles/images/notes_panel_on.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/page_notes/styles/page_notes.css b/web/main/static/plugins/page_notes/styles/page_notes.css new file mode 100644 index 0000000..35674c3 --- /dev/null +++ b/web/main/static/plugins/page_notes/styles/page_notes.css @@ -0,0 +1,209 @@ +#pageNotesHost { + display: flex; + flex-direction: column; + height: 100%; +} + +#pageNotesHostBtn { + order: 2; +} + +#pageNotesHostBtn a { + background: url('images/notes_panel_on.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +#pageNotesHostBtn a.selected, #pageNotesHostBtn a.selected:hover { + background: url('images/notes_panel_off.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +#pageNotesScrollContainer { + overflow: auto; + width: 100%; + flex: 1; + -webkit-overflow-scrolling: touch; +} + +#pageNotesContent { + overflow: visible; +} + +.pageNoteContainer { + padding: 0px 12px 8px 12px; +} + +.mobileMode .pageNoteContainer { + padding: 0px 16px 8px 17px; +} + +.pageNoteName { + font-size: 13px; + font-weight: bold; + color: #2c2c2c; + margin: 15px 0px 5px 0px; + white-space: nowrap; +} + +.pageNote { + font-size: 13px; + color: #2a2e38; + line-height: 1.67; + word-wrap: break-word; +} + +.pageNote ul { + list-style: disc; + padding: 0px 0px 0px 40px; +} + +.pageNote ul ul{ + list-style: circle; +} + +.pageNote ul ul ul{ + list-style: square; +} + +.pageNote ul ul ul ul { + list-style: disc; +} + +.pageNote ul ul ul ul ul { + list-style: circle; +} + +.pageNote ul ul ul ul ul ul { + list-style: square; +} + +.widgetNoteContainer { + padding: 12px; + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + cursor: pointer; +} + +.mobileMode .widgetNoteContainer { + padding: 12px 16px 12px 17px; +} + +.widgetNoteContainerSelected { + background-color: white; + border-bottom: 1px solid #c2c2c2; + border-top: 1px solid #c2c2c2; +} + +.widgetNoteFootnote { + display: inline-block; + padding-top: 1px; + background-color: #fff849; + font-size: 11px; + font-weight: bold; + line-height: 16px; + margin-right: 8px; + padding: 0px 5px; + color: #000; +} + +div.annnoteline { + display: inline-block; + width: 9px; + height: 1px; + border-bottom: 1px solid white; + margin-top: 1px; +} + +.widgetNoteLabel { + font-size: 13px; + font-weight: 600; + color: #58167d; + margin-top: 4px; + float: right; +} + +.noteLink { + text-decoration: inherit; + color: inherit; +} + +.noteLink:hover { + background-color: white; +} + +.notesSectionHeader { + margin: 0px 8px 0px 12px; +} + +.notesPageNameHeader { + margin: 8px 8px 15px 12px; +} + +.mobileMode .notesPageNameHeader { + margin: 18px 14px 5px 16px; +} + +#notesOverlay { + width: 0; + height: 0; + position: absolute; + overflow: visible; + z-index: 1; +} + +div.closeNotesDialog { + position: absolute; + top: 6px; + right: 6px; + width: 11px; + height: 10px; + object-fit: contain; + background: url(../../../resources/images/close_x.svg) no-repeat center center, linear-gradient(transparent, transparent); + margin-left: auto; + cursor: pointer; +} + +div.resizeNotesDialog { + position: absolute; + bottom: 2px; + right: 2px; + width: 11px; + height: 10px; + object-fit: contain; + background: url(../../../resources/images/resize.svg) no-repeat center center, linear-gradient(transparent, transparent); + margin-left: auto; + cursor: nwse-resize; +} + +div.notesDialog { + position: absolute; + padding: 16px 3px 10px 3px; + background-color: #efefef; + width: 300px; + height: 300px; + line-height: normal; + border: #8F949A solid 1px; + box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.4); + cursor: move; + display: flex; + flex-direction: column; + box-sizing: border-box; +} + +div.notesDialog.active { + user-select: none; +} + +div.notesDialog .widgetNoteContainer { + cursor: auto; + padding: 2px 26px 16px 14px; +} + +div.notesDialogScroll { + overflow-x: hidden; + overflow-y: auto; + height: 100%; + cursor: auto; +} + +.mobileMode .pageNoteName, .mobileMode #pageNotesToolbar, .mobileMode .dottedDivider { + display: none; +} \ No newline at end of file diff --git a/web/main/static/plugins/recordplay/recordplay.js b/web/main/static/plugins/recordplay/recordplay.js new file mode 100644 index 0000000..9d39458 --- /dev/null +++ b/web/main/static/plugins/recordplay/recordplay.js @@ -0,0 +1,479 @@ +// use this to isolate the scope +(function() { + + if(!$axure.document.configuration.showRecordPlay) { return; } + + $(window.document).ready(function() { + $axure.player.createPluginHost({ + id: 'recordPlayHost', + context: 'interface', + title: 'Recording' + }); + _generateRecordPlay(); + + $('#recordButton').click(_recordClick); + $('#playButton').click(_playClick); + $('#stopButton').click(_stopClick); + $('#deleteButton').click(_deleteClick); + + // bind to the page load + + $axure.page.bind('load.page_notes', function() { + + $.ajax({ + type: "POST", + url: '/RecordController/ListRecordings', + success: function(response) { + + $('#recordNameHeader').html(""); + $('#recordPlayContent').html(""); + //populate the notes + + axRecordingList = []; + + if(!eventList) { + recordingIndex = 0; + eventList = []; + recordingStartTime = 0; + bulkEventElement = ""; + lastBulkEvent = {}; + } + + for(var idx in response.recordingList) { + getOneRecording(response.recordingList[idx]); + } + + return false; + }, + // dataType: 'json' + }); + }); + }); + + var nameMatcher = new RegExp("^axRecording[0-9]{4}$", "i"); + var indexMatcher = new RegExp("[0-9]{4}$", "i"); + + var convertFromJson = function(oneRecording) { + + if(nameMatcher.exec(oneRecording.recordingName)) { + var myArray = indexMatcher.exec(oneRecording.recordingName); + var currIdx = parseInt(myArray); + if(recordingIndex < currIdx) { + recordingIndex = currIdx; + } + } + + + for(var idx in oneRecording.eventList) { + var thisEvent = oneRecording.eventList[idx]; + thisEvent.eventInfo = {}; + thisEvent.eventInfo.srcElement = thisEvent.elementID; + // TODO: check that this is correct. + + if(isBulkMouse(thisEvent.eventType)) { + thisEvent.eventInfo.mousePositions = []; + thisEvent.eventInfo.mousePositions = thisEvent.mousePositions; + thisEvent.timeStamp = thisEvent.mousePositions[0].timeStamp; + } + if(isSingleMouse(thisEvent.eventType)) { + thisEvent.eventInfo.cursor = {}; + thisEvent.eventInfo.cursor = thisEvent.cursor; + + } + if(thisEvent.eventType === 'OnDrag') { + thisEvent.eventInfo.dragInfo = {}; + thisEvent.eventInfo.dragInfo = thisEvent.dragInfo; + thisEvent.timeStamp = thisEvent.dragInfo.startTime; + } + + } + return oneRecording; + }; + + var getOneRecording = function(recordingItem) { + $.ajax({ + type: "POST", + url: '/RecordController/GetRecording', + data: { 'recordingId': recordingItem.recordingId }, + success: function(response) { + axRecordingList[axRecordingList.length] = convertFromJson(response); + var axRecordingContainer = $('#recordingContainer').find('li').filter('.recordingRootNode'); + axRecordingContainer.append(_formAxRecordingBranch(response)); + _attachEventTriggers(response); + }, // dataType: 'json' + }); + + }; + + var axRecordingList; + var eventList; + var recordingIndex; + var recordingStartTime; + var recordingId; + var recordingName; + + + var leadingZeros = function(number, digits) { // because this thing doesn't have string.format (or does it?) + var recurseLeadingZeros = function(number, digitsLeft) { + if(digitsLeft > 0) { + return recurseLeadingZeros("0" + number, digitsLeft - 1); + } else { + return number; + } + }; + return recurseLeadingZeros(number, digits - String(number).length); + }; + + + var generateRecordingName = function() { + return "axRecording" + leadingZeros(recordingIndex, 4); + }; + + var isSingleMouse = function(eventType) { + return (eventType === 'OnClick' || + eventType === 'OnMouseUp' || + eventType === 'OnMouseDown' || + eventType === 'OnMouseOver' || + eventType === 'OnKeyUp' || + eventType === 'OnSelectedChange' || + eventType === 'OnSelect' || + eventType === 'OnUnselect' || + eventType === 'OnTextChange' || + eventType === 'OnMouseOut'); + }; + + var isBulkMouse = function(eventType) { + return (eventType === 'OnMouseHover' || + eventType === 'OnMouseMove'); + }; + + var bulkEventElement; + var lastBulkEvent; + + + $axure.messageCenter.addMessageListener(function(message, eventData) { + var lastEvent, lastBulkData; + + if(message === 'logEvent') { + + if(bulkEventElement !== eventData.elementID) { + lastBulkEvent = {}; + bulkEventElement = eventData.elementID; + } + + if(isBulkMouse(eventData.eventType)) { + lastEvent = lastBulkEvent[eventData.eventType]; + + if(lastEvent) { + // this is the second or third or whatever onmousemove in a row + lastBulkData = lastEvent.eventInfo.mousePositions; + lastBulkData[lastBulkData.length] = { + cursor: eventData.eventInfo.cursor, + timeStamp: eventData.timeStamp + }; + } else { + + eventData.eventInfo.mousePositions = []; + eventData.eventInfo.mousePositions[0] = { + cursor: eventData.eventInfo.cursor, + timeStamp: eventData.timeStamp + }; + eventList[eventList.length] = eventData; + lastBulkEvent[eventData.eventType] = eventData; + } + } else { + var z = true; + } + + if(isSingleMouse(eventData.eventType) ) { + eventList[eventList.length] = eventData; + lastBulkEvent = {}; + bulkEventElement = eventData.elementID; + } + + if(eventData.eventType === 'OnDrag') { + + lastEvent = lastBulkEvent[eventData.eventType]; + + if (lastEvent) { + // this is the second or third or whatever onmousemove in a row + lastBulkData = lastEvent.eventInfo.mousePositions; + lastBulkData[lastBulkData.length] = { + dragInfo: eventData.eventInfo.dragInfo, + timeStamp: eventData.timeStamp + }; + } else { + eventData.eventInfo.mousePositions = []; + eventData.eventInfo.mousePositions[0] = { + dragInfo: eventData.eventInfo.dragInfo, + timeStamp: eventData.timeStamp + }; + eventList[eventList.length] = eventData; + lastBulkEvent[eventData.eventType] = eventData; + } + } +// if(eventData.eventType === 'OnKeyUp') { +// transmissionFields.eventInfo = eventData.eventInfo; +// $.ajax({ +// type: "POST", +// url: '/RecordController/LogMouseClick', +// data: transmissionFields, +// }); +// } + } + + }); + + + var _recordClick = function(event) { + $('#recordButton').addClass('recordPlayButtonSelected'); + recordingIndex++; + // $axure.recording.startRecord(); + + recordingStartTime = new Date().getTime(); + + $.ajax({ + type: "POST", + url: '/RecordController/CreateRecording', + data: { + 'recordingName': generateRecordingName(), + timeStamp: recordingStartTime + }, + success: function(response) { + recordingId = response.recordingId; + recordingName = response.recordingName; + $axure.messageCenter.postMessage('startRecording', {'recordingId' : recordingId, 'recordingName': recordingName}); + }, + // dataType: 'json' + }); + + }; + + var _playClick = function(event) { + $('#playButton').addClass('recordPlayButtonSelected'); + }; + + var _stopClick = function(event) { + var axRecording, axObjectDictionary, axRecordingContainer, transmissionFields; + $('#sitemapLinksContainer').toggle(); + if($('#recordButton').is('.recordPlayButtonSelected')) { + $('#recordButton').removeClass('recordPlayButtonSelected'); + // $axure.recording.stopRecord(); + + axRecording = { + 'recordingId' : recordingId, + 'recordingName': recordingName, + 'eventList': eventList + }; + + axRecordingList[axRecordingList.length] = axRecording; + axRecordingContainer = $('#recordingContainer').find('li').filter('.recordingRootNode'); + axRecordingContainer.append(_formAxRecordingBranch(axRecording)); + _attachEventTriggers(axRecording); + + lastBulkEvent = {}; + + var recordingStepList = []; + + for(var eventListIdx in eventList) { + var eventListItem = eventList[eventListIdx]; + + if(eventListItem.eventType === 'OnDrag') { + var lastDrag = eventListItem.eventInfo.mousePositions[eventListItem.eventInfo.mousePositions.length - 1].dragInfo; + eventListItem.eventInfo.dragInfo.currentX = lastDrag.currentX; + eventListItem.eventInfo.dragInfo.currentY = lastDrag.currentY; + eventListItem.eventInfo.dragInfo.currentTime = lastDrag.currentTime; + eventListItem.eventInfo.dragInfo.xDelta = eventListItem.eventInfo.dragInfo.currentX - eventListItem.eventInfo.dragInfo.lastX; + eventListItem.eventInfo.dragInfo.yDelta = eventListItem.eventInfo.dragInfo.currentY - eventListItem.eventInfo.dragInfo.lastY; + transmissionFields = {}; + transmissionFields = tackItOn(transmissionFields, eventListItem, ['eventType', 'elementID', 'path']); + transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['dragInfo']); + transmissionFields.recordingId = recordingId; + } + + if(isSingleMouse(eventListItem.eventType)) { + transmissionFields = {}; + transmissionFields = tackItOn(transmissionFields, eventListItem, ['timeStamp', 'eventType', 'elementID', 'path']); + transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['cursor']); + transmissionFields.recordingId = recordingId; + } + + if(isBulkMouse(eventListItem.eventType)) { + transmissionFields = {}; + transmissionFields = tackItOn(transmissionFields, eventListItem, ['eventType', 'elementID', 'path']); + transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['mousePositions']); + transmissionFields.recordingId = recordingId; + } + recordingStepList[recordingStepList.length] = transmissionFields; + } + + eventList = []; + $axure.messageCenter.postMessage('stopRecording', axObjectDictionary); + + var jsonText = { + 'recordingName': recordingName, + 'recordingId': recordingId, + recordingStart: new Date().getTime(), + recordingEnd: recordingStartTime, + 'eventList': recordingStepList + }; + + $.ajax({ + type: "POST", + url: '/RecordController/StopRecording', + data: { 'jsonText': JSON.stringify(jsonText) } + + }); + + } + + if($('#playButton').is('.recordPlayButtonSelected')) { + $('#playButton').removeClass('recordPlayButtonSelected'); + } + }; + + var _deleteClick = function(event) { + $.ajax({ + type: "POST", + url: '/RecordController/DeleteRecordings', + success: function(response) { + var x = true; + }, // dataType: 'json' + }); + }; + + var tackItOn = function(destination, source, fields) { + + for(var idx in fields) { + destination[fields[idx]] = source[fields[idx]]; + } + return destination; + }; + + var makeFirstLetterLower = function(eventName) { + return eventName.substr(0, 1).toLowerCase() + eventName.substr(1); + }; + + var _attachEventTriggers = function(axRecording) { + for(var eventIdx in axRecording.eventList) { + var eventObject = axRecording.eventList[eventIdx]; + var eventID = axRecording['recordingId'] + '_' + eventObject.timeStamp; + currentEvent = eventID; + $('#' + eventID).click(_triggerEvent(axRecording['recordingId'], eventObject.timeStamp)); + // $('#' + eventID).click(event.trigger); + } + }; + + var _formAxRecordingBranch = function(axRecording) { + var eventObject, eventID, RDOID; + var recordPlayUi = '"; + + return recordPlayUi; + }; + + var currentEvent = ''; + + var _triggerEvent = function(axRecording, timeStamp) { + // $axure.messageCenter.postMessage('triggerEvent', false); + + + for(var axRecordingIdx in axRecordingList) { + if(axRecordingList[axRecordingIdx].recordingId === axRecording) { + for(var eventIdx in axRecordingList[axRecordingIdx].eventList) { + if(axRecordingList[axRecordingIdx].eventList[eventIdx].timeStamp === timeStamp) { + + var thisEvent = axRecordingList[axRecordingIdx].eventList[eventIdx]; + // thisEvent.trigger(); + + var thisEventInfo, lowerEventType; + lowerEventType = thisEvent.eventType.toLowerCase(); + if(lowerEventType === 'onclick' || lowerEventType === 'onmousein') { + thisEventInfo = {}; + thisEventInfo = tackItOn(thisEventInfo, thisEvent.eventInfo, ['cursor', 'timeStamp', 'srcElement']); + if(thisEvent.eventInfo.inputType) { + thisEventInfo = tackItOn(thisEventInfo, thisEvent.eventInfo, ['inputType', 'inputValue']); + } + } else { + thisEventInfo = thisEvent.eventInfo; + } + + var thisParameters = { + 'element': thisEvent.elementID, + 'eventInfo': thisEventInfo, + // 'axEventObject': thisEvent.eventObject, + 'eventType': thisEvent.eventType + }; + + return function() { + $axure.messageCenter.postMessage('playEvent', thisParameters); + }; + + } + } + } + } + }; + + var _generateRecordPlay = function() { + var recordPlayUi = "
"; + + recordPlayUi += "
"; + + recordPlayUi += "
"; + + recordPlayUi += ""; + recordPlayUi += ""; + recordPlayUi += ""; + recordPlayUi += ""; + recordPlayUi += "
"; + + recordPlayUi += "
  • "; + recordPlayUi += "
    "; + + $('#recordPlayHost').html(recordPlayUi); + }; + +})(); \ No newline at end of file diff --git a/web/main/static/plugins/recordplay/styles/recordplay.css b/web/main/static/plugins/recordplay/styles/recordplay.css new file mode 100644 index 0000000..428f820 --- /dev/null +++ b/web/main/static/plugins/recordplay/styles/recordplay.css @@ -0,0 +1,90 @@ +#recordPlayHost { + font-size: 12px; + color:#333; + height: 100%; +} + + +#recordPlayContainer +{ + overflow: auto; + width: 100%; + height: 100%; + padding: 10px 10px 10px 10px; +} + +#recordPlayToolbar +{ + margin: 5px 5px 5px 5px; + height: 22px; +} + +#recordPlayToolbar .recordPlayButton +{ + float: left; + width: 22px; + height: 22px; + border: 1px solid transparent; +} + +#recordPlayToolbar .recordPlayButton:hover +{ + border: 1px solid rgb(0,157,217); + background-color : rgb(166,221,242); +} + +#recordPlayToolbar .recordPlayButton:active +{ + border: 1px solid rgb(0,157,217); + background-color : rgb(204,235,248); +} + +#recordPlayToolbar .recordPlayButtonSelected { + border: 1px solid rgb(0,157,217); + background-color : rgb(204,235,248); +} + +/* removed images */ +/*#recordButton { + background: url('../../sitemap/styles/images/233_hyperlink_16.png') no-repeat center center; +} + +#playButton { + background: url('../../sitemap/styles/images/225_responsive_16.png') no-repeat center center; +} + +#stopButton { + background: url('../../sitemap/styles/images/228_togglenotes_16.png') no-repeat center center; +} + +#deleteButton { + background: url('../../sitemap/styles/images/231_event_16.png') no-repeat center center; +}*/ + +#recordNameHeader +{ + /* yeah??*/ + font-size: 13px; + font-weight: bold; + height: 23px; + white-space: nowrap; +} + +#recordPlayContent +{ + /* yeah??*/ + overflow: visible; +} + +.recordPlayName +{ + font-size: 12px; + margin-bottom: 5px; + text-decoration: underline; + white-space: nowrap; +} + +.recordPlay +{ + margin-bottom: 10px; +} \ No newline at end of file diff --git a/web/main/static/plugins/sitemap/sitemap.js b/web/main/static/plugins/sitemap/sitemap.js new file mode 100644 index 0000000..56f4c59 --- /dev/null +++ b/web/main/static/plugins/sitemap/sitemap.js @@ -0,0 +1,562 @@ +var currentNodeUrl = ''; +var allNodeUrls = []; + +var openNextPage = $axure.player.openNextPage = function () { + var index = allNodeUrls.indexOf(currentNodeUrl) + 1; + if(index >= allNodeUrls.length) return; + var nextNodeUrl = allNodeUrls[index]; + currentNodeUrl = nextNodeUrl; + $('.sitemapPageLink[nodeUrl="' + nextNodeUrl + '"]').parent().mousedown(); +}; + +var openPreviousPage = $axure.player.openPreviousPage = function () { + var index = allNodeUrls.indexOf(currentNodeUrl) - 1; + if(index < 0) return; + var nextNodeUrl = allNodeUrls[index]; + currentNodeUrl = nextNodeUrl; + $('.sitemapPageLink[nodeUrl="' + nextNodeUrl + '"]').parent().mousedown(); +}; + +// use this to isolate the scope +(function() { + + var SHOW_HIDE_ANIMATION_DURATION = 0; + + var HIGHLIGHT_INTERACTIVE_VAR_NAME = 'hi'; + + var currentPageLoc = ''; + var currentPlayerLoc = ''; + var currentPageHashString = ''; + + $(window.document).ready(function() { + $axure.player.createPluginHost({ + id: 'sitemapHost', + context: 'project', + title: 'Project Pages', + gid: 1, + }); + + $(window.document).bind('keyup', function (e) { + if (e.target.localName == "textarea" || e.target.localName == "input" || event.target.isContentEditable) return; + switch(e.which) { + case 188: + openPreviousPage(); + break; + case 190: + openNextPage(); + break; + default: return; // exit this handler for other keys + } + }); + + generateSitemap(); + var pageCount = $('.sitemapPageLink').length; + + $('.leftArrow').click(openPreviousPage); + $('.rightArrow').click(openNextPage); + + $('.sitemapPlusMinusLink').click(collapse_click); + $('.sitemapPageLink').parent().mousedown(node_click); + + $('#interfaceAdaptiveViewsListContainer').hide(); + + $('#projectOptionsShowHotspots').click(showHotspots_click); + $('#searchIcon').click(searchBoxClose_click); + $('#searchDiv').click(searchBoxExpand_click); + $('#searchBox').keyup(search_input_keyup); + + // bind to the page load + $axure.page.bind('load.sitemap', function() { + currentPageLoc = $axure.page.location.split("#")[0]; + var decodedPageLoc = decodeURI(currentPageLoc); + currentNodeUrl = decodedPageLoc.substr(decodedPageLoc.lastIndexOf('/') ? decodedPageLoc.lastIndexOf('/') + 1 : 0); + currentPlayerLoc = $(location).attr('href').split("#")[0].split("?")[0]; + currentPageHashString = '#p=' + currentNodeUrl.substr(0, currentNodeUrl.lastIndexOf('.')); + + $axure.player.setVarInCurrentUrlHash(PAGE_ID_NAME, $axure.player.getPageIdByUrl(currentNodeUrl)); + $axure.player.setVarInCurrentUrlHash(PAGE_URL_NAME, currentNodeUrl.substring(0, currentNodeUrl.lastIndexOf('.html'))); + + $('#sitemapTreeContainer').find('.sitemapHighlight').removeClass('sitemapHighlight'); + var $currentNode = $('.sitemapPageLink[nodeUrl="' + currentNodeUrl + '"]'); + $currentNode.parent().parent().addClass('sitemapHighlight'); + + var pageName = $axure.page.pageName; + $('.pageNameHeader').html(pageName); + + if ($currentNode.length > 0 && pageCount > 1) { + var currentNode = $currentNode[0]; + var currentNum = $('.sitemapPageLink').index(currentNode) + 1; + $('.pageCountHeader').html('(' + currentNum + ' of ' + pageCount + ')'); + } else $('.pageCountHeader').html(''); + + //If highlight var is present and set to 1 or else if + //sitemap highlight button is selected then highlight interactive elements + var hiVal = $axure.player.getHashStringVar(HIGHLIGHT_INTERACTIVE_VAR_NAME); + if(hiVal.length > 0 && hiVal == 1) { + $('#showHotspotsOption').find('.overflowOptionCheckbox').addClass('selected'); + if ($('#projectOptionsHotspotsCheckbox').length > 0) $('#projectOptionsHotspotsCheckbox').addClass('selected'); + $axure.messageCenter.postMessage('highlightInteractive', true); + } else if ($('#showHotspotsOption').find('.overflowOptionCheckbox').hasClass('selected')) { + $axure.messageCenter.postMessage('highlightInteractive', true); + } + + generateAdaptiveViews(false); + if (MOBILE_DEVICE) generateAdaptiveViews(true); + + $axure.player.suspendRefreshViewPort = true; + + //Set the current view if it is defined in the hash string + //If the view is invalid, set it to 'auto' in the string + //ELSE set the view based on the currently selected view in the toolbar menu + var viewStr = $axure.player.getHashStringVar(ADAPTIVE_VIEW_VAR_NAME); + if(viewStr.length > 0) { + var $view = $('.adaptiveViewOption[val="' + viewStr + '"]'); + if($view.length > 0) $view.click(); + else $('.adaptiveViewOption[val="auto"]').click(); + } else if($('.selectedRadioButton').length > 0) { + var $viewOption = $('.selectedRadioButton').parents('.adaptiveViewOption'); + $viewOption.click(); + } + updateAdaptiveViewHeader(); + + function setDefaultScaleForDevice() { + if(MOBILE_DEVICE && $axure.player.isMobileMode()) { + $('.projectOptionsScaleRow[val="0"]').click(); + } else { + $('.vpScaleOption[val="0"]').click(); + } + } + + var scaleStr = $axure.player.getHashStringVar(SCALE_VAR_NAME); + if(scaleStr.length > 0) { + var $scale = $('.vpScaleOption[val="' + scaleStr + '"]'); + if($scale.length > 0) $scale.click(); + else setDefaultScaleForDevice(); + } else { + setDefaultScaleForDevice(); + } + + var rotateStr = $axure.player.getHashStringVar(ROT_VAR_NAME); + if(rotateStr.length > 0) { + $('#vpRotate').prop('checked', true); + } + + $axure.player.suspendRefreshViewPort = false; + + if (!$axure.player.isViewOverridden()) $axure.messageCenter.postMessage('setAdaptiveViewForSize', { 'width': $('#mainPanel').width(), 'height': $('#mainPanel').height() }); + + $axure.player.refreshViewPort(); + + $axure.messageCenter.postMessage('finishInit'); + + showMainPanel(); + return false; + }); + + var $vpContainer = $('#interfaceScaleListContainer'); + + var scaleOptions = '
    Default Scale
    '; + scaleOptions += '
    Scale to Width
    '; + scaleOptions += '
    Scale to Fit
    '; + $(scaleOptions).appendTo($vpContainer); + + $('#overflowMenuContainer').append('
    Show Hotspots
    '); + $('#overflowMenuContainer').append($vpContainer); + $vpContainer.show(); + + $('#showHotspotsOption').click(showHotspots_click); + $('.vpScaleOption').click(vpScaleOption_click); + $('.vpScaleOption').mouseup(function (event) { + event.stopPropagation(); + }); + + if (MOBILE_DEVICE) { + var scaleOptions = '
    Scale to fit width
    '; + scaleOptions += '
    Original size (100%)
    '; + scaleOptions += '
    Fit all to screen
    '; + $(scaleOptions).appendTo($('#projectOptionsScaleContainer')); + + $('.projectOptionsScaleRow').click(vpScaleOption_click); + } + + $('#searchBox').focusin(function() { + if($(this).is('.searchBoxHint')) { + $(this).val(''); + $(this).removeClass('searchBoxHint'); + } + }).focusout(function() { + if($(this).val() == '') { + $(this).addClass('searchBoxHint'); + } + }); + + + $('#searchBox').focusout(); + }); + + var _formatViewDimension = function(dim) { + if(dim == 0) return 'any'; + if(dim.toString().includes('.')) return dim.toFixed(2); + return dim; + }; + + function generateAdaptiveViews(forProjectOptions) { + var $container = forProjectOptions ? $('#projectOptionsAdaptiveViewsContainer') : $('#interfaceAdaptiveViewsListContainer'); + var $viewSelect = forProjectOptions ? $('#projectOptionsViewSelect') : $('#viewSelect'); + var adaptiveViewOptionClass = forProjectOptions ? 'projectOptionsAdaptiveViewRow' : 'adaptiveViewOption'; + var currentViewClass = forProjectOptions ? '' : 'currentAdaptiveView'; + + $container.empty(); + $viewSelect.empty(); + + //Fill out adaptive view container with prototype's defined adaptive views, as well as the default, and Auto + var viewsList = '
    Adaptive
    '; + var viewSelect = ''; + if (typeof $axure.page.defaultAdaptiveView.name != 'undefined') { + //If the name is a blank string, make the view name the width if non-zero, else 'any' + var defaultView = $axure.page.defaultAdaptiveView; + var defaultViewName = defaultView.name; + + var widthString = _formatViewDimension(defaultView.size.width); + var heightString = _formatViewDimension(defaultView.size.height); + + var viewString = defaultViewName + ' (' + widthString + ' x ' + heightString + ')'; + + viewsList += '
    ' + + '
    ' + viewString + '
    '; + viewSelect += ''; + } + + var useViews = $axure.document.configuration.useViews; + var hasViews = false; + if(useViews) { + for(var viewIndex = 0; viewIndex < $axure.page.adaptiveViews.length; viewIndex++) { + var currView = $axure.page.adaptiveViews[viewIndex]; + + var widthString = _formatViewDimension(currView.size.width); + var heightString = _formatViewDimension(currView.size.height); + + var viewString = currView.name + ' (' + widthString + ' x ' + heightString + ')'; + viewsList += '
    ' + + viewString + + '
    '; + viewSelect += ''; + + hasViews = true; + } + } + + $container.append(viewsList); + $viewSelect.append(viewSelect); + + if (!hasViews) { + if (forProjectOptions) { + $('#projectOptionsAdaptiveViewsHeader').hide(); + $('#projectOptionsAdaptiveViewsContainer').hide(); + } else $('#interfaceAdaptiveViewsContainer').hide(); + } else { + if (forProjectOptions) { + $('#projectOptionsAdaptiveViewsHeader').show(); + $('#projectOptionsAdaptiveViewsContainer').show(); + } else $('#interfaceAdaptiveViewsContainer').show(); + } + + $(('.' + adaptiveViewOptionClass)).click(adaptiveViewOption_click); + + if (!forProjectOptions) { + $(('.' + adaptiveViewOptionClass)).mouseup(function (event) { + event.stopPropagation(); + }); + } + } + + + function collapse_click(event) { + if($(this).children('.sitemapPlus').length > 0) { + expand_click($(this)); + } else { + $(this) + .children('.sitemapMinus').removeClass('sitemapMinus').addClass('sitemapPlus').end() + .closest('li').children('ul').hide(SHOW_HIDE_ANIMATION_DURATION); + } + event.stopPropagation(); + } + + function expand_click($this) { + $this + .children('.sitemapPlus').removeClass('sitemapPlus').addClass('sitemapMinus').end() + .closest('li').children('ul').show(SHOW_HIDE_ANIMATION_DURATION); + } + + function searchBoxExpand_click(event) { + if (!$('#searchIcon').hasClass('sitemapToolbarButtonSelected')) { + $('#searchIcon').addClass('sitemapToolbarButtonSelected') + $('#searchBox').width(0); + $('#searchBox').show(); + $('#searchBox').animate({ width: '95%' }, { duration: 200, complete: function () { $('#searchBox').focus(); } }); + } + } + + function searchBoxClose_click(event) { + if ($('#searchIcon').hasClass('sitemapToolbarButtonSelected')) { + $('#searchBox').animate({ width: '0%' }, { duration: 200, + complete: function () { + $('#searchBox').hide(); + $('#searchIcon').removeClass('sitemapToolbarButtonSelected') + }}); + $('#searchBox').val(''); + $('#searchBox').keyup(); + } + } + + function node_click(event) { + hideMainPanel(); + $('#sitemapTreeContainer').find('.sitemapHighlight').removeClass('sitemapHighlight'); + $(this).parent().addClass('sitemapHighlight'); + $axure.page.navigate($(this).children('.sitemapPageLink')[0].getAttribute('nodeUrl'), true); + } + + function hideMainPanel() { + $('#mainPanel').css('opacity', '0'); + $('#clippingBounds').css('opacity', '0'); + } + function showMainPanel() { + $('#mainPanel').animate({ opacity: 1 }, 10); + $('#clippingBounds').animate({ opacity: 1 }, 10); + } + + $axure.messageCenter.addMessageListener(function(message, data) { + if(message == 'adaptiveViewChange') { + $('.adaptiveViewOption').removeClass('currentAdaptiveView'); + if(data.viewId) {$('.adaptiveViewOption[val="' + data.viewId + '"]').addClass('currentAdaptiveView');} + else $('.adaptiveViewOption[val="default"]').addClass('currentAdaptiveView'); + + //when we set adaptive view through user event, we want to update the checkmark on sitemap + if(data.forceSwitchTo) { + $('.adapViewRadioButton').find('.selectedRadioButtonFill').hide(); + $('.adapViewRadioButton').removeClass('selectedRadioButton'); + $('div[val="' + data.forceSwitchTo + '"]').find('.adapViewRadioButton').addClass('selectedRadioButton'); + $('div[val="' + data.forceSwitchTo + '"]').find('.selectedRadioButtonFill').show(); + } + + updateAdaptiveViewHeader(); + $axure.player.refreshViewPort(); + + } else if(message == 'previousPage') { + openPreviousPage(); + } else if(message == 'nextPage') { + openNextPage(); + } + }); + + $axure.player.toggleHotspots = function (val) { + var overflowMenuCheckbox = $('#showHotspotsOption').find('.overflowOptionCheckbox'); + if ($(overflowMenuCheckbox).hasClass('selected')) { + if (!val) $('#showHotspotsOption').click(); + } else { + if (val) $('#showHotspotsOption').click(); + } + } + + function showHotspots_click(event) { + var overflowMenuCheckbox = $('#showHotspotsOption').find('.overflowOptionCheckbox'); + var projOptionsCheckbox = $('#projectOptionsHotspotsCheckbox'); + + if ($(overflowMenuCheckbox).hasClass('selected')) { + overflowMenuCheckbox.removeClass('selected'); + if (projOptionsCheckbox.length > 0 ) projOptionsCheckbox.removeClass('selected'); + $axure.messageCenter.postMessage('highlightInteractive', false); + //Delete 'hi' hash string var if it exists since default is unselected + $axure.player.deleteVarFromCurrentUrlHash(HIGHLIGHT_INTERACTIVE_VAR_NAME); + } else { + overflowMenuCheckbox.addClass('selected'); + if (projOptionsCheckbox.length > 0) projOptionsCheckbox.addClass('selected'); + $axure.messageCenter.postMessage('highlightInteractive', true); + //Add 'hi' hash string var so that stay highlighted across reloads + $axure.player.setVarInCurrentUrlHash(HIGHLIGHT_INTERACTIVE_VAR_NAME, 1); + } + } + + + function adaptiveViewOption_click(event) { + var currVal = $(this).attr('val'); + + $('.adaptiveViewOption').removeClass('currentAdaptiveView'); + if(currVal) {$('.adaptiveViewOption[val="' + currVal + '"]').addClass('currentAdaptiveView');} + else $('.adaptiveViewOption[val="default"]').addClass('currentAdaptiveView'); + + $('.adapViewRadioButton').find('.selectedRadioButtonFill').hide(); + $('.adapViewRadioButton').removeClass('selectedRadioButton'); + $('div[val="' + currVal + '"]').find('.adapViewRadioButton').addClass('selectedRadioButton'); + $('div[val="' + currVal + '"]').find('.selectedRadioButtonFill').show(); + + selectAdaptiveView(currVal); + $axure.player.closePopup(); + updateAdaptiveViewHeader(); + } + + var selectAdaptiveView = $axure.player.selectAdaptiveView = function(currVal) { + if (currVal == 'auto') { + $axure.messageCenter.postMessage('setAdaptiveViewForSize', { 'width': $('#mainPanel').width(), 'height': $('#mainPanel').height() }); + $axure.player.deleteVarFromCurrentUrlHash(ADAPTIVE_VIEW_VAR_NAME); + } else { + currentPageLoc = $axure.page.location.split("#")[0]; + var decodedPageLoc = decodeURI(currentPageLoc); + var nodeUrl = decodedPageLoc.substr(decodedPageLoc.lastIndexOf('/') + ? decodedPageLoc.lastIndexOf('/') + 1 + : 0); + var adaptiveData = { + src: nodeUrl + }; + + adaptiveData.view = currVal; + $axure.messageCenter.postMessage('switchAdaptiveView', adaptiveData); + $axure.player.setVarInCurrentUrlHash(ADAPTIVE_VIEW_VAR_NAME, currVal); + } + } + + $axure.player.updateAdaptiveViewHeader = updateAdaptiveViewHeader = function () { + var hasDefinedDim = true; + var dimensionlessViewStr = '(any x any)'; + + var viewString = $('.adaptiveViewOption.currentAdaptiveView').text(); + if (viewString != null && viewString.indexOf(dimensionlessViewStr) >= 0) hasDefinedDim = false; + + if (!hasDefinedDim) { + var viewName = viewString.substring(0, viewString.lastIndexOf(' (')); + var widthString = $('#mainPanelContainer').width(); + viewString = viewName + ' (' + widthString + ' x any)'; + } + + $('.adaptiveViewHeader').html(viewString); + } + + $axure.player.selectScaleOption = function (scaleVal) { + var $scale = $('.vpScaleOption[val="' + scaleVal + '"]'); + if ($scale.length > 0) $scale.click(); + } + + function vpScaleOption_click(event) { + var scaleCheckDiv = $(this).find('.scaleRadioButton'); + var scaleVal = $(this).attr('val'); + if (scaleCheckDiv.hasClass('selectedRadioButton')) return false; + + var $selectedScaleOption = $('.vpScaleOption[val="' + scaleVal + '"], .projectOptionsScaleRow[val="' + scaleVal + '"]'); + var $allScaleOptions = $('.vpScaleOption, .projectOptionsScaleRow'); + $allScaleOptions.find('.scaleRadioButton').removeClass('selectedRadioButton'); + $allScaleOptions.find('.selectedRadioButtonFill').hide(); + $selectedScaleOption.find('.scaleRadioButton').addClass('selectedRadioButton'); + $selectedScaleOption.find('.selectedRadioButtonFill').show(); + + if (scaleVal == '0') { + $axure.player.deleteVarFromCurrentUrlHash(SCALE_VAR_NAME); + } else if (typeof scaleVal !== 'undefined') { + $axure.player.setVarInCurrentUrlHash(SCALE_VAR_NAME, scaleVal); + } + + $axure.player.refreshViewPort(); + } + + function search_input_keyup(event) { + var searchVal = $(this).val().toLowerCase(); + //If empty search field, show all nodes, else grey+hide all nodes and + //ungrey+unhide all matching nodes, as well as unhide their parent nodes + if(searchVal == '') { + $('.sitemapPageName').removeClass('sitemapGreyedName'); + $('.sitemapNode').show(); + } else { + $('.sitemapNode').hide(); + + $('.sitemapPageName').addClass('sitemapGreyedName').each(function() { + var nodeName = $(this).text().toLowerCase(); + if(nodeName.indexOf(searchVal) != -1) { + $(this).removeClass('sitemapGreyedName').parents('.sitemapNode:first').show().parents('.sitemapExpandableNode').show(); + } + }); + } + } + + + function generateSitemap() { + var treeUl = "
    "; + treeUl += "
    "; + + treeUl += '
    '; + treeUl += "
    "; + treeUl += "
    "; + + treeUl += "
    "; + treeUl += "
    "; + + /////////////////// + + var sitemapTitle = $axure.player.getProjectName(); + if (!sitemapTitle) sitemapTitle = "Pages"; + treeUl += "
    " + sitemapTitle + "
    "; + + treeUl += "
    "; + treeUl += "
      "; + var rootNodes = $axure.document.sitemap.rootNodes; + for(var i = 0; i < rootNodes.length; i++) { + treeUl += generateNode(rootNodes[i], 0); + } + treeUl += "
    "; + + if (!MOBILE_DEVICE) { + treeUl += "
    Use "; + treeUl += ''; + treeUl += " and "; + treeUl += ''; + treeUl += " keys
    to move between pages"; + treeUl += "
    "; + } + + $('#sitemapHost').html(treeUl); + } + + function generateNode(node, level) { + var hasChildren = (node.children && node.children.length > 0); + var margin, returnVal; + if(hasChildren) { + margin = (9 + level * 17); + returnVal = "
  • "; + + if(hasChildren) { + returnVal += "
      "; + for(var i = 0; i < node.children.length; i++) { + var child = node.children[i]; + returnVal += generateNode(child, level + 1); + } + returnVal += "
    "; + } + returnVal += "
  • "; + return returnVal; + } +})(); diff --git a/web/main/static/plugins/sitemap/styles/images/back_keys.svg b/web/main/static/plugins/sitemap/styles/images/back_keys.svg new file mode 100644 index 0000000..205ef8b --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/back_keys.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/web/main/static/plugins/sitemap/styles/images/closed_item.svg b/web/main/static/plugins/sitemap/styles/images/closed_item.svg new file mode 100644 index 0000000..cc96bf2 --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/closed_item.svg @@ -0,0 +1,14 @@ + + + + open item copy + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/web/main/static/plugins/sitemap/styles/images/flow.svg b/web/main/static/plugins/sitemap/styles/images/flow.svg new file mode 100644 index 0000000..228330a --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/flow.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/web/main/static/plugins/sitemap/styles/images/folder_closed_blue.svg b/web/main/static/plugins/sitemap/styles/images/folder_closed_blue.svg new file mode 100644 index 0000000..f1fc99b --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/folder_closed_blue.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/plugins/sitemap/styles/images/forward_keys.svg b/web/main/static/plugins/sitemap/styles/images/forward_keys.svg new file mode 100644 index 0000000..cb04793 --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/forward_keys.svg @@ -0,0 +1,10 @@ + + + + + + + . + + + diff --git a/web/main/static/plugins/sitemap/styles/images/left_arrow.svg b/web/main/static/plugins/sitemap/styles/images/left_arrow.svg new file mode 100644 index 0000000..c1d72ba --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/left_arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/sitemap/styles/images/open_item.svg b/web/main/static/plugins/sitemap/styles/images/open_item.svg new file mode 100644 index 0000000..062b37c --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/open_item.svg @@ -0,0 +1,12 @@ + + + + open item + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/web/main/static/plugins/sitemap/styles/images/page_lt_grey.svg b/web/main/static/plugins/sitemap/styles/images/page_lt_grey.svg new file mode 100644 index 0000000..15e33b0 --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/page_lt_grey.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/plugins/sitemap/styles/images/right_arrow.svg b/web/main/static/plugins/sitemap/styles/images/right_arrow.svg new file mode 100644 index 0000000..f21915b --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/right_arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/sitemap/styles/images/search_off.svg b/web/main/static/plugins/sitemap/styles/images/search_off.svg new file mode 100644 index 0000000..55f40fe --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/search_off.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/plugins/sitemap/styles/images/search_on.svg b/web/main/static/plugins/sitemap/styles/images/search_on.svg new file mode 100644 index 0000000..c813852 --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/search_on.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/plugins/sitemap/styles/images/sitemap_panel_off.svg b/web/main/static/plugins/sitemap/styles/images/sitemap_panel_off.svg new file mode 100644 index 0000000..93cec71 --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/sitemap_panel_off.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/sitemap/styles/images/sitemap_panel_on.svg b/web/main/static/plugins/sitemap/styles/images/sitemap_panel_on.svg new file mode 100644 index 0000000..701e8b0 --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/images/sitemap_panel_on.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/plugins/sitemap/styles/sitemap.css b/web/main/static/plugins/sitemap/styles/sitemap.css new file mode 100644 index 0000000..428335b --- /dev/null +++ b/web/main/static/plugins/sitemap/styles/sitemap.css @@ -0,0 +1,384 @@ + +#sitemapHost { + display: flex; + flex-direction: column; + height: 100%; +} + +#sitemapHostBtn a { + background: url('images/sitemap_panel_on.svg') no-repeat center center, linear-gradient(transparent, transparent); +} + +#sitemapHostBtn a.selected, #sitemapHostBtn a.selected:hover { + background: url('images/sitemap_panel_off.svg') no-repeat center center, linear-gradient(transparent, transparent); +} + +#sitemapHost .pageButtonHeader { + top: -27px; +} + +#sitemapTreeContainer { + overflow: auto; + width: 100%; + flex: 1; + -webkit-overflow-scrolling: touch; +} + +.mobileMode #sitemapTreeContainer { + margin-left: 5px; + overflow-x: hidden; +} + +.sitemapTree { + margin: 0px 0px 10px 0px; + overflow:visible; +} + +.sitemapTree ul { + list-style-type: none; + margin: 0px 0px 0px 0px; + padding-left: 0px; +} + +ul.sitemapTree { + display: inline-block; + min-width: 100%; +} + +.pageSwapInstructions { + width: 129px; + font-size: 12px; + text-align: center; + color: #8c8c8c; + margin: 0 auto; + padding: 12px 0px; + line-height: 20px; +} + +.sitemapMinus, .sitemapPlus { + vertical-align:middle; + background-repeat: no-repeat; + margin-right: 3px; + width: 7px; + height: 8px; + object-fit: contain; + display:inline-block; +} + .sitemapMinus { + margin-bottom: 0px; + background: url('images/open_item.svg') no-repeat center center, linear-gradient(transparent,transparent); + } + .sitemapPlus { + margin-bottom: 2px; + background: url('images/closed_item.svg') no-repeat center center, linear-gradient(transparent,transparent); + } + +.mobileMode .sitemapMinus, .mobileMode .sitemapPlus { + width: 10.5px; + height: 12px; + margin-right: 5px; + background-size: contain; +} + +.sitemapPageLink { + margin-left: 0px; +} + +.sitemapPageIcon { + margin: 0px 6px -3px 3px; + width: 16px; + height: 16px; + display: inline-block; + background: url('images/page_lt_grey.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.mobileMode .sitemapPageIcon { + margin-right: 7px; + background-size: contain; +} + +.sitemapFolderIcon { + background: url('images/folder_closed_blue.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.mobileMode .sitemapFolderIcon { + width: 18px; + height: 18px; + margin-left: 1px; + background-position-y: 1px; + background-size: contain; +} + +.sitemapFlowIcon { + background: url('images/flow.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.sitemapFolderOpenIcon { + background: url('images/folder_open.png') no-repeat center center; + background: url('images/folder_open.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.sitemapPageName { + font-size: 14px; + line-height: 1.93; + color: #4a4a4a; +} + +.sitemapPageName.mobileText { + line-height: 1.69; +} + +.sitemapNode { + white-space:nowrap; +} + +.sitemapPageLinkContainer { + cursor: pointer; + padding-right: 10px; +} + +.mobileMode .sitemapPageLinkContainer { + margin-bottom: 13px; +} + +.sitemapHighlight { + background-color: #e6e6e6; +} + +.sitemapGreyedName +{ + color: #AAA; +} + +.sitemapPluginNameHeader { + margin: 13px 9px 5px 9px; + font-size: 14px; + color: #444444; +} + +.sitemapHeader { + padding-top: 7px; +} + +.mobileMode .sitemapHeader { + padding-top: 0px; +} + +.sitemapToolbar { + margin: 0px 3px 0px 5px; + display: flex; + align-items: center; + justify-content: flex-end; +} + +.sitemapToolbarButton { + width: 19px; + height: 18px; + border: 1px solid transparent; + cursor: pointer; + flex: 0 0 auto; +} + +.hashover .sitemapToolbarButton:hover { + border-radius: 3px; + background-color: #e6e6e6 !important; +} + +.sitemapToolbarButton.sitemapToolbarButtonSelected, .sitemapToolbarButton.sitemapToolbarButtonSelected:hover{ + background-color: inherit !important; +} + +.leftArrow { + background: url('images/left_arrow.svg') no-repeat center center, linear-gradient(transparent,transparent); + margin-left: 11px; +} + +.rightArrow { + background: url('images/right_arrow.svg') no-repeat center center, linear-gradient(transparent,transparent); + margin-left: 3px; + margin-right: 2px; +} + +#searchIcon { + width: 10px; + height: 10px; + object-fit: contain; + background: url('images/search_on.svg') no-repeat center center, linear-gradient(transparent,transparent); + vertical-align: bottom; + padding: 5px 4px 5px 4px; + display: inline-block; +} + +#searchIcon.sitemapToolbarButtonSelected { + padding: 5px 3px 5px 5px; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + border-left: solid 1px #cccccc; + border-top: solid 1px #cccccc; + border-bottom: solid 1px #cccccc; + background: url('images/search_off.svg') no-repeat center center, linear-gradient(transparent,transparent); + background-color: #FFFFFF !important; +} + +.backKeys { + width: 20px; + height: 21px; + object-fit: contain; + vertical-align: bottom; + margin: 2px; + display: inline-block; + background: url('images/back_keys.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.forwardKeys { + width: 20px; + height: 21px; + object-fit: contain; + vertical-align: bottom; + margin: 2px; + display: inline-block; + background: url('images/forward_keys.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#interfaceAdaptiveViewsListContainer { + position: absolute; + display: none; + width: 220px; + left: 155px; + padding: 6px 9px; + top: 36px; +} + +#interfaceScaleListContainer { + padding: 7.5px 9px 12px 16px; + margin-top: 9px; + border-top: solid 1px #bdbcbc; + order: 10; +} + +.adaptiveViewOption, .vpPresetOption, .vpScaleOption { + padding: 3px 0px 3px 0px; + color: #3B3B3B; + display: flex; +} + +.projectOptionsScaleRow, .projectOptionsAdaptiveViewRow, .projectOptionsHotspotsRow { + border-top: solid 1px #c7c7c7; + display: flex; + padding: 13px 7px 13px 0px; +} + +.adaptiveViewOption:hover, .vpScaleOption:hover, .vpPresetOption:hover, .projectOptionsAdaptiveViewRow:hover, .projectOptionsScaleRow:hover +{ + cursor: pointer; +} + +.scaleRadioButton, .adapViewRadioButton { + border: solid 1px #8c8c8c; + display: inline-block; + position: relative; + width: 12px; + height: 12px; + border-radius: 48px; + margin-right: 12px; + top: 2px; + flex-shrink: 0; +} + +.mobileMode .scaleRadioButton, .mobileMode .adapViewRadioButton { + width: 20px; + height: 20px; + border-radius: 60px; + margin-right: 22px; + margin-left: 22px; + top: 0px; + flex-shrink: 0; +} + +.selectedRadioButton { + border: solid 1px #20aca9; +} + +.selectedRadioButtonFill { + position: relative; + display: none; + background-color: #20aca9; + margin: auto; + width: 8px; + height: 8px; + border-radius: 30px; + top: 2px; +} + .mobileMode .selectedRadioButtonFill { + width: 12px; + height: 12px; + border-radius: 48px; + top: 4px; + } + +#searchDiv { + display: flex; + margin-right: auto; + flex: 1; +} + +#searchBox { + display: none; + width: 0%; + height: 22px; + padding-left: 5px; + border-radius: 0px 5px 5px 0px; + border-right: solid 1px #cccccc; + border-top: solid 1px #cccccc; + border-bottom: solid 1px #cccccc; + border-left: none; + -webkit-appearance: none; +} + +#searchBox:focus { + outline-width: 0; +} + +.searchBoxHint { + color: #8f949a; +} + +#sitemapHost.popup #searchDiv{ + display: none; +} + +#sitemapHost.popup #sitemapHeader{ + display: none; +} + +#sitemapHost.popup #changePageInstructions{ + display: none; +} + +.mobileMode #sitemapHeader { + display: none; +} + + + +/* Expo Sitemap +******************************************************************************/ + +.expoSitemapNode { + padding: 15px; + text-align: center; +} + +.sitemapPageImg { + max-width: 90%; + max-height: 150px; +} + +.popup .sitemapPageImg { + display: none; +} + +.popup .expoSitemapNode { + padding: 0 0 0 10px; + text-align: left; +} \ No newline at end of file diff --git a/web/main/static/resources/Other.html b/web/main/static/resources/Other.html new file mode 100644 index 0000000..d0fa808 --- /dev/null +++ b/web/main/static/resources/Other.html @@ -0,0 +1,35 @@ + + + + + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/web/main/static/resources/css/axure_rp_page.css b/web/main/static/resources/css/axure_rp_page.css new file mode 100644 index 0000000..d4b188f --- /dev/null +++ b/web/main/static/resources/css/axure_rp_page.css @@ -0,0 +1,292 @@ +/* so the window resize fires within a frame in IE7 */ +html, body { + height: 100%; +} + +.mobileFrameCursor div * { + cursor: inherit !important; +} + +a { + color: inherit; +} + +p { + margin: 0px; + text-rendering: optimizeLegibility; + font-feature-settings: "kern" 1; + -webkit-font-feature-settings: "kern"; + -moz-font-feature-settings: "kern"; + -moz-font-feature-settings: "kern=1"; + font-kerning: normal; +} + +ul { + margin:0px; +} + +iframe { + background: #FFFFFF; +} + +/* to match IE with C, FF */ +input { + padding: 1px 0px 1px 0px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +input[type=text]::-ms-clear { + width: 0; + height: 0; + display: none; +} + +textarea { + margin: 0px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +.focused:focus, .selectedFocused:focus { + outline: none; +} + +div.intcases { + font-family: arial; + font-size: 12px; + text-align:left; + border:1px solid #AAA; + background:#FFF none repeat scroll 0% 0%; + z-index:9999; + visibility:hidden; + position:absolute; + padding: 0px; + border-radius: 3px; + white-space: nowrap; +} + +div.intcaselink { + cursor: pointer; + padding: 3px 8px 3px 8px; + margin: 5px; + background:#EEE none repeat scroll 0% 0%; + border:1px solid #AAA; + border-radius: 3px; +} + +div.refpageimage { + position: absolute; + left: 0px; + top: 0px; + font-size: 0px; + width: 16px; + height: 16px; + cursor: pointer; + background-image: url(images/newwindow.gif); + background-repeat: no-repeat; +} + +div.annnoteimage { + position: absolute; + left: 0px; + top: 0px; + font-size: 0px; + /*width: 16px; + height: 12px;*/ + cursor: help; + /*background-image: url(images/note.gif);*/ + /*background-repeat: no-repeat;*/ + width: 13px; + height: 12px; + padding-top: 1px; + text-align: center; + background-color: #138CDD; + -moz-box-shadow: 1px 1px 3px #aaa; + -webkit-box-shadow: 1px 1px 3px #aaa; + box-shadow: 1px 1px 3px #aaa; +} + +div.annnoteline { + display: inline-block; + width: 9px; + height: 1px; + border-bottom: 1px solid white; + margin-top: 1px; +} + +div.annnotelabel { + /*position: absolute; + left: 0px; + top: 0px;*/ + font-family: Helvetica,Arial; + white-space: nowrap; + + padding-top: 1px; + background-color: #fff849; + font-size: 10px; + font-weight: bold; + line-height: 14px; + margin-right: 3px; + padding: 0px 4px; + color: #000; + + -moz-box-shadow: 1px 1px 3px #aaa; + -webkit-box-shadow: 1px 1px 3px #aaa; + box-shadow: 1px 1px 3px #aaa; +} + +div.annnote { + display: flex; + position: absolute; + cursor: help; + line-height: 14px; +} + +.annotation { + font-size: 12px; + padding-left: 2px; + margin-bottom: 5px; +} + +.annotationName { + /*font-size: 13px; + font-weight: bold; + margin-bottom: 3px; + white-space: nowrap;*/ + + font-family: 'Trebuchet MS'; + font-size: 14px; + font-weight: bold; + margin-bottom: 5px; + white-space: nowrap; +} + +.annotationValue { + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + color: #4a4a4a; + line-height: 21px; + margin-bottom: 20px; +} + +.noteLink { + text-decoration: inherit; + color: inherit; +} + +.noteLink:hover { + background-color: white; +} + +/* this is a fix for the issue where dialogs jump around and takes the text-align from the body */ +.dialogFix { + position:absolute; + text-align:left; + border: 1px solid #8f949a; +} + + +@keyframes pulsate { + from { + box-shadow: 0 0 10px #15d6ba; + } + to { + box-shadow: 0 0 20px #15d6ba; + } +} + +@-webkit-keyframes pulsate { + from { + -webkit-box-shadow: 0 0 10px #15d6ba; + box-shadow: 0 0 10px #15d6ba; + } + to { + -webkit-box-shadow: 0 0 20px #15d6ba; + box-shadow: 0 0 20px #15d6ba; + } +} + +@-moz-keyframes pulsate { + from { + -moz-box-shadow: 0 0 10px #15d6ba; + box-shadow: 0 0 10px #15d6ba; + } + to { + -moz-box-shadow: 0 0 20px #15d6ba; + box-shadow: 0 0 20px #15d6ba; + } +} + +.legacyPulsateBorder { + /*border: 5px solid #15d6ba; + margin: -5px;*/ + -moz-box-shadow: 0 0 10px 3px #15d6ba; + box-shadow: 0 0 10px 3px #15d6ba; +} + +.pulsateBorder { + animation-name: pulsate; + animation-timing-function: ease-in-out; + animation-duration: 0.9s; + animation-iteration-count: infinite; + animation-direction: alternate; + + -webkit-animation-name: pulsate; + -webkit-animation-timing-function: ease-in-out; + -webkit-animation-duration: 0.9s; + -webkit-animation-iteration-count: infinite; + -webkit-animation-direction: alternate; + + -moz-animation-name: pulsate; + -moz-animation-timing-function: ease-in-out; + -moz-animation-duration: 0.9s; + -moz-animation-iteration-count: infinite; + -moz-animation-direction: alternate; +} + +.ax_default_hidden, .ax_default_unplaced{ + display: none; + visibility: hidden; +} + +.widgetNoteSelected { + -moz-box-shadow: 0 0 10px 3px #138CDD; + box-shadow: 0 0 10px 3px #138CDD; + /*-moz-box-shadow: 0 0 20px #3915d6; + box-shadow: 0 0 20px #3915d6;*/ + /*border: 3px solid #3915d6;*/ + /*margin: -3px;*/ +} + + +.singleImg { + display: none; + visibility: hidden; +} + +#ios-safari { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +#ios-safari-html { + display: block; + overflow: auto; + -webkit-overflow-scrolling: touch; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +#ios-safari-fixed { + position: absolute; + pointer-events: none; + width: initial; +} + +#ios-safari-fixed div { + pointer-events: auto; +} \ No newline at end of file diff --git a/web/main/static/resources/css/bootstrap.min.css b/web/main/static/resources/css/bootstrap.min.css new file mode 100644 index 0000000..3993414 --- /dev/null +++ b/web/main/static/resources/css/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin:calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/web/main/static/resources/css/default.css b/web/main/static/resources/css/default.css new file mode 100644 index 0000000..fc882e4 --- /dev/null +++ b/web/main/static/resources/css/default.css @@ -0,0 +1,1052 @@ +body { + font-family: 'Source Sans Pro', 'Trebuchet MS', Arial; + font-size: 14px; + color: #2c2c2c; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -webkit-font-feature-settings: "kern"; + -moz-font-feature-settings: "kern"; + -moz-font-feature-settings: "kern=1"; + font-feature-settings: "kern" 1; + font-kerning: normal; + overflow: hidden; +} + +a { + cursor: pointer; +} + +input[type="radio"], input[type="checkbox"] { + margin: 0px 9px 0px 0px; + vertical-align: bottom; +} + +input { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type=text]::-ms-clear { + width: 0; + height: 0; + display: none; +} + +#outerContainer { + position: absolute; + width:1000px; + height:1500px; + overflow: hidden; + display: flex; +} + +#mobileControlFrameContainer { + position: absolute; + width: 100%; + pointer-events: none; +} + +.splitbar { + display: none; + position: absolute; + top: 0px; + width: 3px; + height: 100%; + cursor: ew-resize; + z-index: 5; + user-select: none; +} + +.splitbar:hover, .splitbar.active { + background: #cccccc; +} + +#lsplitbar { + border-right: 1px solid #cccccc; +} + +#rsplitbar { + border-left: 1px solid #cccccc; +} + +#mainPanel { + background-color: #d8d8d8; + opacity: 0; + flex: 1; + overflow: hidden; +} + +#clippingBounds { + width: 100%; + overflow: hidden; + pointer-events: none; + position: absolute; + z-index: 1; +} + +#clippingBounds div { + pointer-events: auto; +} + +#clippingBoundsScrollContainer { + position: absolute; + pointer-events: none; +} + +#browserOutOfDateNotification { + width: 100%; + height: 289px; + background-color: #e36154; + padding-top: 40px; + color: #FFFFFF; +} + .mobileMode #browserOutOfDateNotification { + padding-top: 15px; + } + +#supportedBrowsersListContainer { + border-radius: 5px; + line-height: 1.64; + background-color: #c3463a; + padding-top: 4px; + width: 255px; + margin: auto; +} + +.browserName { + display: inline-block; + width: 55%; + font-weight: bold; + margin-left: 18px; +} + +.browserSupportedVersion { + display: inline-block; + font-style: italic; +} + +#browserOutOfDateNotificationButtons { + display: flex; + justify-content: flex-end; + margin-top: 28px; +} + .mobileMode #browserOutOfDateNotificationButtons { + margin-top: 8px; + } + +#updateBrowserButton { + display: inline-block; + width: 330px; + height: 35px; + margin-left: auto; + line-height: 35px; + text-decoration: none; + text-align: center; + border-radius: 9px; + border: solid 1px #FFFFFF; + color: #FFFFFF; +} + +#continueToPrototypeButton { + display: inline-block; + text-align: center; + line-height: 37px; + text-decoration: underline; +} + +#topPanel { + z-index: 1; + height: 36px; + background-color: #f2f2f2; + border-bottom: 1px solid #cccccc; + user-select: none; +} + +.leftPanel, .rightPanel, .mobileOnlyPanel { + position: relative; + background-color: #f2f2f2; + overflow: hidden; + width: 0px; + flex-shrink: 0; +} + + +.popup, .leftPanel.popup { + position: absolute; + z-index: 20000; + display: none; + background-color: #f2f2f2; + border: solid 1px #bdbcbc; + position: absolute; + box-shadow: 0 1px 2px 0 rgba(87, 87, 87, 0.5); +} + +.leftPanel.popup .sitemapHeader, .leftPanel.popup #searchDiv { + display: none; +} + +#clipFrameScroll { +} + +.splitterMask { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + background-image: url(../images/transparent.gif); + z-index: 10000; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#maximizePanelContainer { + font-size: 4px; + overflow: hidden; + z-index: 1000; + display: none; +} + +#maximizePanel { + background-color: #f2f2f2; + cursor: pointer; +} + +#maximizePanelContainer, #maximizePanelOver, #maximizePanel { + position:absolute; + left: 0px; + top: 0px; + width: 28px; + height: 36px; +} + +#interfaceControlFrameMinimizeContainer { + font-size: 2px; /*for IE*/ + text-align: right; + z-index: 100; + height: 36px; + width: 28px; + border-right: solid 1px #cbcbcb; +} +#interfaceControlFrameMinimizeContainer a { + display: inline-block; + width: 28px; + height: 100%; + font-size: 2px; + text-decoration: none; +} + +#interfaceControlFrame { + height: 100%; + display: flex; + opacity: 0; +} + +#interfaceControlFrameCloseContainer { + display: none; + font-size: 9px; + font-weight: bold; + letter-spacing: 1px; + z-index: 100; + width: 55px; + background-color: #62666b; + text-align: center; +} +#interfaceControlFrameCloseContainer a { + display: inline-block; + width: 55px; + color: #ffffff; + padding: 5px 0px; +} +#inspectControlFrameHeader li { + float: left; + display: block; + width: 42px; + height: 36px; + padding: 4px 5px 4px 5px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +#inspectControlFrameHeader li a { + height: 100%; + width: 32px; + display: block; + text-align: center; + outline: none; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +.hashover #inspectControlFrameHeader li a:hover { + border-radius: 3px; + background-color: #e6e6e6; +} + +/*#inspectControlFrameHeader li a.selected, #inspectControlFrameHeader li a.selected:hover { + background-color: inherit; +}*/ + +#inspectControlFrameHeaderContainer { + overflow: visible; +} + +#inspectControlFrameHeader { + position: relative; + list-style: none; + z-index: 50; + letter-spacing: 1px; + display: flex; +} + +#projectControlFrameHeaderContainer { + overflow: visible; +} + +#projectControlFrameHeader { + position: relative; + list-style: none; + font-size: 8px; + z-index: 50; + font-weight: bold; + letter-spacing: 1px; +} + +#projectControlFrameHeader li { + float: left; + display: block; + width: 28px; + height: 28px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +#projectControlFrameHeader li a { + display: block; + height: 100%; + width: 32px; + outline: none; + margin: auto; + text-decoration: none; + color: #ffffff; + white-space: nowrap; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +.hashover #projectControlFrameHeader li a:hover { + border-radius: 3px; + background-color: #e6e6e6; +} + +/*#projectControlFrameHeader li a.selected, #projectControlFrameHeader li a.selected:hover { + background-color: inherit; +}*/ + +#handoffControlFrameHeaderContainer { + display: none; +} + +#handoffControlFrameHeader li { + float: left; + display: block; + width: 44px; + height: 36px; + margin: 0px 3.5px 0px 3.5px; + padding: 4px 6px 4px 6px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +#handoffControlFrameHeader li.selected { + padding: 0px; + border-bottom: 2px solid #008dcb; +} + +#handoffControlFrameHeader li a { + float: left; + height: 100%; + width: 32px; + display: block; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +.hashover #handoffControlFrameHeader li a:hover { + border-radius: 3px; + background-color: #e6e6e6; +} + +#handoffControlFrameHeader li a.selected { + width: 100%; + /*background-color: inherit;*/ +} + +#publishContainer { + display: none; + margin: 6px 20.5px 5px; + width: 150px; + height: 25px; + border-radius: 10px; + background-color: #008dcb; +} + + +#publishContainer.preview { + display: block; +} + +#overflowBtn { + order: 5; +} + +#overflowMenuButton { + background: url('../images/overflow-icon.svg') no-repeat center center, linear-gradient(transparent,transparent); +} +#overflowMenuButton.selected { + background: url('../images/overflow_icon_off.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.overflowOptionCheckbox, #projectOptionsHotspotsCheckbox { + position: relative; + border: solid 1px #8c8c8c; + display: inline-block; +} + .overflowOptionCheckbox { + width: 10px; + height: 10px; + margin-right: 14px; + top: 1px; + } + #projectOptionsHotspotsCheckbox { + width: 16px; + height: 16px; + margin-right: 25px; + margin-left: 21px; + top: 2.5px; + } + +.overflowOptionCheckbox.selected, #projectOptionsHotspotsCheckbox.selected { + background: url('../images/overflow_checkmark.svg') no-repeat center center, linear-gradient(transparent,transparent); + background-color: #20bba6; + border: solid 1px #20bba6; + background-size: contain; +} + +#overflowMenuContainer { + display: none; + flex-direction: column; + top: 36px; + right: 80px; + width: 171px; + border-radius: 2px; +} + +#overflowMenuContainer.popup { + display: flex; +} + +.showOption { + font-size: 14px; + padding: 9px 0px 0px 15px; + color: #3B3B3B; +} + +.showOption:hover { + cursor: pointer; +} + +#signInButton { + padding: 0px 20px 0px 20px; + width: 50.8px; + height: 16px; + font-size: 12px; + text-align: center; + line-height: 22px; +} + +#accountLoginContainer { + display: none; + right: 220px; +} + +.accountOption { + font-size: 12px; + padding: 7px; + line-height: 1.83; +} + +/* temporary sign in css (borrowed from feedback9.css*/ +.feedbackGreenBtn_Player { + background-color: #74BC68; + border-radius: 2.5px; + box-shadow: inset 0 -1px 0 0 rgba(137, 137, 137, 0.58); + color: #FFFFFF; + cursor: pointer; + font-size: 12px; + height: 25px; + line-height: 25px; +} + + .feedbackGreenBtn_Player:hover { + background-color: #58964E; + } +/* Axure Commenter Login w/out pin */ +.axureLoginBubble_Player { + background-color: #F2F2F2 !important; +} + +.axureLoginBubbleContainer_Player { + padding: 5px; +} + + .axureLoginBubbleContainer_Player input { + width: 100%; + padding: 0 5px; + margin-bottom: 10px; + height: 30px; + font-size: 14px; + } + + .axureLoginBubbleContainer_Player span { + margin: 0; + } + +div.axClearMsgBubble_Player { + padding: 10px; + max-width: 300px; + text-align: center; +} + + div.axClearMsgBubble_Player span { + margin: 2px; + white-space: pre-wrap; + white-space: -moz-pre-wrap; /* Firefox */ + white-space: -pre-wrap; /* Opera <7 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* IE */ + } + + +#publishButton { + display: block; + width: 95px; + margin: auto; + font-size: 14px; + line-height: 26px; + color: #ffffff; +} + +.maximizeCaret { + width: 5px; + height: 5px; + object-fit: contain; + border-right: solid 1.5px #525252; + border-top: solid 1.5px #525252; + margin: auto; +} +.caret { + width: 9px; + height: 7px; + background: url('../images/caret_down.svg') no-repeat center center, linear-gradient(transparent,transparent); +} +.selected .caret { + background: url('../images/caret_down_off.svg') no-repeat center center, linear-gradient(transparent,transparent); +} +.upCaret { + transform: rotate(-45deg); +} +.leftCaret { + transform: rotate(-135deg); +} +.downCaret { + transform: rotate(-225deg); +} +.rightCaret { + transform: rotate(-315deg); +} + +#pageSelectDropdown, #adaptiveViewsDropdown { + display: inline-block; + margin-left: 8px; +} + +.minimizeIcon, .maximizeIcon { + transition: .25s linear; + position: absolute; + height: 36px; + width: 28px; +} + +#minimizeX { + background: url('../images/close_x_minimize.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#minimizeArrow { + opacity: 0; + transform: rotate(270deg); + background: url('../images/caret_down.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#maximizeButton { + transform: rotate(-270deg); + background: url('../images/caret_down.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.collapseHovered #minimizeX { + transition: .25s linear; + opacity: 0; + transform: rotate(-90deg); +} + +.collapseHovered #minimizeArrow { + transition: .25s linear; + opacity: 1; + transform: rotate(90deg); +} + +#maximizeButton.rotated { + transition: .20s linear; + transform: rotate(-90deg); +} + +.expandHovered #minimizeX { + opacity: 0; +} + +.expandHovered #minimizeArrow { + opacity: 1; +} + +#separatorContainer { + display: none; + line-height: 24px; + height: 36px; +} + +#separatorContainer.hasLeft { + display: block; +} + +.separator { + display: block; + width: 0px; + height: 100%; + border: solid 0.5px #c4c4c4; +} + +#interfacePageNameContainer { + float: left; + cursor: pointer; +} + +#sitemapControlFrameContainer{ + display: flex; + margin: 4px 6px; +} + +.hashover #sitemapControlFrameContainer:hover { + border-radius: 3px; + background-color: #e6e6e6; +} + +/*.hashover #sitemapControlFrameContainer.selected:hover { + background-color: inherit; +}*/ + +#interfaceOverflowMenuContainer { + position: absolute; + display: none; + width: 220px; + background-color: #f2f2f2; + right: 240px; +} + +.pageNameHeader { + float: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 175px; + margin-left: 10px; + margin-right: 6px; +} + +.pageCountHeader { + float: left; + white-space: nowrap; + margin-left: 5px; + margin-right: 6px; + color: #aaaaaa; +} + +#interfaceAdaptiveViewsContainer { + display: none; + margin: 4px 0px 4px 30.5px; + padding: 0px 6px; + cursor: pointer; +} +#interfaceAdaptiveViewsContainer:hover { + border-radius: 3px; + background-color: #e6e6e6; +} + +.adaptiveViewHeader { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +#interfaceAdaptiveViewsButton { + float: left; + max-width: 145px; +} + +#interfaceAdaptiveViewsIconButton { + display: none; + float:left; + width: 16px; + margin-right: 6px; + background: url('../images/views-icon.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#interfaceScaleContainer { + line-height: 36px; + padding: 0px 10px; + cursor: pointer; +} + +.scaleHeader { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +#overflowMadeWith { + line-height: 36px; + margin: 0px 12px; +} + +#axureLogo { + display: inline-block; + width: 56px; + height: 36px; + padding-top: 1px; + background: url('../images/axure9_logo.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#overflowMenuContainer > #overflowMadeWith { + line-height: 24px; + border-top: 1px solid #ccc; + margin-top: 7px; + padding-top: 7px; +} + +#interfaceControlFrameContainer { + overflow: hidden; + height: 36px; + display: flex; +} + +#interfaceControlFrameLeft { + flex: 1; + display: flex; + font-size: 14px; + line-height: 29px; + color: #3b3b3b; +} + +#interfaceControlFrameRight { + flex: 1; + display: flex; + justify-content: flex-end; +} + +#interfaceControlFrameLogoContainer { + overflow: hidden; + margin-left: auto; + margin-right: auto; + height: 100%; + display: flex; +} + +#interfaceControlFrameLogoCaptionContainer { + text-align: center; + margin: 5px 10px 0px 10px; + font-size: 14px; + color: #4a4a4a; + font-weight: bold; + line-height: 30px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +#previewNotice { + font-size: 14px; + line-height: 36px; + display: none; +} + +#logoImage { + margin: 12px; + max-width: 150px; + max-height: 12px; +} + +.emptyStateContainer { + text-align: center; + padding: 0px 10px; + margin-top: 32px +} + +.emptyStateTitle { + margin: 0px 0px 9px 0px; + font-weight: bold; +} + +.emptyStateContent { + line-height: 22px; +} + +.dottedDivider { + height: 2px; + margin: 15px 0px 15px 0px; + background: url('../images/divider.png') no-repeat center center; + background: url('../images/divider.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.mobileMode .dottedDivider { + display: none; +} + +.nondottedDivider { + height: 2px; + margin: 9px 0px 9px 0px; +} + +.lineDivider { + height: 2px; + margin: 10px 12px 20px 12px; + border-bottom: solid 1px #e7e7e7; +} + +.pluginNameHeader { + font-size: 14px; + font-weight: bold; + color: #6d6d6d; +} + +.mobileMode .pluginNameHeader { + margin: 14px 12px 13px 12px; + font-size: 18px; + color: #6d6d6d; +} + +#projectOptionsHost { + display: flex; + flex-direction: column; +} + +#projectOptionsScrollContainer { + overflow: auto; + width: 100%; + -webkit-overflow-scrolling: touch; + flex: 1; +} + +div.mobileSubHeader { + font-size: 18px; + font-weight: bold; + color: #4a4a4a; + margin: 0px 12px 11px 15px; +} + +div.mobileText, span.mobileText { + font-size: 16px; + color: #4a4a4a; +} + +.nativeMenuText { + height: 20px; + font-size: 14px; + text-align: center; + color: #ffffff; + margin-top: 6px; + margin-bottom: 13px; + text-decoration: none; +} + +#refreshText, #exitText { + margin-top: 6px; +} + +#returnText { + margin-top: 7px; +} + +#refreshIcon { + height: 20px; + object-fit: contain; + background: url('../images/refresh.svg') no-repeat center center, linear-gradient(transparent,transparent); + margin-top: 14px; +} + +#exitIcon { + height: 19px; + object-fit: contain; + background: url('../images/exit.svg') no-repeat center center, linear-gradient(transparent,transparent); + margin-top: 14px; +} + +#returnIcon { + height: 46px; + object-fit: contain; + background: url('../images/return.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + + +.nativePrototypeButton { + width:50%; + margin-left:auto; + margin-right:auto; +} + +.circleBackground { + border-radius: 50%; + behavior: url(PIE.htc); + margin: auto; + box-shadow: 3px 3px 3px 0 rgba(55, 55, 55, 0.5); +} + +#returnBackground { + width: 46px; + height: 46px; + background-color: #ffffff; +} + +#closeBackground { + width: 61px; + height: 61px; + background-color: #f2f2f2; +} + +.closeIconSlash { + width: 35px; + height: 5px; + background-color: #9b9b9b; + position: relative; + margin: auto; +} +#forwardSlash{ + top: 28px; + transform: rotate(-45deg); +} +#backwardSlash{ + transform: rotate(90deg); +} + +.mobilePrototypeControlFrame { + position: absolute; + display: none; + width: 100%; + min-width: 310px; + bottom: 0px; + z-index: 2; + pointer-events: auto; +} + +#nativeMenuBlueBackground { + height: 72px; + width: 100%; + background-color: #008fe0; +} + +#mHideSidebar { + position: absolute; + width: 10000px; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + top: 0px; + z-index: 2; + display: none; + left: -60px; +} + +/*@media (max-width: 419px) {*/ + .mobileMode #topPanel { + display: none; + } + + .mobileMode #mainPanel { + -webkit-overflow-scrolling: touch; + } + + .mobileMode .leftPanel, .mobileMode .rightPanel, .mobileMode .mobileOnlyPanel { + box-shadow: 0 5.5px 5px 0 rgba(0, 0, 0, 0.24), 0 9px 18px 0 rgba(0, 0, 0, 0.18); + top: 45px; + left: 100px; + } + + .mobileMode .leftPanel, .mobileMode .rightPanel, .mobileMode .mobileOnlyPanel { + float: left; + } + + .mobileMode .rightPanel { + margin-left: 13px; + } + + .mobileMode #maximizePanelContainer { + display: none; + } +/*}*/ + +@media (max-width: 850px) { + #overflowMenuContainer { + right: 0px; + } + + #overflowMadeWith, #publishContainer.preview, #separatorContainer, #separatorContainer.hasLeft { + display: none; + } + + #interfaceControlFrameLogoCaptionContainer { + display: none; + } + + #interfaceControlFrameContainer { + justify-content: flex-end; + } + + #interfaceAdaptiveViewsButton { + display: none; + } + + #interfaceAdaptiveViewsIconButton { + display: block; + } + + #interfaceAdaptiveViewsContainer { + padding-left: 8px; + } +} + +@media (max-width: 700px) { + #interfacePageNameContainer { + display: none; + } +} + diff --git a/web/main/static/resources/css/headers.css b/web/main/static/resources/css/headers.css new file mode 100644 index 0000000..8230c9a --- /dev/null +++ b/web/main/static/resources/css/headers.css @@ -0,0 +1,15 @@ +.form-control-dark { + border-color: var(--bs-gray); +} +.form-control-dark:focus { + border-color: #fff; + box-shadow: 0 0 0 .25rem rgba(255, 255, 255, .25); +} + +.text-small { + font-size: 85%; +} + +.dropdown-toggle { + outline: 0; +} diff --git a/web/main/static/resources/css/images/images.html b/web/main/static/resources/css/images/images.html new file mode 100644 index 0000000..335d9c9 --- /dev/null +++ b/web/main/static/resources/css/images/images.html @@ -0,0 +1,25 @@ + + + + + + +

    + + + + + + + + + + + + + + + +

    + + \ No newline at end of file diff --git a/web/main/static/resources/css/images/newwindow.gif b/web/main/static/resources/css/images/newwindow.gif new file mode 100644 index 0000000000000000000000000000000000000000..7b14cb0a0a06418c1c1d826edf1845036a7bbcbc GIT binary patch literal 112 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 D1lIl7 literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/touch.svg b/web/main/static/resources/css/images/touch.svg new file mode 100644 index 0000000..9903c7f --- /dev/null +++ b/web/main/static/resources/css/images/touch.svg @@ -0,0 +1,32 @@ + + + + touch_update + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/main/static/resources/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/web/main/static/resources/css/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/web/main/static/resources/css/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3d6346e00f246102f72f2e026ed0491988b394 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-bg_glass_65_ffffff_1x400.png b/web/main/static/resources/css/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-bg_glass_75_dadada_1x400.png b/web/main/static/resources/css/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..5a46b47cb16631068aee9e0bd61269fc4e95e5cd GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uPMaW978O6-<~?i$)F&>d~nX+ z>vO)oJQ&&FVaKefeOt$qOR>f~^ebnN_=~%qdHEaS{Ou}E*`%9 zKPdOkfrN+ZlHSt7(uY{3{#;wiJb&Ugx1>W4qtrSDm(4hFaaY-$3p3x|sIU3`%J?Qj YcLn#R=pC)AfTl5cy85}Sb4q9e0MP_2(*OVf literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-icons_222222_256x240.png b/web/main/static/resources/css/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-icons_2e83ff_256x240.png b/web/main/static/resources/css/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-icons_454545_256x240.png b/web/main/static/resources/css/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105 GIT binary patch literal 4369 zcmd^?`8O2)_s3^p#%>toqJ#RmwV2==ic*rz7lOw=eaq=H~;_ux21)-Jpcgw zdj+hrf&W^f<%Qk9Zpqf#;jH;N^Z%VA?R|9mZ{esQd(2F=?y+!`XZ5CR?ue=UdHIfUDFM*m15I;g=VN2jw zQW9?wOhDI#+P0|`@JQoC3!pu=AzGMtYB>V&?8(2>_B5_p`1Sb1t{^|J%bZYv09RS? zQ*dcs7}$)taJ@vX0E<96P{ur)Eygr{&ALyNoMP%_94m}=qFVT)&CeG1DBBMLUSKP^ zp%%Q3$MEtKll)X*+$)3O_3x`4%cHY0uhy7U;5x^Ir}X1)mv&B%|A)@A$a>f}tP{5X z9-gkti`YyT+hk9)cZW7fAQhjT%$XLLI^&VR=qev36;`WGBOP!^&(?!sK6jSH0Dnz4 zoEMMNu}y&n=rd-GWI?rGBI8!GD*NJ$k&e5-6+~-9F^6tV<=5`FcY~t{iqRcncEU+F zkT~jww!oy(@~b~WGI8!lzjURX&IpJjFGxShOKUunP+rW$I{c|x0qM6!Gxf6n(;$D> z+QYiULqq)Fy4VDk&Mev)NyM@nvF z7O6M*A$C)kBi0HGMT_+xfQ^USTM)>*h_Rx%eSRxA%n|FuC&=F=Pz}E5uCqbcy;7j=%Qh`glqEA-jx0(a<)uKO5Fe|JLD-ndZ-vnW`G=O&^%pa}Ah(2%m?oANs{lJ`?RhrZ8n!`Q97TKw{YAw9 zD)=M{mD(~_jj`LTd%q6Veum)Cnd!7lw}(5h%ubHcg^2O`prn%u9es3C#&%TsnmSD3%3Ik^Yd@6-d%(I7kqT(B@dVX2 zIidXgd>qYT-oTZ=1sGI7^*_E9Q)1F2mooE0R zXopPnh^ci@+wz2ZDjo&Owyxh6t90Gt!u0miLxc!bue^LvHF?)O@Yf!dQUXfW$u8(f_n07^N)-vpIe;TrHv5uKm{h_v`-IN^zwWc>Lk ziGsSr89sDcdOR_wa~DjrqV&Nd*$18(vohPJ3hSzEJPF2d!u}415wrSMtS(zNa7 zbO0G4ajgKNp{`D7DO<(T?wowarQ0dIKLb<}#prQM)ytB73YNTPQgX^xoT zm>;yKSJ*c@QfD8HW`6&+mowOaA|A&~G0fO6&xwj;E3O9^Zu~ZXts~;-d%FyyeXrijORi<_S(dw_5@h&-fTY?#FJo% zQZZ1&ED%$if+n8JVM{s-ZoK@P>p@z4s`AoI6hYxE!Ie_Y)cpjZjc8@~uNMYVfy#J$ z)+sdEX7DK^{}kUAST8U6^p6#c>0Lc>T~9`0}`*2 zizaU)TFS4(u;BenUWZr?s{D)Z)rc9L5&gUvz3iSQaF#J)D)Ts{YgagdDcI1S`dtes zPqb4|h-RIkjhnpmn(Q2Je6Di5C?MkCUL)!WoKn|P#al41v#-Q8`K1$Gh64UhPQj|T zaZb%tJ}O{A?Cvl26!jeKS3OUkp5@8RDBYwh`Loxb5W<^m*R37+v}#*m-G{{ocF-#r z7!k3ZS^4Qu9sNRNZ3`laW2TqV{rsR#~gtVp6C zL0?}~gbLTv^jqtPQD@Cpq6{B6v&*Y)?tx})z=qQNB4Z_59 zpI2L)xQ`!|J8wWgs82jSw_8(;#}y7~Y^&hY9P1G)@`CGtIi*tZ%-%&;$PuG(!M%)E zQ?T#imBH8dCZxUBX^RWPwIh9LcnL3#$befQDr@UJl{=}o0){qIt52vU9X=3L_gvVW zPqp_YhhpM6XiE7Lvn-G0Wzo>0;g|$_-7|ucz~*w%bW@hr6M?~v9dT}L=>UotTj13& z?Uvt0_uOvzMq4iG6)gZqeU;W=P@EVod;}Vr7P*@=C19v;iz$4N+c5ewauTtKK5e;yIx(FQUec0 z`G)VlTUY|m2L=KusMRgMlapu#wt8MohK3=y`!J`tD6nYd%?xIZO`Q)skL)R%3Vf(P z__5Sx3h%fKF=sNdZo2p(w=_|}1M%ri7fO?8))sU1ySG;M4p4;zrr}4l0lzvA!WQ&a zrwX>%lJkv`Gr_u=K>kHOg6(AB(R3FOryElY)-vi|fRsBS<)$1;TC_?BnyScjY6>_ZD=T|bjcbjz@D6V+yfHd4SU+J*2Dh%n;$5ou zHh6R=)$>IH@%5js2KH#JkfFCVI}P>~U;|}>kk|06tA}^~B;|gJ$UvSF-l4GX43DAR z&M2mp8OgiTaK4li0|Q2qmGNYsm+Qq^JM8yfCP>5!31rjh4Mnq~+5X8+_$scfP1Fp!c zcQO*#6cfJ?ZRxn_$Se_|}Xo1oIF7s(7CllypCW@W8-y5%Bel_K*0G zd~8UWeYCWz>~^hF3ond|tQcClJ(8^9FW&&?U)a4O-pE;Y*u|FHGax>F*Kg_beOF5c z&?#xRN5Q?ckEwCnNr-${XC=w-te5%QH(6O~yxke=R!_ns))PU07Pu)CY`<>$+XicZ zCI=g^;q7NZnw=-vf;HoWLD+}`&Bph>kiqyX5jxjI1A41d$R3nahq@CHULV#9ItIwJ z0)^JGy{hB;@SD|}Zel8~2z;UjN96MR@dt;EV`9RP4X&zn8ib=n*107cICSp7z6srZ~4Qg|Vp$OB0By{IxAPaD7HGFw_HTza~wWN1A6 z3`7BZFse2a4{y#V^&;nRVcZOz*2>A?jm$%?)KawLR0cEz24qxxOOo9_2)9MrWpSg7 zPiPz+M7(zPRZ3$#11ti?uI!}bM!Dg%L#+uR+^2L2RX+QlMpL zg_DrR=GIT7C~b+^OZK)?l7*9c-78zWVbLo1oS}bItdscuF80}guwA8c^(47DfaBjV z^V@&JJHxYHqS+e7&X;ezZwsE2+t~n0?*m^(db@WnI{LgAnOqOa<8pRvo0E>*O&~J_ z&A)t2LOG)5=3$3n2_gi2Kpvgv)#LCUh2Y~ z!A&(~-8reT$sJk0=L;m~ES3k}k% zkF%gzzT(+nRU0IeUvuW8pq=8uzr&7HW>K5ZiD*8qL17AI^ zGqo>*mvIChU6+&t{A3|!W?~pi9_O$>k2d|#(Z721wcT{S1)_UFZ+}QS^KZ*u?5Y~bz z^cLI;2{$C_ZwWqM@sYMYwG+^N<^Ivq8ZOwV;7xT+WCh)I9PHC}ut;VNr?w z<@?HsG!Qg3zaV+-xQ3ldtad!U<6iGz_enGH*2akP_r)o1D&8p^5M)_c8IIj6Wy*7HJo&CBLuo~nj>(63pZzO(Vv^ZuB3 zMYigjkwA;FEy|G}1jpiMj6|NTm7Uyiw=@FDE*nX<>jR!W@9XIyf%$Fd*J5*D0Z0Lm z9}ZQxyT|x5ftNy?V>EbJz-K>bV9gs9RaXUP<^=;e?&Fqxj;6{ieR-a-@HycA1KMKhql8GOmcxwZ?_-(3hMK^^a*(gaFvBH ziIC!fgH4$W*NbKIaY&T?%&13``KbD@S-0`xQ%v3TV+B!;RC7O!+1a9QCA$H@3tR;k z)SSoR7(s4)f{zM}eWgFN{(ZH5d1O}l)f$ruT!)Q&NImXyZsTzOf9TwctcSfr+M)aJ z5otO+$jvm-P4)ykH)x|cO5xeb>?!`qGw$(>&axqLL6yoB${vsMXgL_-bz@2J_tS92 zdvZG-+vKl@K4Vr(EL{WQt@Z+Ea-hxX0}nTSZxnpi^#Kn8Ox8FgIS|hc}KJQ4tm*HO16ui{(O9} z1YN)GjiQt6fGq`Cj+^`zUf?8hk^(T{{cOQGWFP98am}is28A!5%{R#ENv8fCN!j69 zlMEK(2z?|BY=Je$XD9mB-Kkem*(d-j^9j$2#6r$Dz?s)-TCDCGCs z8>6Pvj{Y+YIeFA@qY22V$)awy@q!9A4rgk5b9TcC;s9Ig^G|6nDP+5=Fzg&?(L=vc zCbGd>fSu~@6!94td+o#d@sid!EIX$rx7*cawe6 z`dScJ+$HssdOjE)O#Ybs56vm-FQ$7yuJJD^Zqk%hMaIgAJ<2yb_MFQte_i;62ScT$ zpjifYyR_E=rQ+>H)pmlr-Udzg*-!|ssw(D7wJvC+Sf8bb9;;q8#z?0p!!bsd{wy|5 zpBaMHE-Ve>i#LLjHRaMLtp%9&(HCng7Sw96jVv!#0k%?F^K7&=T)mnYn)D9(i;4x5 z^NJTJwq~pv;kH@#ejTd*48~(J(r6j34|m`h9fEDj0im)~+%I5XphWymhT;_Zty|Q& zzjPg#-ufAHZ1M*Gccw?Kf|8Pnhtb0`!{N`Bqsa37J+>wC$!e z00k+2Egzz;rbcWoUB%Jvp8W1}$XD%e3>4y;;OZ1ccT-O#uW6Ys@C}Pa`nZrNKzR(2 z4e%3)@QI4SE&E!lW`5y14QhbepBG%_XBV-O(%5tj)@9#|;sC-MNev!zGDHk}JdpGC`iJF#8=8-P$Xoku_=Dw%Cv3{U7L>gf zRQ?<$t`cZ*MP5GQmbmx#!+*!zu>0MewRO9GFGS{b^m_fJ-N0?j@EqoFf>$khj+E|@ z7r3We&^tR^YZrxKe*d22agXqCO0l44&kqCv{u)T|(lv`~PK@DvE z{QI_TlCH5z*gR!>LO)k67{^R+vWx24U2^2ODXpwT;6y+6+$5m)_*w4WY&#do9dCeE z)>p+Ykdhq($DhmMiaYXey!@N%L26uz($aJ!QT{B^Wu}U$^9e#5)=c+XF9@Ill?ZmM zlNgHiz*9!vDc&uxOo;ZVxb`Q!Sk0*gnfxWzmbZh4(=%CD%qP?0=);n$&zaW_$UKV9 z8axdcN#AyZ{P)wj?V{P}vM)YY!>6@}^>U+iv$`9>nMTCPjN>z%yF&3yf%>+T@0vh4 zlC8Xa6zeo?%=o3}M8{aebLHcO{^1Ar8qiM=Gquf?Jo)q5`-+?sUpg?QXyEUpWSm+n z$K-UyqkIwHLquru~o(OF)hhz$Y*|X>ZIbswnxRvr~ z2=rdOGVuD|xRlpAZE<0!X1F(%Anpl^@V^D3vbM}qxe|NI;TTiZy7(IM;R69RkA>a& z6gwYE2sREzQ_LHmWqB+ogMk(fMaSFeoDq-!HkFB_nXt5+2ncFuk9BQL1I&oB1zZi) zYW{6_&-Ip1l*OVRA##1ILQS;5R{-K^0wGTiJbVSi@LA^$D$;@J>^G{6@&+%4{b3(s zC~LEHiTv(0b#zxt?YJ0r_~pUZM~mQ(??(n#>&tD%+@nq=Abj5*8R!~Ul1`G~=qFJ4 zfl|m8ZDCYgtr`4LcOpgiJYX9qRY5;DcWti~PmS$VB$E-Zt^f4)vLDOe_3XTq5^ylW zJ9PKm!V-8sAOJXnUfuFNIf0R9tK-pNs2hO04zr620}5B(Ok>yB)Of-3sP59qfQNbm zA4{w!2@cB;GbR(~szVrbO%(w=5S!X`o@o@x++wbN_tMPT0Vc)*I;Fgsbf^*g0 z2Di?HTApwKq3+YwfNsqd3iP%{hyK1iyuVZc@*0tO_3+N0#GFsz>8MjeJ2UJ%L!%hi zGYYAthH`E+ywA*u{(eJ=ia3h*%k?779rk-K<0VZAPkl;TFUbmei|$fqWO8!_zIvqt z$ly$VrlH46nnpX~X5Yk0iBJl;=WuA4>~X4-f&K0yWf42h&0b30t@NYX$7egQ1Fp!a zbui-D6cWCWV&|R1CY@G8(qOmWjWeX3eX7UggZPGimA}soOuQdXe4uZ#2>5zN>qlI0 z9xk}lE=tNpX1m6*nFr2EQ3xs79!^sCldDJYE$m(qYv3q7>}1R7?iZW7>$~*%zKaC| z=$N?ME$>#+%T&MZC`dW1wUl6Z)JgyCn~V%K&i0H|iwE%$>xsZW3tTfZxIUePci@p;cRu|d=ItIwF z1clVHy{hH?@SD|(Zfqi^0DQ1hczHN7xq85h)rzQqLHMX2^IkuK7FB!kI40s$|CY7~ zNX^{_UjN8}L%Med;|+=4RNTMozn8KT;2tb77bUPCmioh+rZBfIiM6f_P34cQ__o1G zWqQp3VL~~pE5?qODf%iiQQ3f42YF@09tQ*$4v_EKUx;t1KCPCBtgqg z@+Tn;O)a0uky_%jm+WjNB?=~VyH>V#L!*=l*@OS6SVyt_UEH&NA=?V2stHPyKkVNy z&jg<#cjros){#ji)dK z%)We0L_478=HZ8-@xnwsKrWs8)x`MB;(Y`Cmu2c-&SH(vN-F(*e`l?c%+l$|y_AJJ zhcDGnwLvN+bu;_sX|1AiePhx@u&%P$hf*xE+O=~D?_(_KGWQ!158YL-y9$*6mmPo;Rp*Dl5lm-mVM2i`h- zM@nxv590_tvMwPD_{l=b$iOm|+|S{D9&P%zeT$GgX6Akl-tfUF>tL@Ld!B&{pN39t zH>3Vhqkr}2Yul+jb7UiouWVGPNsxX7Ueba+9|~dz?d*QM$ng0DZfO0`7fAy?2yMm| zcnRzUhZ&IcwgjH9cuU!w+VStYa{p*)4IgBf|E8)sqMYtB2KH_}SfsFq(c9i(Q6S3U oBo%DI*Kv;w;*%(i9W@f3_WCF#rGn literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/images/ui-icons_cd0a0a_256x240.png b/web/main/static/resources/css/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d GIT binary patch literal 4369 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⋘wLzui*CzrQxHdC>qAqVXWf(Lwuz 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 literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/previewfonts/SourceSansPro-Semibold.woff2 b/web/main/static/resources/css/previewfonts/SourceSansPro-Semibold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2526d2e1b602bc40c347df3f78ce757a9b5adc0a GIT binary patch literal 86196 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�sdvaBR-19P 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 HkpTbzO@KSN literal 0 HcmV?d00001 diff --git a/web/main/static/resources/css/reset.css b/web/main/static/resources/css/reset.css new file mode 100644 index 0000000..01a4271 --- /dev/null +++ b/web/main/static/resources/css/reset.css @@ -0,0 +1,24 @@ +html,body,div,span, +applet,object,iframe, +h1,h2,h3,h4,h5,h6,p,blockquote,pre, +a,abbr,acronym,address,big,cite,code, +del,dfn,em,font,img,ins,kbd,q,s,samp, +small,strike,strong,sub,sup,tt,var, +dd,dl,dt,li,ol,ul, +fieldset,form,label,legend, +table,caption,tbody,tfoot,thead,tr,th,td { + margin: 0; + padding: 0; + border: 0; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +ol,ul { + list-style: none; +} +q:before,q:after, +blockquote:before,blockquote:after { + content: ""; +} \ No newline at end of file diff --git a/web/main/static/resources/css/sign-in.css b/web/main/static/resources/css/sign-in.css new file mode 100644 index 0000000..67e301e --- /dev/null +++ b/web/main/static/resources/css/sign-in.css @@ -0,0 +1,33 @@ +html, +body { + height: 100%; +} + +body { + display: flex; + align-items: center; + padding-top: 40px; + padding-bottom: 40px; + background-color: #f5f5f5; +} + +.form-signin { + max-width: 400px; + padding: 15px; +} + +.form-signin .form-floating:focus-within { + z-index: 2; +} + +.form-signin input[type="text"] { + margin-bottom: 5px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.form-signin input[type="password"] { + margin-bottom: 10px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} diff --git a/web/main/static/resources/expand.html b/web/main/static/resources/expand.html new file mode 100644 index 0000000..295783b --- /dev/null +++ b/web/main/static/resources/expand.html @@ -0,0 +1,60 @@ + + + + + + + + + + +

    +
    +
    +
    + + \ No newline at end of file diff --git a/web/main/static/resources/images/caret_down.svg b/web/main/static/resources/images/caret_down.svg new file mode 100644 index 0000000..692dab8 --- /dev/null +++ b/web/main/static/resources/images/caret_down.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/resources/images/caret_down_off.svg b/web/main/static/resources/images/caret_down_off.svg new file mode 100644 index 0000000..7b640d8 --- /dev/null +++ b/web/main/static/resources/images/caret_down_off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/main/static/resources/images/close_x.svg b/web/main/static/resources/images/close_x.svg new file mode 100644 index 0000000..325ca55 --- /dev/null +++ b/web/main/static/resources/images/close_x.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/resources/images/close_x_minimize.svg b/web/main/static/resources/images/close_x_minimize.svg new file mode 100644 index 0000000..24f693b --- /dev/null +++ b/web/main/static/resources/images/close_x_minimize.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/resources/images/divider.png b/web/main/static/resources/images/divider.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b738ae3aa3929f75868f4987bde00ab77727f1 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^RzS?e!3HEbC!K!*q*&4&eH|GXHuiJ>Nn{1`RXtrC zLnI`V@9ZpIF3ik)m`#DLk)gc&d#!+4lMG+h41s%+_jDNi<|r2amOEGv)WG2B>gTe~ HDWM4fExR0& literal 0 HcmV?d00001 diff --git a/web/main/static/resources/images/divider.svg b/web/main/static/resources/images/divider.svg new file mode 100644 index 0000000..767941e --- /dev/null +++ b/web/main/static/resources/images/divider.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/web/main/static/resources/images/exit.svg b/web/main/static/resources/images/exit.svg new file mode 100644 index 0000000..f6e38c0 --- /dev/null +++ b/web/main/static/resources/images/exit.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/resources/images/favicon_play.ico b/web/main/static/resources/images/favicon_play.ico new file mode 100644 index 0000000000000000000000000000000000000000..6f9a87376a3c1e35f96bfcdeb5b4090b7ca4d49b GIT binary patch literal 5430 zcmeHLy-ve05WWHu6HT&^d#4=<@0xcKIcp{qCFaqiTjKu2Sg`Clx6Dw1J7Ua+$qoTkXNXA?udBa zMzaOI%;xmNt?1Y`ye`LH9oM_|%>(%%himVo^IzW|LHI>Q&&x}%eKbFMA6ZO(j8~sG zz2q?Y?_Q63@xrG*m}V^aV4D0w<34AuX+xab1zr2fit{_&=bsTq9>jdeGa0vYZpcR^ zA@MkfWzDO6gR>i^zy0iE&rO9<<|r*nh^>5W3{2pcdfVk~`gQnq+U62iO$>Fvq|DW^ zVy&sG-FGqKyesx@o!uv`cDa8$E>hkhkMC#Yz3qGdd*`dlR>0SUyIiE*OaN$eYq7DDw7Pryjq8om^xNO6hh(#B^)LE?KL+7XEMQhFs%{eB&i7%yd9bZ~! z6F>F+W6H7{5Aw#4@*7aqL>}Kk1NmOpV`BMZOKw$vguXR}$gbYX0&4Xwefs#Zsz3i~ X;6(NJn&@!KPXuUMme{? + + + + + + diff --git a/web/main/static/resources/images/overflow_checkmark.svg b/web/main/static/resources/images/overflow_checkmark.svg new file mode 100644 index 0000000..1902c82 --- /dev/null +++ b/web/main/static/resources/images/overflow_checkmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/resources/images/overflow_icon_off.svg b/web/main/static/resources/images/overflow_icon_off.svg new file mode 100644 index 0000000..392e0e7 --- /dev/null +++ b/web/main/static/resources/images/overflow_icon_off.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/web/main/static/resources/images/refresh.svg b/web/main/static/resources/images/refresh.svg new file mode 100644 index 0000000..258992e --- /dev/null +++ b/web/main/static/resources/images/refresh.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/main/static/resources/images/resize.svg b/web/main/static/resources/images/resize.svg new file mode 100644 index 0000000..3c62509 --- /dev/null +++ b/web/main/static/resources/images/resize.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/main/static/resources/images/return.svg b/web/main/static/resources/images/return.svg new file mode 100644 index 0000000..b5bc16d --- /dev/null +++ b/web/main/static/resources/images/return.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/main/static/resources/images/transparent.gif b/web/main/static/resources/images/transparent.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/web/main/static/resources/images/views-icon.svg b/web/main/static/resources/images/views-icon.svg new file mode 100644 index 0000000..0f78550 --- /dev/null +++ b/web/main/static/resources/images/views-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web/main/static/resources/images/zf.png b/web/main/static/resources/images/zf.png new file mode 100644 index 0000000000000000000000000000000000000000..edeaf030bdcae9cc027482a0063f9718ac929b09 GIT binary patch literal 96356 zcmV)?K!U%CP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x010qNS#tmY3labT3lag+-G2N40Du5VL_t(|+U))5vn1J- zABg?Vx%awzM7$;UtbG9rD4+_39ccF6O>)RF(ni#n4NV$K8WU|~rVskAKVT%8G@}_4 zDU*!GCWkYeQFGV}*(A|>qd90a&}aaK0t&V7Rhe0p+spUzy%&qS-+Rx|hwJX)@s`{w z*Q$5wSyW_%hx_&G*N>m&cYcTdO`-(GE=`)_(@x5s+8!uHoIw{yMiH`X+h z^kGlsqa!!*`d)`z_x&hW*cs#Qmi~&rOSJ8Q9LRy(onr6w0QQv~%Im7S?0UC9kOMi8 zkC@!O>g)>AH-@ij7~fXQ`9KcjK<=E_#!>CR-ceCiV!Fb&=tV=iz}fC7Pd|c&{`R;@ z+Kn(D$*$Sc-s_I94&<&9J-9Tj=&m=nLvHH)-;J@eJ?*L8Nq{RzxA8&f?LZFX<0E&Y zI_uJ2{k-IUo9*|>f$}<#1Npeg-KfrPEZTKfVNDL?Kn~>gOOp!Nfs^Xw_UnlKoXXue zvK`y+{$$U=6Y)*K*X&M5G@tZhd3T9!y@B)HZ#~@HA>9i6+J1P$9kEm*x|XQTt-}xA zg|cUe<_dCWaB5eSdor_mAO~{2a`)VF2XgD=K%E`PM^g^;*T+!q#@N|`9LR@}>qT52 z$VW!(wN(6l)Gq!GfX&T)il@R*%wKQv*gt9)<0eZ7MeIZuzg_rBm9Ko27FWo@+%L#2 z0;+w8y&YI*2lBCyk4ZTHV=f2k>_9$h(j_qu!e<{hIYaUL3aQf$jRO?)XrfdDwG2R~c{`Z9C>GZzcL?ekkw+Br^; z0-~zz9$276lw9;w`ZhmzQBXQo+W*dZ*mX?4&GkPAvM5)-0k5LYZa*IF!}EDvjo)gH zIHJW6*Pb{UrEVTu^`ZOhy0^0%jh$(KXR6vBz8!EA%4u~g37`bob)^}~0F+3Go1YUg zTE;i+Z_oXk*%B!vDpXaVP$D8FCSm{tqpAtl#mq!Rsv@GQA|fK_8AlEHi(191s;bty z{-RRVbQMGchzzxQn3OI^DTb`|HcLWn>_lJ)>4h@qewp{!6SDHvoxoRqmrR0y^4 zO=_plG80TY?P<1122(gX;6oC}! zRt{bujn1;f#;_v}Du^*c9h*j@qAk}a1wmr1s@y2*M0E)OB7h_6pZwzolU0Q!+;gi&O=lsil)_Q>6ClZ*k1_;5Rki9 z4%FG*Ey-}2yNS)MrGQdO%CS&$o3RRM@Dyk703umFiQJJG5QjH*0R)CcNQHe?l17#vhyG+1V3oru&CITCRAu<9(WE8B8 zEohh-WB`D~`-(wONEA|mYHJfVq$!eKG`ZgjDY|NaG+m9gm@Hp31|)z;jaqDUB9TBb zx2Jk}y94!gkH~>KyXQnYr6ynn2~6vy3N<#G2q^=kVCuP|ojsz=qykYex1W;=z(l5T zNtuYm5Ccpwl!96mMI<7!CNGT@8ihzTsv06N8)KBHi#SGY%ppT0BqS0Mp%f7%MpYvU zRWh7MMfyduu#yi;97)B%fW#0J5fc$u5RzTTji;P65i41x9VKWW>U_w?D%9o~AVR8% z5WTh3=H6`c&)AEf?sSfbKEmGQy(jhtaZL9tAngk0duRBbb_sP>O>1AYBcfz#2{pHt zf`qsmZ6q>KQJ8*DgKlrscvxuc7?z|vzyLuSAC|}@mrgVQhy)@PLgfQ9n3>rTJ7u

    EDrJUP$3Ybl$|?LrtONrR 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

    '; + html += ''; + } + area_name = `${channel.area_name}`; + html += `
  • ${area_name}`; + html += '
      '; + } + //html += `
    • ${channel.channel_name}
    • `; + html += `
    • + + ${channel.channel_name} +
    • `; + }); + if(area_name !== ""){ + html += '
    '; + html += '
  • '; + } + html += ''; + const treeView = document.getElementById('treeView'); + treeView.innerHTML = html + generateVideoNodes(4); + } catch (error) { + console.error('Failed to fetch data:', error); + } + }); + +document.addEventListener('click', function() { + console.log("第一次页面点击,开始显示视频--已注释",m_count); + // if(m_count != 0){ + // count = m_count + // //获取视频接口 + // const url = `/api/viewlist?count=${count}`; + // fetch(url) + // .then(response => response.json()) + // .then(data => { + // console.log('Success:', data); + // clist = data.clist; + // elist = data.elist; + // nlist = data.nlist; + // for(let i=0;i { + // console.error('Error:', error); + // }); + // } +}, { once: true }); + +//视频窗口 +document.getElementById('fourView').addEventListener('click', function() { + if (fourViewButton.classList.contains('btn-primary')) { + return; // 如果按钮已经是选中状态,直接返回 + } + const videoGrid = document.getElementById('videoGrid'); + videoGrid.classList.remove('nine'); + videoGrid.classList.add('four'); + generateVideoNodes(4); + //更新按钮点击状态 + fourViewButton.classList.remove('btn-secondary'); + fourViewButton.classList.add('btn-primary'); + nineViewButton.classList.remove('btn-primary'); + nineViewButton.classList.add('btn-secondary'); +}); + +document.getElementById('nineView').addEventListener('click', function() { + if (nineViewButton.classList.contains('btn-primary')) { + return; // 如果按钮已经是选中状态,直接返回 + } + const videoGrid = document.getElementById('videoGrid'); + videoGrid.classList.remove('four'); + videoGrid.classList.add('nine'); + generateVideoNodes(9); + //更新按钮点击状态 + fourViewButton.classList.remove('btn-primary'); + fourViewButton.classList.add('btn-secondary'); + nineViewButton.classList.remove('btn-secondary'); + nineViewButton.classList.add('btn-primary'); +}); + +function generateVideoNodes(count) { //在这里显示视频-初始化 ---这里使用重置逻辑 + //结束在播放的socket + for(let key in video_list){ + //flv使用 + // const videoFrame = document.getElementById(`video-${key}`); + // const event = new Event('closeVideo'); + // videoFrame.dispatchEvent(event); + + //通用关闭 + run_list[key] = false; + video_list[key].close(); + berror_state_list[key] = false; + delete video_list[key]; + } + //切换窗口布局 + const videoGrid = document.getElementById('videoGrid'); + let html = ''; + for (let i = 0; i < count; i++) { + let frameWidth = count === 4 ? 'calc(50% - 10px)' : 'calc(33.33% - 10px)'; + html += ` +
    +
    +
    Video Stream ${i+1}
    +
    + + +
    +
    +
    +
    `; + } + videoGrid.innerHTML = html; + + //开始还原视频,获取视频接口 + // if(m_count != 0){ + const url = `/api/viewlist?count=${count}`; + fetch(url) + .then(response => response.json()) + .then(data => { + console.log('Success:', data); + clist = data.clist; + elist = data.elist; + nlist = data.nlist; + for(let i=0;i { + console.error('Error:', error); + }); + // } + //m_count = count +} + +function toggleFullScreen(id) { + console.log('toggleFullScreen'); + const videoFrame = document.querySelector(`[data-frame-id="${id}"]`); + if (!document.fullscreenElement) { + videoFrame.requestFullscreen().catch(err => { + alert(`Error attempting to enable full-screen mode: ${err.message} (${err.name})`); + }); + } else { + document.exitFullscreen(); + }; +} + +function allowDrop(event) { + event.preventDefault(); +} + +function drag(event) { + event.dataTransfer.setData("text", event.target.dataset.nodeId); + event.dataTransfer.setData("name", event.target.dataset.nodeName); +} + +function drop(event) { + event.preventDefault(); + const nodeId = event.dataTransfer.getData("text"); + const nodeName = event.dataTransfer.getData("name"); + const frameId = event.currentTarget.dataset.frameId; + + //需要判断下当前窗口是否已经在播放视频 + const imgElement = document.getElementById(`video-${frameId}`); + const titleElement = document.querySelector(`[data-frame-id="${frameId}"] .video-title`); + + if (titleElement.textContent !== `Video Stream ${Number(frameId)+1}`) { + showModal('请先关闭当前窗口视频,然后再播放新的视频。'); + return; + }; + //发送视频链接接口 + const url = '/api/start_stream'; + const data = {"channel_id":nodeId,"element_id":frameId}; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + const istatus = data.status; + if(istatus === 0){ + showModal(data.msg); // 使用 Modal 显示消息 + return; + } + else{ + //获取视频流 + console.log("drop触发") + connectToStream(frameId,nodeId,nodeName); + //startFLVStream(frameId,nodeId,nodeName); #基于FLV的开发程度:后端直接用RTSP流转发是有画面的,但CPU占用太高,用不了。2024-8-30 + } + }) + .catch((error) => { + showModal(`Error: ${error.message}`); // 使用 Modal 显示错误信息 + return; + }); + //console.log('retrun 只是把fetch结束,这里的代码还是会执行'); +} + +function connect(channel_id,element_id,imgcanvas,ctx,offscreenCtx,offscreenCanvas,streamUrl) { + //判断是否有重复socket,进行删除 + if(element_id in video_list) { + run_list[element_id] = false; + video_list[element_id].close(); + delete video_list[element_id]; + console.log("有历史数据未删干净!!---",element_id) //要不要等待待定 + } + // 每次连接时增加版本号 + const current_version = (connection_version[element_id] || 0) + 1; + connection_version[element_id] = current_version; + const socket = new WebSocket(streamUrl); + socket.binaryType = 'arraybuffer'; // 设置为二进制数据接收 + socket.customData = { channel_id: channel_id, element_id: element_id, + imgcanvas:imgcanvas,ctx:ctx,offscreenCtx:offscreenCtx,offscreenCanvas:offscreenCanvas, + version_id: current_version,streamUrl:streamUrl}; // 自定义属性 -- JS异步事件只能等到当前同步任务(代码块)完成之后才有可能被触发。 + //新的连接 + video_list[element_id] = socket; + run_list[element_id] = true; + berror_state_list[element_id] = false; + imgcanvas.style.display = 'block'; + + // 处理连接打开事件 + socket.onopen = function(){ + console.log('WebSocket connection established--',socket.customData.channel_id); + }; + + socket.onmessage = function(event) { + let el_id = socket.customData.element_id + let cl_id = socket.customData.channel_id + let imgcanvas = socket.customData.imgcanvas + let ctx = socket.customData.ctx + let offctx = socket.customData.offscreenCtx + let offscreenCanvas = socket.customData.offscreenCanvas + + // 转换为字符串来检查前缀 + let message = new TextDecoder().decode(event.data.slice(0, 6)); // 取前6个字节 + if (message.startsWith('frame:')){ + //如有错误信息显示 -- 清除错误信息 + if(berror_state_list[el_id]){ + console.log("清除错误信息!"); + removeErrorMessage(imgcanvas); + berror_state_list[el_id] = false; + } + // 接收到 JPG 图像数据,转换为 Blob + let img = new Image(); + let blob = new Blob([event.data.slice(6)], { type: 'image/jpeg' }); + // 将 Blob 转换为可用的图像 URL + img.src = URL.createObjectURL(blob); + //定义图片加载函数 + img.onload = function() { + imgcanvas.width = offscreenCanvas.width = img.width; + imgcanvas.height = offscreenCanvas.height = img.height; + + // 在 OffscreenCanvas 上绘制 + offctx.clearRect(0, 0, imgcanvas.width, imgcanvas.height); + offctx.drawImage(img, 0, 0, imgcanvas.width, imgcanvas.height); + // 将 OffscreenCanvas 的内容复制到主 canvas + ctx.drawImage(offscreenCanvas, 0, 0); + + // 用完就释放 + URL.revokeObjectURL(img.src); + // blob = null + // img = null + // message = null + // event.data = null + // event = null + }; + }else if(message.startsWith('error:')){ + const errorText = new TextDecoder().decode(event.data.slice(6)); // 截掉前缀 'error:' + //目前只处理一个错误信息,暂不区分 + displayErrorMessage(imgcanvas, "该视频源未获取到画面,请检查后刷新重试,默认两分钟后重连"); + berror_state_list[el_id] = true; + } + }; + + socket.onclose = function() { + let el_id = socket.customData.element_id; + let cl_id = socket.customData.channel_id; + //判断是不是要重连 + if(socket.customData.version_id === connection_version[el_id]){ + if(run_list[el_id]){ + console.log(`尝试重新连接... Channel ID: ${cl_id}`); + setTimeout(() => connect(cl_id, el_id, socket.customData.imgcanvas, + socket.customData.ctx,socket.customData.streamUrl), 1000*10); // 尝试在10秒后重新连接 + } + delete video_list[el_id]; + delete connection_version[el_id]; + delete run_list[el_id]; + } + }; + + socket.onerror = function() { + console.log(`WebSocket错误,Channel ID: ${socket.customData.channel_id}`); + socket.close(1000, "Normal Closure"); + }; +} + + +function connectToStream(element_id,channel_id,channel_name) { + console.log("开始连接视频",element_id,channel_id); + //更新控件状态--设置视频区域的标题 + const titleElement = document.querySelector(`[data-frame-id="${element_id}"] .video-title`); + titleElement.textContent = channel_name; + //视频控件 + //const imgElement = document.getElementById(`video-${element_id}`); + //imgElement.alt = `Stream ${channel_name}`; + const imgcanvas = document.getElementById(`video-${element_id}`); + const ctx = imgcanvas.getContext('2d') + // 创建 OffscreenCanvas + const offscreenCanvas = new OffscreenCanvas(imgcanvas.width, imgcanvas.height); + const offscreenCtx = offscreenCanvas.getContext('2d'); + + const streamUrl = `ws://${window.location.host}/api/ws/video_feed/${channel_id}`; + + //创建websocket连接,并接收和显示图片 + connect(channel_id,element_id,imgcanvas,ctx,offscreenCtx,offscreenCanvas,streamUrl); //执行websocket连接 -- 异步的应该会直接返回 +} + +function closeVideo(id) { + if(id in video_list) { + const imgcanvas = document.getElementById(`video-${id}`); + const titleElement = document.querySelector(`[data-frame-id="${id}"] .video-title`); + //断socket + run_list[id] = false; + video_list[id].close(); + delete video_list[id]; + //清空控件状态 + imgcanvas.style.display = 'none'; // 停止播放时隐藏元素 + titleElement.textContent = `Video Stream ${id+1}`; + removeErrorMessage(imgcanvas); + berror_state_list[id] = false; + //删记录 + const url = '/api/close_stream'; + const data = {"element_id":id}; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + console.log('Success:', data); + const istatus = data.status; + if(istatus == 0){ + showModal(data.msg); // 使用 Modal 显示消息 + return; + } + }) + .catch((error) => { + showModal(`Error: ${error.message}`); // 使用 Modal 显示错误信息 + return; + }); + } + else{ + showModal('当前视频窗口未播放视频。'); + return; + } +} + +function startFLVStream(element_id,channel_id,channel_name) { + + // 设置视频区域的标题 + const titleElement = document.querySelector(`[data-frame-id="${element_id}"] .video-title`); + titleElement.textContent = channel_name; + //获取视频 + // const imgElement = document.getElementById(`video-${element_id}`); + // imgElement.alt = `Stream ${channel_name}`; + const videoElement = document.getElementById(`video-${element_id}`); + let reconnectAttempts = 0; + const maxReconnectAttempts = 3; + const flvUrl = `ws://${window.location.host}/api/ws/video_feed/${channel_id}`; + + function initFLVPlayer() { + if (flvjs.isSupported()) { + //要避免重复播放 + if(element_id in video_list) { + closeFLVStream(element_id) + }else{ + video_list[element_id] = element_id; + berror_state_list[element_id] = true; + } + + flvPlayer = flvjs.createPlayer({ + type: 'flv', + url: flvUrl, + }); + + flvPlayer.attachMediaElement(videoElement); + flvPlayer.load(); + flvPlayer.play(); + + // 设定超时时间,例如10秒 + timeoutId = setTimeout(() => { + console.error('No video data received. Closing connection.'); + flvPlayer.destroy(); // 停止视频 + // 显示错误信息或提示 + displayErrorMessage(videoElement, "该视频源获取画面超时,请检查后刷新重试,默认两分钟后重连"); + berror_state_list[element_id] = true; + }, 130000); // 130秒 + + // 错误处理 + flvPlayer.on(flvjs.Events.ERROR, (errorType, errorDetail) => { + console.error(`FLV Error: ${errorType} - ${errorDetail}`); + if (reconnectAttempts < maxReconnectAttempts) { + reconnectAttempts++; + console.log("开始重连") + setTimeout(initFLVPlayer, 30000); // 尝试重连 + } else { + displayErrorMessage(videoElement, "重连超时,请检查后重试,可联系技术支持!"); + berror_state_list[element_id] = true; + } + }); + + // 监听播放事件,如果播放成功则清除超时计时器 + flvPlayer.on(flvjs.Events.STATISTICS_INFO, () => { + clearTimeout(timeoutId); + timeoutId = null; + removeErrorMessage(videoElement); + berror_state_list[element_id] = false; + }); + + // 关闭视频流时销毁播放器 + videoElement.addEventListener('closeVideo', () => { + if(flvPlayer){ + flvPlayer.destroy(); + videoElement.removeEventListener('closeVideo', onCloseVideo); + flvPlayer.off(flvjs.Events.ERROR); + flvPlayer.off(flvjs.Events.STATISTICS_INFO); + delete flvPlayer + } + }); + + } else { + console.error('FLV is not supported in this browser.'); + } + } + + initFLVPlayer(); +} + +// 主动关闭视频的函数 +function closeFLVStream(id) { + const titleElement = document.querySelector(`[data-frame-id="${id}"] .video-title`); + if (titleElement.textContent === `Video Stream ${Number(id)+1}`) { + showModal('当前视频窗口未播放视频。'); + return; + }; + + //发送视频链接接口 + const url = '/api/close_stream'; + const data = {"element_id":id}; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + console.log('Success:', data); + const istatus = data.status; + if(istatus == 0){ + showModal(data.msg); // 使用 Modal 显示消息 + return; + } + else{ + const videoFrame = document.getElementById(`video-${element_id}`); + const event = new Event('closeVideo'); + videoFrame.dispatchEvent(event); + + //videoFrame.style.display = 'none'; // 停止播放时隐藏 img 元素 + titleElement.textContent = `Video Stream ${id+1}`; + removeErrorMessage(videoFrame); + berror_state_list[key] = false; + delete video_list[id]; + } + }) + .catch((error) => { + showModal(`Error: ${error.message}`); // 使用 Modal 显示错误信息 + return; + }); + +} + + +function displayErrorMessage(imgElement, message) { + removeErrorMessage(imgElement) + imgElement.style.display = 'none'; // 隐藏图片 + const errorElement = document.createElement('div'); + errorElement.textContent = message; + errorElement.classList.add('error-message'); + imgElement.parentNode.appendChild(errorElement); +} + +function removeErrorMessage(imgElement) { + const errorElement = imgElement.parentNode.querySelector('.error-message'); + if (errorElement) { + imgElement.parentNode.removeChild(errorElement); + imgElement.style.display = 'block'; + } +} + diff --git a/web/main/static/resources/scripts/base.js b/web/main/static/resources/scripts/base.js new file mode 100644 index 0000000..c625c0f --- /dev/null +++ b/web/main/static/resources/scripts/base.js @@ -0,0 +1,93 @@ + + document.addEventListener('DOMContentLoaded', function() { + const links = document.querySelectorAll('.nav-pills .nav-link'); + // Get the current page path + const currentPath = window.location.pathname; + links.forEach(link => { + // Compare the link's href with the current path + if (link.href.endsWith(currentPath)) { + link.classList.add('active'); + } else { + link.classList.remove('active'); + } + }); + }); + +function showModal(message) { + // 设置 Modal 中的消息 + document.getElementById('modalMessage').innerText = message; + + // 显示 Modal + const responseModal = new bootstrap.Modal(document.getElementById('responseModal')); + responseModal.show(); +} + +//动态填充select控件 +function set_select_data(select_ele_id,datas){ + const select_Ele = document.getElementById(select_ele_id); + //清空老数据 + select_Ele.innerHTML = ''; + //添加列表 + datas.forEach(option => { + const optionElement = document.createElement('option'); + optionElement.textContent = option; + select_Ele.appendChild(optionElement); + }); +} + +//设定选项选中状态 +function set_select_selct(select_ele_id,option_str){ + let bfind = false; + const select_Ele = document.getElementById(select_ele_id); + for(let i=0;i< select_Ele.options.length;i++){ + if(select_Ele.options[i].value === option_str){ + select_Ele.options[i].selected = true; + bfind = true; + break; + } + } + return bfind; +} + +//将输入框内容转换为单精度型,若转换失败则返回0 -- 若需要整型,parseInt +function getInputValueAsFloat(id) { + var value = document.getElementById(id).value; + return value ? parseFloat(value) : 0; +} + +//正则匹配IP是否合法 return true,false +function isValidIP(ip) { + const ipRegex = /^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$/; + return ipRegex.test(ip); +} + +//post提交JSON数据 +function postJson(url,data){ + +} + +//post提交From数据 -- 返回数据是JSON +function postFrom(url,data){ + fetch(url, { + method: 'POST', + body: data, + }) + .then(response => response.json()) + .then(data => { + const istatus = data.status; + alert(data.msg); + if(istatus == 1 ){ + fetchModelData(); + $('#updateMM').modal('hide'); + } + }) + .catch(error => { + console.error('Error:', error); + alert('升级失败,请重试。'); + btn.disabled = false; + }); +} + +//get请求数据 +function getDATA(url){ +} diff --git a/web/main/static/resources/scripts/bootstrap.bundle.min.js b/web/main/static/resources/scripts/bootstrap.bundle.min.js new file mode 100644 index 0000000..04e9185 --- /dev/null +++ b/web/main/static/resources/scripts/bootstrap.bundle.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function j(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function M(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${M(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${M(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=j(t.dataset[n])}return e},getDataAttribute:(t,e)=>j(t.getAttribute(`data-bs-${M(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>n(t))).join(","):null},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",jt="collapsing",Mt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(jt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(jt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(Mt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function je(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const Me={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:je(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:je(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},j=p?3:1;j>0&&"break"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,jn=`hide${xn}`,Mn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,jn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,Mn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,Mn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
    "},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",js="Home",Ms="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([js,Ms].includes(t.key))i=e[t.key===js?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/web/main/static/resources/scripts/channel_manager.js b/web/main/static/resources/scripts/channel_manager.js new file mode 100644 index 0000000..4fdc00f --- /dev/null +++ b/web/main/static/resources/scripts/channel_manager.js @@ -0,0 +1,735 @@ +const apiEndpoint = '/api/channel/list'; +const rowsPerPage = 10; +//算法配置窗口部分控件 +const searchEndpoint = '/api/channel/select'; +const canvas = document.getElementById('myCanvas'); +const ctx = canvas.getContext('2d'); +const backgroundCanvas = document.getElementById('backgroundCanvas'); +const backgroundCtx = backgroundCanvas.getContext('2d'); +const img = new Image(); +const tbody = document.getElementById('schedule-body');//布防计划 + +let currentPage = 1; +let channelData = []; +let channelData_bak = []; +let areaData = ["请选择"]; +let currentEditingRow = null; +let cid_schedule = "-1"; +let m_polygon = ""; +let check_area = 0; +let draw_status = false; //是否是绘制状态,处于绘制状态才能开始绘制 +let b_img = false; //有没有加载图片成功,如果没有初始化的时候就不绘制线条了。 +let points = []; //检测区域的点坐标数组 +//布防计划 + + +document.addEventListener('DOMContentLoaded', function () { + fetchChannelData(); //初始化通道管理页面元素数据 + + document.getElementById('searchButton').addEventListener('click', function () { + performSearch(); + }); + //新增通道模块--保存按钮 + document.getElementById('saveButton').addEventListener('click', function () { + addChannel(1); + }); + //修改通道模块--保存按钮 + document.getElementById('saveButton_cc').addEventListener('click', function () { + addChannel(2); + }); + //算法配置模块--取消按钮 + document.getElementById('cancelButton_mx').addEventListener('click', function () { + close_mx_model(); + }); + //保存算法配置--保存按钮 + document.getElementById('saveButton_mx').addEventListener('click', function () { + save_mx_model(); + }); + //开始绘制区域按钮 + document.getElementById('but_hzqy').addEventListener('click', function () { + startDraw(); + }); +}); + +//添加和修改通道 1--新增,2--修改 +function addChannel(itype) { + let area; + let cName; + let Rtsp; + let cid; + const spinnerOverlay = document.getElementById("spinnerOverlay"); + let saveButton = null; + let CNameInput = null; + let RTSPInput = null; + + if(itype ==1){ + saveButton = document.getElementById('saveButton'); + CNameInput = document.getElementById('CNameInput'); + RTSPInput = document.getElementById('RTSPInput'); + area = document.getElementById('areaSelect_M').value; + cid = -1 + } + else if(itype ==2){ + saveButton = document.getElementById('saveButton_cc'); + CNameInput = document.getElementById('CNameInput_cc'); + RTSPInput = document.getElementById('RTSPInput_cc'); + area = document.getElementById('areaSelect_CC').value; + cid = currentEditingRow.cells[0].innerText; + } + console.log("点击了保存按钮"); + cName = CNameInput.value.trim(); + Rtsp = RTSPInput.value.trim(); + if(area === "请选择"){ + alert('请选择所属区域'); + } + else{ + if (cName && Rtsp) { + saveButton.disabled = true; + //发送视频链接接口 + const url = '/api/channel/add'; + const data = {"area":area,"cName":cName,"Rtsp":Rtsp,"cid":cid}; + // 显示 Spinners + spinnerOverlay.style.display = "flex"; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + const istatus = data.status; + saveButton.disabled = false; + alert(data.msg); // 使用 Modal 显示消息 + if(istatus == 1){ + //刷新列表 + fetchChannelData(); + if(itype ==1){ + //添加通道成功 + $('#channelModal').modal('hide'); + } + else if(itype==2){ + //修改通道成功 + currentEditingRow = null; + $('#ChangeC').modal('hide'); + } + } + }) + .catch((error) => { + alert(`Error: ${error.message}`); // 使用 Modal 显示错误信息 + // 启用保存按钮 + saveButton.disabled = false; + return; + }) + .finally(()=>{ + // 隐藏 Spinners + spinnerOverlay.style.display = "none"; + }); + } else { + alert('通道名称和RTSP地址不能为空'); + } + } +} + +//初始化通道管理页面元素数据 +async function fetchChannelData() { //获取通道相关信息(/api/channel/list),刷新通道表格控件数据 + try { + const response = await fetch(apiEndpoint); + channelData = await response.json(); + channelData_bak = channelData; + + url = "/api/channel/area/list" + area_response = await fetch(url); + areaDatas = await area_response.json(); + areaData = ["请选择"]; //清空下 + areaDatas.forEach((area) => { + areaData.push(area.area_name) + }); + + renderTable(); //刷新表格 + renderPagination(); //刷新分页元素 + renderAreaOptions(); //所属区域下来框 + } catch (error) { + console.error('Error fetching channel data:', error); + } +} + +//刷新表单页面数据 +function renderTable() { + const tableBody = document.getElementById('table-body'); + tableBody.innerHTML = ''; + + const start = (currentPage - 1) * rowsPerPage; + const end = start + rowsPerPage; + const pageData = channelData.slice(start, end); + const surplus_count = rowsPerPage - pageData.length; + + pageData.forEach((channel) => { +// if(area_name!==channel.area_name){ //这里要求区域名称一样的要在一起 +// area_name = channel.area_name; +// areaData.push(area_name); +// } + const row = document.createElement('tr'); + row.innerHTML = ` + ${channel.ID} + ${channel.area_name} + ${channel.channel_name} + ${channel.ulr} + ${channel.model_name} + + + + + + `; + tableBody.appendChild(row); + row.querySelector('.modify-btn').addEventListener('click', () => modifyChannel(row)); + row.querySelector('.algorithm-btn').addEventListener('click', () => configureAlgorithm(row)); + row.querySelector('.delete-btn').addEventListener('click', () => deleteChannel(row)); + }); +} + +//关键字查询数据 +async function performSearch() { + try { + const area = document.getElementById('areaSelect').value; + const channelName = document.getElementById('channelNameInput').value; + if(area === "请选择" && channelName===""){ + channelData = channelData_bak; + } + else if(area === "请选择"){ + channelData = []; + channelData_bak.forEach((channel) => { + if(channelName === channel.channel_name){ + channelData.push(channel); + } + }); + } + else if(channelName === ""){ + channelData = []; + channelData_bak.forEach((channel) => { + if(area === channel.area_name){ + channelData.push(channel); + } + }); + } + else{ + channelData = []; + channelData_bak.forEach((channel) => { + if(area === channel.area_name && channelName === channel.channel_name){ + channelData.push(channel); + } + }); + } + // 渲染表格和分页控件 + currentPage = 1; // 重置当前页为第一页 + renderTable(); + renderPagination(); + } catch (error) { + console.error('Error performing search:', error); + } +} + +//点击修改按钮,显示修改通道信息模块 --只是显示 +function modifyChannel(row) { +// const cid = row.cells[0].innerText; + const areaName = row.cells[1].innerText; + const channelName = row.cells[2].innerText; + const url = row.cells[3].innerText; + + const area = document.getElementById('areaSelect_CC'); + const CName = document.getElementById('CNameInput_cc'); + const RTSP = document.getElementById('RTSPInput_cc'); + + for(let i=0;i< area.options.length;i++){ + if(area.options[i].value === areaName){ + area.options[i].selected = true; + break; + } + } + CName.value = channelName; + RTSP.value = url; + + currentEditingRow = row; + $('#ChangeC').modal('show'); +} + +//点击算法按钮,显示算法配置模块 --只是显示 +function configureAlgorithm(row) { + //获取当前行信息 + currentEditingRow = row; + const cid = row.cells[0].innerText; + //清除数据,若需要的话 + ctx.clearRect(0, 0, canvas.width, canvas.height); //清除左侧绘画和画线信息 + tbody.innerHTML = ''; //清空布防控件数据 + points = []; //清空绘制检测区域 + draw_status = false; + b_img = false; + document.getElementById('but_hzqy').textContent = "绘制区域"; + //开始初始化算法管理模块 + show_channel_model_schedule(cid); //获取并显示结构化数据 + show_channel_img(cid); //获取并显示一帧图片 -- 获取不到图片就是黑画面 --并要绘制检测区域 + + //显示窗口 + $('#MX_M').modal('show'); +} + +//获取一帧图片 +function show_channel_img(cid){ + const data = {"cid":cid}; + fetch('/api/channel/img', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }) + .then(response => response.json()) + .then(data => { + if (data.image) { + b_img = true; + img.src = 'data:image/jpeg;base64,' + data.image; + } else { + console.error('Error:', data.error); + } + }) + .catch(error => console.error('Error:', error)); +} + +//图片加载事项 +img.onload = () => { //清除、画图和画线应该分开 + // 设置画布宽高 + backgroundCanvas.width = canvas.width = img.width; + backgroundCanvas.height = canvas.height = img.height; + // 将图片绘制到背景画布上 + backgroundCtx.drawImage(img, 0, 0, img.width, img.height); + drawLines(); + // 将背景画布的内容复制到前台画布上 + //ctx.drawImage(backgroundCanvas, 0, 0, canvas.width, canvas.height); //绘制画面 +}; + +//开始和重新绘制 +function startDraw(){ + if(!document.getElementById('zdjc').checked){ + alert("请先选择指定区域!"); + return; + } + let but = document.getElementById('but_hzqy'); + if(!draw_status){//开始绘制 + if(points.length >0){ + if (confirm('开始绘制将清除未提交保存的绘制数据,是否继续?')) { + draw_status = true; + points = []; + //按钮文字调整为结束绘制 + but.textContent = '结 束 绘 制'; + // 清除前台画布 + ctx.clearRect(0, 0, canvas.width, canvas.height); + // 将背景画布的内容复制到前台画布上 + ctx.drawImage(backgroundCanvas, 0, 0, canvas.width, canvas.height); + } + } + else{ + draw_status = true; + but.textContent = '结束绘制'; + } + } + else{//结束绘制 + draw_status = false; + but.textContent = '绘制区域'; + } +} + +//单选按钮点击事件处理 +function handleRadioClick(event) { + const selectedRadio = event.target; + console.log('Selected Radio:', selectedRadio.id); + // 根据选中的单选按钮执行相应操作 + if (selectedRadio.id === 'qjjc') { + if(draw_status){ + alert("请先结束绘制后,再切换检测方案!"); + document.getElementById('zdjc').checked = true; + } + else{ + // 处理全画面生效的逻辑 + if(points.length>0){ + if (!confirm('切换到全画面生效,将清除已绘制的区域信息,是否切换?')) { + document.getElementById('zdjc').checked = true; + }else{ + points = []; + } + } + } + //console.log('全画面生效'); + } else if (selectedRadio.id === 'zdjc') { + // 处理指定区域的逻辑 + console.log('指定区域'); + } +} + +// 鼠标点击事件处理--动态绘图 +canvas.addEventListener('click', (event) => { + if(draw_status){ + const rect = canvas.getBoundingClientRect(); + const scaleX = canvas.width / rect.width; + const scaleY = canvas.height / rect.height; + + // 获取鼠标相对于canvas的位置 + const x = (event.clientX - rect.left) * scaleX; + const y = (event.clientY - rect.top) * scaleY; + points.push({ x, y }); + console.log(points); + //绘制线条 + drawLines(); + } +}); + +// 绘制区域,各点连接 +function drawLines() { + if(b_img){ + // 清除前台画布 + ctx.clearRect(0, 0, canvas.width, canvas.height); + // 将背景画布的内容复制到前台画布上 + ctx.drawImage(backgroundCanvas, 0, 0, canvas.width, canvas.height); + + // 绘制点和线 + ctx.strokeStyle = 'red'; + ctx.lineWidth = 2; + + if (points.length > 0) { + ctx.beginPath(); + ctx.moveTo(points[0].x, points[0].y); + + for (let i = 1; i < points.length; i++) { + ctx.lineTo(points[i].x, points[i].y); + } + + // 连接最后一个点到起点 + ctx.lineTo(points[0].x, points[0].y); + ctx.stroke(); + } + + points.forEach(point => { + ctx.beginPath(); + ctx.arc(point.x, point.y, 5, 0, Math.PI * 2); + ctx.fillStyle = 'red'; + ctx.fill(); + }); + } +} + +//获取并显示该通道相关算法的结构化数据 --- 这里用GET会更加贴切一些 +function show_channel_model_schedule(cid){ + //发送视频链接接口 + const url = '/api/channel/C2M'; + const data = {"cid":cid}; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + const m_datas = data.m_datas; //算法清单 + const c2m_data = data.c2m_data; //该通道管理算法的相关数据,会有空的情况 + const schedule = data.schedule; //布防计划 + //console.log("m_datas--",m_datas); + //console.log("c2m_data--",c2m_data); + //console.log("schedule--",schedule); + //配置算法下拉清单 + select_datas = ["请选择"]; + m_datas.forEach(option => { + select_datas.push(option.model_name); + }); + set_select_data("model_select",select_datas); + select_str = currentEditingRow.cells[4].innerText; + //检测区域 + if(c2m_data.length >0){ + model_id = c2m_data[0].model_id; + model_name = currentEditingRow.cells[4].innerText; + set_select_selct("model_select",model_name); + check_area = c2m_data[0].check_area + if( check_area == 0){ //全画面生效 + document.getElementById('qjjc').checked = true; + m_polygon = ""; + } + else{//指定区域 + document.getElementById('zdjc').checked = true; + m_polygon = c2m_data[0].polygon; + console.log("m_polygon--",m_polygon); + if(m_polygon !== ""){ //指定区域了,一般是会有数据的。 + const coords = parseCoordStr(m_polygon); + points = coords; + } + } + //阈值 + document.getElementById('zxyz').value = c2m_data[0].conf_thres + document.getElementById('iouyz').value = c2m_data[0].iou_thres + } + + //布防计划 + const days = ['一', '二', '三', '四', '五', '六','日']; + const num_days=['0','1','2','3','4','5','6'] + days.forEach((day, dayIndex) => { + const row = document.createElement('tr'); + const dayCell = document.createElement('th'); + dayCell.textContent = day; + row.appendChild(dayCell); + num_day = num_days[dayIndex] + for (let hour = 0; hour < 24; hour++) { + const cell = document.createElement('td'); + if(schedule.length >0){ + const status = schedule.find(item => item.day === num_day && item.hour === hour); + if (status && status.status === 1) { + cell.classList.add('blocked'); + } else { + cell.classList.add('allowed'); + } + } + else{ + cell.classList.add('blocked'); + } + row.appendChild(cell); + + cell.addEventListener('click', () => { + if (cell.classList.contains('blocked')) { + cell.classList.remove('blocked'); + cell.classList.add('allowed'); + // Update status in the database + //updateStatus(day, hour, 0); + } else { + cell.classList.remove('allowed'); + cell.classList.add('blocked'); + // Update status in the database + //updateStatus(day, hour, 1); + } + }); + } + tbody.appendChild(row); + }); + }) + .catch((error) => { + alert(`Error: ${error.message}`); // 使用 Modal 显示错误信息 + return; + }); +} + +// 将字符串转换为数组 +function parseCoordStr(str) { + return str.match(/\(([^)]+)\)/g).map(pair => { + const [x, y] = pair.replace(/[()]/g, '').split(',').map(Number); + return { x, y }; + }); +} + +//关闭算法配置窗口 +function close_mx_model(){ + if (confirm('确定退出窗口吗?未保存的修改将丢失!')) { + $('#MX_M').modal('hide'); + } +} + +//保存算法配置窗口数据 +function save_mx_model(){ + let model_name; //算法名称 + let check_area; //检测区域标识 0-全局,1-指定范围 + let polygon_str; //具体的检测区域 + let conf_thres; //置信阈值 + let iou_thres; //iou阈值 + let schedule; //布防计划 + const saveButton = document.getElementById('saveButton_mx'); + saveButton.disabled = true; //不可点击状态 + //配置算法 + model_name = document.getElementById("model_select").value; + //检测区域 + if(document.getElementById('zdjc').checked){ + check_area = 1; + console.log("points--",points); + if (points.length > 0){ + const formattedArray = points.map(point => `(${point.x},${point.y})`); + polygon_str = `[${formattedArray.join(',')}]`; + }else{ + polygon_str = ""; + } + + }else{ + check_area = 0; + polygon_str = ""; + } + //置信阈值和IOU阈值 + conf_thres = getInputValueAsFloat('zxyz'); + iou_thres = getInputValueAsFloat('iouyz'); + //验证数据 + if(model_name !== "请选择"){ + console.log(model_name); + if(conf_thres <= 0 || conf_thres>=1 || iou_thres <= 0 || iou_thres>=1){ + alert("阈值的有效范围是大于0,小于1;请输入正确的阈值(默认可0.5)。"); + saveButton.disabled = false; //不可点击状态 + return; + } + } + //布防计划 + // 定义一个对象来存储数据 + const scheduleData = { + '0': Array(24).fill(0), + '1': Array(24).fill(0), + '2': Array(24).fill(0), + '3': Array(24).fill(0), + '4': Array(24).fill(0), + '5': Array(24).fill(0), + '6': Array(24).fill(0) + }; + // 遍历 tbody 的每一行 + [...tbody.children].forEach((row, dayIndex) => { + // 获取当前行的所有单元格 + const cells = row.getElementsByTagName('td'); + + // 遍历每一个单元格 + for (let hour = 0; hour < cells.length; hour++) { + // 检查单元格的 class 是否包含 'blocked' + if (cells[hour].classList.contains('blocked')) { + // 将对应的 scheduleData 位置设置为 1 + scheduleData[dayIndex][hour] = 1; + } else { + // 将对应的 scheduleData 位置设置为 0 + scheduleData[dayIndex][hour] = 0; + } + } + }); + // 将 scheduleData 对象转换为 JSON 字符串 + const scheduleData_json = JSON.stringify(scheduleData); + //提交到服务器 +// console.log("model_name--",model_name); +// console.log("check_area--",check_area); +// console.log("polygon_str--",polygon_str); +// console.log("iou_thres--",iou_thres); +// console.log("conf_thres--",conf_thres); +// console.log("schedule-- ",scheduleData_json); + cid = currentEditingRow.cells[0].innerText; + const url = '/api/channel/chanegeC2M'; + const data = {"model_name":model_name,"check_area":check_area,"polygon_str":polygon_str,"iou_thres":iou_thres, + "conf_thres":conf_thres,"schedule":scheduleData_json,"cid":cid}; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + const istatus = data.status; + if(istatus === 0){ + alert(data.msg); // 使用 Modal 显示消息 + // 启用保存按钮 + saveButton.disabled = false; + return; + } + else{ + // 启用保存按钮 + saveButton.disabled = false; + //刷新列表 + fetchChannelData(); + //$('#MX_M').modal('hide'); + alert("修改成功!"); + } + }) + .catch((error) => { + alert(`Error: ${error.message}`); + // 启用保存按钮 + saveButton.disabled = false; + return; + }); + +} + +//删除通道 +function deleteChannel(row) { + if (confirm('确定删除此通道吗?')) { + cid = row.cells[0].innerText; + //发送视频链接接口 + const url = '/api/channel/del'; + const data = {"cid":cid}; + // 发送 POST 请求 + fetch(url, { + method: 'POST', // 指定请求方法为 POST + headers: { + 'Content-Type': 'application/json' // 设置请求头,告诉服务器请求体的数据类型为 JSON + }, + body: JSON.stringify(data) // 将 JavaScript 对象转换为 JSON 字符串 + }) + .then(response => response.json()) // 将响应解析为 JSON + .then(data => { + const istatus = data.status; + if(istatus === 0){ + alert(data.msg); // 使用 Modal 显示消息 + return; + } + else{ + //刷新列表 + row.remove(); + alert("删除通道成功!"); + } + }) + .catch((error) => { + alert(`Error: ${error.message}`); // 使用 Modal 显示错误信息 + return; + }); + + } +} + +//刷新分页标签 +function renderPagination() { + const pagination = document.getElementById('pagination'); + pagination.innerHTML = ''; + + const totalPages = Math.ceil(channelData.length / rowsPerPage); + for (let i = 1; i <= totalPages; i++) { + const pageItem = document.createElement('li'); + pageItem.className = 'page-item' + (i === currentPage ? ' active' : ''); + pageItem.innerHTML = `
    ${i}`; + pageItem.addEventListener('click', (event) => { + event.preventDefault(); + currentPage = i; + renderTable(); + renderPagination(); + }); + pagination.appendChild(pageItem); + } +} + +//刷新区域下拉控件 +function renderAreaOptions() { + const areaSelect = document.getElementById('areaSelect'); + const areaSelect_M = document.getElementById('areaSelect_M') + const areaSelect_CC = document.getElementById('areaSelect_CC') + //先清空 + areaSelect.innerHTML = ''; + areaSelect_M.innerHTML = ''; + areaSelect_CC.innerHTML = ''; + //再添加 + areaData.forEach(option => { + const optionElement = document.createElement('option'); + optionElement.textContent = option; + areaSelect.appendChild(optionElement); + + const optionElement_m = document.createElement('option'); + optionElement_m.textContent = option; + areaSelect_M.appendChild(optionElement_m); + + const optionElement_cc = document.createElement('option'); + optionElement_cc.textContent = option; + areaSelect_CC.appendChild(optionElement_cc); + }); +} + + + + + diff --git a/web/main/static/resources/scripts/client.js b/web/main/static/resources/scripts/client.js new file mode 100644 index 0000000..b4ae1e1 --- /dev/null +++ b/web/main/static/resources/scripts/client.js @@ -0,0 +1,104 @@ +var pc = null; + +function negotiate() { + pc.addTransceiver('video', { direction: 'recvonly' }); + return pc.createOffer().then((offer) => { + return pc.setLocalDescription(offer); + }).then(() => { + // wait for ICE gathering to complete + return new Promise((resolve) => { + if (pc.iceGatheringState === 'complete') { + resolve(); + } else { + const checkState = () => { + if (pc.iceGatheringState === 'complete') { + pc.removeEventListener('icegatheringstatechange', checkState); + resolve(); + } + }; + pc.addEventListener('icegatheringstatechange', checkState); + } + }); + }).then(() => { + var offer = pc.localDescription; + return fetch('/offer', { + body: JSON.stringify({ + sdp: offer.sdp, + type: offer.type, + }), + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST' + }); + }).then((response) => { + return response.json(); + }).then((answer) => { + return pc.setRemoteDescription(answer); + }).catch((e) => { + alert(e); + }); +} + +function start() { + console.log('开始执行!'); + var config = { + sdpSemantics: 'unified-plan' + }; + //config.iceServers = [{ urls: ['stun:stun.voiparound.com'] }]; + pc = new RTCPeerConnection(); + pc.addEventListener('track', (evt) => { + if (evt.track.kind == 'video') { + const video = document.getElementById('video'); + video.srcObject = evt.streams[0]; + //video.play() +// video.muted = true; // 静音 +// video.play().then(() => { +// // 如果成功播放,可以选择恢复音量 +// video.muted = false; +// }).catch((error) => { +// console.error('Error playing video:', error); +// }); + } + }); + document.getElementById('start').style.display = 'none'; + negotiate(); + document.getElementById('stop').style.display = 'inline-block'; +} + +function stop() { + document.getElementById('stop').style.display = 'none'; + // close peer connection + setTimeout(() => { + pc.close(); + }, 500); + document.getElementById('start').style.display = 'inline-block'; +} + +function showView(){ + console.log('status:',document.getElementById('video').paused) + if (document.getElementById('video').paused) { + document.getElementById('video').play().catch(error => { + console.error('Error playing video:', error); + }); + } +} + +// // 监听页面焦点变化 +window.addEventListener('focus', () => { +if (document.getElementById('video').paused) { + document.getElementById('video').play().catch(error => { + console.error('Error playing video:', error); + }); +} +}); + +//document.addEventListener('visibilitychange', () => { +//if (document.visibilityState === 'visible') { +// if (document.getElementById('video').paused) { +// document.getElementById('video').play().catch(error => { +// console.error('Error playing video:', error); +// }); +// } +//} +//}); diff --git a/web/main/static/resources/scripts/flv.min.js b/web/main/static/resources/scripts/flv.min.js new file mode 100644 index 0000000..c5010fb --- /dev/null +++ b/web/main/static/resources/scripts/flv.min.js @@ -0,0 +1,10 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.flvjs=t():e.flvjs=t()}(self,(function(){return function(){var e={264:function(e,t,i){ +/*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE + * @version v4.2.8+1e68dce6 + */ +e.exports=function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function t(e){return"function"==typeof e}var n=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,s=void 0,o=void 0,a=function(e,t){b[r]=e,b[r+1]=t,2===(r+=2)&&(o?o(E):A())};function h(e){o=e}function u(e){a=e}var l="undefined"!=typeof window?window:void 0,d=l||{},c=d.MutationObserver||d.WebKitMutationObserver,f="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),_="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function p(){return function(){return process.nextTick(E)}}function m(){return void 0!==s?function(){s(E)}:y()}function g(){var e=0,t=new c(E),i=document.createTextNode("");return t.observe(i,{characterData:!0}),function(){i.data=e=++e%2}}function v(){var e=new MessageChannel;return e.port1.onmessage=E,function(){return e.port2.postMessage(0)}}function y(){var e=setTimeout;return function(){return e(E,1)}}var b=new Array(1e3);function E(){for(var e=0;e0&&o.length>r&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,u=l,console&&console.warn&&console.warn(u)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},r=l.bind(n);return r.listener=i,n.wrapFn=r,r}function c(e,t,i){var n=e._events;if(void 0===n)return[];var r=n[t];return void 0===r?[]:"function"==typeof r?i?[r.listener||r]:[r]:i?function(e){for(var t=new Array(e.length),i=0;i0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var h=s[e];if(void 0===h)return!1;if("function"==typeof h)n(h,this,t);else{var u=h.length,l=_(h,u);for(i=0;i=0;s--)if(i[s]===t||i[s].listener===t){o=i[s].listener,r=s;break}if(r<0)return this;0===r?i.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return c(this,e,!0)},s.prototype.rawListeners=function(e){return c(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},397:function(e,t,i){function n(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.i=function(e){return e},i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var n=i(i.s=ENTRY_MODULE);return n.default||n}var r="[\\.|\\-|\\+|\\w|/|@]+",s="\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)";function o(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(e,t,n){var a={};a[n]=[];var h=t.toString(),u=h.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!u)return a;for(var l,d=u[1],c=new RegExp("(\\\\n|\\W)"+o(d)+s,"g");l=c.exec(h);)"dll-reference"!==l[3]&&a[n].push(l[3]);for(c=new RegExp("\\("+o(d)+'\\("(dll-reference\\s('+r+'))"\\)\\)'+s,"g");l=c.exec(h);)e[l[2]]||(a[n].push(l[1]),e[l[2]]=i(l[1]).m),a[l[2]]=a[l[2]]||[],a[l[2]].push(l[4]);for(var f,_=Object.keys(a),p=0;p<_.length;p++)for(var m=0;m0}),!1)}e.exports=function(e,t){t=t||{};var r={main:i.m},s=t.all?{main:Object.keys(r.main)}:function(e,t){for(var i={main:[t]},n={main:[]},r={main:{}};h(i);)for(var s=Object.keys(i),o=0;o=e[r]&&t0&&e[0].originalDts=t[r].dts&&et[n].lastSample.originalDts&&e=t[n].lastSample.originalDts&&(n===t.length-1||n0&&(r=this._searchNearestSegmentBefore(i.originalBeginDts)+1),this._lastAppendLocation=r,this._list.splice(r,0,i)},e.prototype.getLastSegmentBefore=function(e){var t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null},e.prototype.getLastSampleBefore=function(e){var t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null},e.prototype.getLastSyncPointBefore=function(e){for(var t=this._searchNearestSegmentBefore(e),i=this._list[t].syncPoints;0===i.length&&t>0;)t--,i=this._list[t].syncPoints;return i.length>0?i[i.length-1]:null},e}()},949:function(e,t,i){"use strict";i.d(t,{Z:function(){return R}});var n=i(716),r=i.n(n),s=i(300),o=i(538),a=i(118);function h(e,t,i){var n=e;if(t+i=128){t.push(String.fromCharCode(65535&s)),n+=2;continue}}else if(i[n]<240){if(h(i,n,2))if((s=(15&i[n])<<12|(63&i[n+1])<<6|63&i[n+2])>=2048&&55296!=(63488&s)){t.push(String.fromCharCode(65535&s)),n+=3;continue}}else if(i[n]<248){var s;if(h(i,n,3))if((s=(7&i[n])<<18|(63&i[n+1])<<12|(63&i[n+2])<<6|63&i[n+3])>65536&&s<1114112){s-=65536,t.push(String.fromCharCode(s>>>10|55296)),t.push(String.fromCharCode(1023&s|56320)),n+=4;continue}}t.push(String.fromCharCode(65533)),++n}return t.join("")},d=i(29),c=(u=new ArrayBuffer(2),new DataView(u).setInt16(0,256,!0),256===new Int16Array(u)[0]),f=function(){function e(){}return e.parseScriptData=function(t,i,n){var r={};try{var o=e.parseValue(t,i,n),a=e.parseValue(t,i+o.size,n-o.size);r[o.data]=a.data}catch(e){s.Z.e("AMF",e.toString())}return r},e.parseObject=function(t,i,n){if(n<3)throw new d.rT("Data not enough when parse ScriptDataObject");var r=e.parseString(t,i,n),s=e.parseValue(t,i+r.size,n-r.size),o=s.objectEnd;return{data:{name:r.data,value:s.data},size:r.size+s.size,objectEnd:o}},e.parseVariable=function(t,i,n){return e.parseObject(t,i,n)},e.parseString=function(e,t,i){if(i<2)throw new d.rT("Data not enough when parse String");var n=new DataView(e,t,i).getUint16(0,!c);return{data:n>0?l(new Uint8Array(e,t+2,n)):"",size:2+n}},e.parseLongString=function(e,t,i){if(i<4)throw new d.rT("Data not enough when parse LongString");var n=new DataView(e,t,i).getUint32(0,!c);return{data:n>0?l(new Uint8Array(e,t+4,n)):"",size:4+n}},e.parseDate=function(e,t,i){if(i<10)throw new d.rT("Data size invalid when parse Date");var n=new DataView(e,t,i),r=n.getFloat64(0,!c),s=n.getInt16(8,!c);return{data:new Date(r+=60*s*1e3),size:10}},e.parseValue=function(t,i,n){if(n<1)throw new d.rT("Data not enough when parse Value");var r,o=new DataView(t,i,n),a=1,h=o.getUint8(0),u=!1;try{switch(h){case 0:r=o.getFloat64(1,!c),a+=8;break;case 1:r=!!o.getUint8(1),a+=1;break;case 2:var l=e.parseString(t,i+1,n-1);r=l.data,a+=l.size;break;case 3:r={};var f=0;for(9==(16777215&o.getUint32(n-4,!c))&&(f=3);a32)throw new d.OC("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){var t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}var i=this._current_word_bits_left?this._current_word:0;i>>>=32-this._current_word_bits_left;var n=e-this._current_word_bits_left;this._fillCurrentWord();var r=Math.min(n,this._current_word_bits_left),s=this._current_word>>>32-r;return this._current_word<<=r,this._current_word_bits_left-=r,i=i<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()},e.prototype.readUEG=function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1},e.prototype.readSEG=function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)},e}(),p=function(){function e(){}return e._ebsp2rbsp=function(e){for(var t=e,i=t.byteLength,n=new Uint8Array(i),r=0,s=0;s=2&&3===t[s]&&0===t[s-1]&&0===t[s-2]||(n[r]=t[s],r++);return new Uint8Array(n.buffer,0,r)},e.parseSPS=function(t){var i=e._ebsp2rbsp(t),n=new _(i);n.readByte();var r=n.readByte();n.readByte();var s=n.readByte();n.readUEG();var o=e.getProfileString(r),a=e.getLevelString(s),h=1,u=420,l=8;if((100===r||110===r||122===r||244===r||44===r||83===r||86===r||118===r||128===r||138===r||144===r)&&(3===(h=n.readUEG())&&n.readBits(1),h<=3&&(u=[0,420,422,444][h]),l=n.readUEG()+8,n.readUEG(),n.readBits(1),n.readBool()))for(var d=3!==h?8:12,c=0;c0&&k<16?(L=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][k-1],R=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][k-1]):255===k&&(L=n.readByte()<<8|n.readByte(),R=n.readByte()<<8|n.readByte())}if(n.readBool()&&n.readBool(),n.readBool()&&(n.readBits(4),n.readBool()&&n.readBits(24)),n.readBool()&&(n.readUEG(),n.readUEG()),n.readBool()){var D=n.readBits(32),I=n.readBits(32);O=n.readBool(),w=(T=I)/(C=2*D)}}var M=1;1===L&&1===R||(M=L/R);var B=0,x=0;0===h?(B=1,x=2-y):(B=3===h?1:2,x=(1===h?2:1)*(2-y));var P=16*(g+1),U=16*(v+1)*(2-y);P-=(b+E)*B,U-=(S+A)*x;var N=Math.ceil(P*M);return n.destroy(),n=null,{profile_string:o,level_string:a,bit_depth:l,ref_frames:m,chroma_format:u,chroma_format_string:e.getChromaFormatString(u),frame_rate:{fixed:O,fps:w,fps_den:C,fps_num:T},sar_ratio:{width:L,height:R},codec_size:{width:P,height:U},present_size:{width:N,height:U}}},e._skipScalingList=function(e,t){for(var i=8,n=8,r=0;r>>2!=0,o=0!=(1&t[4]),a=(n=t)[r=5]<<24|n[r+1]<<16|n[r+2]<<8|n[r+3];return a<9?i:{match:!0,consumed:a,dataOffset:a,hasAudioTrack:s,hasVideoTrack:o}},e.prototype.bindDataSource=function(e){return e.onDataArrival=this.parseChunks.bind(this),this},Object.defineProperty(e.prototype,"onTrackMetadata",{get:function(){return this._onTrackMetadata},set:function(e){this._onTrackMetadata=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaInfo",{get:function(){return this._onMediaInfo},set:function(e){this._onMediaInfo=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMetaDataArrived",{get:function(){return this._onMetaDataArrived},set:function(e){this._onMetaDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onScriptDataArrived",{get:function(){return this._onScriptDataArrived},set:function(e){this._onScriptDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataAvailable",{get:function(){return this._onDataAvailable},set:function(e){this._onDataAvailable=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"timestampBase",{get:function(){return this._timestampBase},set:function(e){this._timestampBase=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedDuration",{get:function(){return this._duration},set:function(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasAudio",{set:function(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasVideo",{set:function(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e},enumerable:!1,configurable:!0}),e.prototype.resetMediaInfo=function(){this._mediaInfo=new a.Z},e.prototype._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},e.prototype.parseChunks=function(t,i){if(!(this._onError&&this._onMediaInfo&&this._onTrackMetadata&&this._onDataAvailable))throw new d.rT("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var n=0,r=this._littleEndian;if(0===i){if(!(t.byteLength>13))return 0;n=e.probe(t).dataOffset}this._firstParse&&(this._firstParse=!1,i+n!==this._dataOffset&&s.Z.w(this.TAG,"First time parsing but chunk byteStart invalid!"),0!==(o=new DataView(t,n)).getUint32(0,!r)&&s.Z.w(this.TAG,"PrevTagSize0 !== 0 !!!"),n+=4);for(;nt.byteLength)break;var a=o.getUint8(0),h=16777215&o.getUint32(0,!r);if(n+11+h+4>t.byteLength)break;if(8===a||9===a||18===a){var u=o.getUint8(4),l=o.getUint8(5),c=o.getUint8(6)|l<<8|u<<16|o.getUint8(7)<<24;0!==(16777215&o.getUint32(7,!r))&&s.Z.w(this.TAG,"Meet tag which has StreamID != 0!");var f=n+11;switch(a){case 8:this._parseAudioData(t,f,h,c);break;case 9:this._parseVideoData(t,f,h,c,i+n);break;case 18:this._parseScriptData(t,f,h)}var _=o.getUint32(11+h,!r);_!==11+h&&s.Z.w(this.TAG,"Invalid PrevTagSize "+_),n+=11+h+4}else s.Z.w(this.TAG,"Unsupported tag type "+a+", skipped"),n+=11+h+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),n},e.prototype._parseScriptData=function(e,t,i){var n=f.parseScriptData(e,t,i);if(n.hasOwnProperty("onMetaData")){if(null==n.onMetaData||"object"!=typeof n.onMetaData)return void s.Z.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&s.Z.w(this.TAG,"Found another onMetaData tag!"),this._metadata=n;var r=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},r)),"boolean"==typeof r.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=r.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"==typeof r.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=r.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"==typeof r.audiodatarate&&(this._mediaInfo.audioDataRate=r.audiodatarate),"number"==typeof r.videodatarate&&(this._mediaInfo.videoDataRate=r.videodatarate),"number"==typeof r.width&&(this._mediaInfo.width=r.width),"number"==typeof r.height&&(this._mediaInfo.height=r.height),"number"==typeof r.duration){if(!this._durationOverrided){var o=Math.floor(r.duration*this._timescale);this._duration=o,this._mediaInfo.duration=o}}else this._mediaInfo.duration=0;if("number"==typeof r.framerate){var a=Math.floor(1e3*r.framerate);if(a>0){var h=a/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=h,this._referenceFrameRate.fps_num=a,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=h}}if("object"==typeof r.keyframes){this._mediaInfo.hasKeyframesIndex=!0;var u=r.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(u),r.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=r,s.Z.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(n).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},n))},e.prototype._parseKeyframesIndex=function(e){for(var t=[],i=[],n=1;n>>4;if(2===o||10===o){var a=0,h=(12&r)>>>2;if(h>=0&&h<=4){a=this._flvSoundRateTable[h];var u=1&r,l=this._audioMetadata,d=this._audioTrack;if(l||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(l=this._audioMetadata={}).type="audio",l.id=d.id,l.timescale=this._timescale,l.duration=this._duration,l.audioSampleRate=a,l.channelCount=0===u?1:2),10===o){var c=this._parseAACAudioData(e,t+1,i-1);if(null==c)return;if(0===c.packetType){l.config&&s.Z.w(this.TAG,"Found another AudioSpecificConfig!");var f=c.data;l.audioSampleRate=f.samplingRate,l.channelCount=f.channelCount,l.codec=f.codec,l.originalCodec=f.originalCodec,l.config=f.config,l.refSampleDuration=1024/l.audioSampleRate*l.timescale,s.Z.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",l),(g=this._mediaInfo).audioCodec=l.originalCodec,g.audioSampleRate=l.audioSampleRate,g.audioChannelCount=l.channelCount,g.hasVideo?null!=g.videoCodec&&(g.mimeType='video/x-flv; codecs="'+g.videoCodec+","+g.audioCodec+'"'):g.mimeType='video/x-flv; codecs="'+g.audioCodec+'"',g.isComplete()&&this._onMediaInfo(g)}else if(1===c.packetType){var _=this._timestampBase+n,p={unit:c.data,length:c.data.byteLength,dts:_,pts:_};d.samples.push(p),d.length+=c.data.length}else s.Z.e(this.TAG,"Flv: Unsupported AAC data type "+c.packetType)}else if(2===o){if(!l.codec){var g;if(null==(f=this._parseMP3AudioData(e,t+1,i-1,!0)))return;l.audioSampleRate=f.samplingRate,l.channelCount=f.channelCount,l.codec=f.codec,l.originalCodec=f.originalCodec,l.refSampleDuration=1152/l.audioSampleRate*l.timescale,s.Z.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",l),(g=this._mediaInfo).audioCodec=l.codec,g.audioSampleRate=l.audioSampleRate,g.audioChannelCount=l.channelCount,g.audioDataRate=f.bitRate,g.hasVideo?null!=g.videoCodec&&(g.mimeType='video/x-flv; codecs="'+g.videoCodec+","+g.audioCodec+'"'):g.mimeType='video/x-flv; codecs="'+g.audioCodec+'"',g.isComplete()&&this._onMediaInfo(g)}var v=this._parseMP3AudioData(e,t+1,i-1,!1);if(null==v)return;_=this._timestampBase+n;var y={unit:v,length:v.byteLength,dts:_,pts:_};d.samples.push(y),d.length+=v.length}}else this._onError(m.Z.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+h)}else this._onError(m.Z.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+o)}},e.prototype._parseAACAudioData=function(e,t,i){if(!(i<=1)){var n={},r=new Uint8Array(e,t,i);return n.packetType=r[0],0===r[0]?n.data=this._parseAACAudioSpecificConfig(e,t+1,i-1):n.data=r.subarray(1),n}s.Z.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},e.prototype._parseAACAudioSpecificConfig=function(e,t,i){var n,r,s=new Uint8Array(e,t,i),o=null,a=0,h=null;if(a=n=s[0]>>>3,(r=(7&s[0])<<1|s[1]>>>7)<0||r>=this._mpegSamplingRates.length)this._onError(m.Z.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var u=this._mpegSamplingRates[r],l=(120&s[1])>>>3;if(!(l<0||l>=8)){5===a&&(h=(7&s[1])<<1|s[2]>>>7,(124&s[2])>>>2);var d=self.navigator.userAgent.toLowerCase();return-1!==d.indexOf("firefox")?r>=6?(a=5,o=new Array(4),h=r-3):(a=2,o=new Array(2),h=r):-1!==d.indexOf("android")?(a=2,o=new Array(2),h=r):(a=5,h=r,o=new Array(4),r>=6?h=r-3:1===l&&(a=2,o=new Array(2),h=r)),o[0]=a<<3,o[0]|=(15&r)>>>1,o[1]=(15&r)<<7,o[1]|=(15&l)<<3,5===a&&(o[1]|=(15&h)>>>1,o[2]=(1&h)<<7,o[2]|=8,o[3]=0),{config:o,samplingRate:u,channelCount:l,codec:"mp4a.40."+a,originalCodec:"mp4a.40."+n}}this._onError(m.Z.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},e.prototype._parseMP3AudioData=function(e,t,i,n){if(!(i<4)){this._littleEndian;var r=new Uint8Array(e,t,i),o=null;if(n){if(255!==r[0])return;var a=r[1]>>>3&3,h=(6&r[1])>>1,u=(240&r[2])>>>4,l=(12&r[2])>>>2,d=3!==(r[3]>>>6&3)?2:1,c=0,f=0;switch(a){case 0:c=this._mpegAudioV25SampleRateTable[l];break;case 2:c=this._mpegAudioV20SampleRateTable[l];break;case 3:c=this._mpegAudioV10SampleRateTable[l]}switch(h){case 1:34,u>>4,h=15&o;7===h?this._parseAVCVideoPacket(e,t+1,i-1,n,r,a):this._onError(m.Z.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+h)}},e.prototype._parseAVCVideoPacket=function(e,t,i,n,r,o){if(i<4)s.Z.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var a=this._littleEndian,h=new DataView(e,t,i),u=h.getUint8(0),l=(16777215&h.getUint32(0,!a))<<8>>8;if(0===u)this._parseAVCDecoderConfigurationRecord(e,t+4,i-4);else if(1===u)this._parseAVCVideoData(e,t+4,i-4,n,r,o,l);else if(2!==u)return void this._onError(m.Z.FORMAT_ERROR,"Flv: Invalid video packet type "+u)}},e.prototype._parseAVCDecoderConfigurationRecord=function(e,t,i){if(i<7)s.Z.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,r=this._videoTrack,o=this._littleEndian,a=new DataView(e,t,i);n?void 0!==n.avcc&&s.Z.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(n=this._videoMetadata={}).type="video",n.id=r.id,n.timescale=this._timescale,n.duration=this._duration);var h=a.getUint8(0),u=a.getUint8(1);a.getUint8(2),a.getUint8(3);if(1===h&&0!==u)if(this._naluLengthSize=1+(3&a.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var l=31&a.getUint8(5);if(0!==l){l>1&&s.Z.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+l);for(var d=6,c=0;c1&&s.Z.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+R),d++;for(c=0;c=i){s.Z.w(this.TAG,"Malformed Nalu near timestamp "+_+", offset = "+c+", dataSize = "+i);break}var m=u.getUint32(c,!h);if(3===f&&(m>>>=8),m>i-f)return void s.Z.w(this.TAG,"Malformed Nalus near timestamp "+_+", NaluSize > DataSize!");var g=31&u.getUint8(c+f);5===g&&(p=!0);var v=new Uint8Array(e,t+c,f+m),y={type:g,data:v};l.push(y),d+=v.byteLength,c+=f+m}if(l.length){var b=this._videoTrack,E={units:l,length:d,isKeyframe:p,dts:_,cts:a,pts:_+a};p&&(E.fileposition=r),b.samples.push(E),b.length+=d}},e}(),v=function(){function e(){}return e.init=function(){for(var t in e.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]},e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var i=e.constants={};i.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),i.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),i.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),i.STSC=i.STCO=i.STTS,i.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),i.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),i.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),i.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),i.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},e.box=function(e){for(var t=8,i=null,n=Array.prototype.slice.call(arguments,1),r=n.length,s=0;s>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);var o=8;for(s=0;s>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},e.trak=function(t){return e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.tkhd=function(t){var i=t.id,n=t.duration,r=t.presentWidth,s=t.presentHeight;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,s>>>8&255,255&s,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t),e.hdlr(t),e.minf(t))},e.mdhd=function(t){var i=t.timescale,n=t.duration;return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,n>>>24&255,n>>>16&255,n>>>8&255,255&n,85,196,0,0]))},e.hdlr=function(t){var i=null;return i="audio"===t.type?e.constants.HDLR_AUDIO:e.constants.HDLR_VIDEO,e.box(e.types.hdlr,i)},e.minf=function(t){var i=null;return i="audio"===t.type?e.box(e.types.smhd,e.constants.SMHD):e.box(e.types.vmhd,e.constants.VMHD),e.box(e.types.minf,i,e.dinf(),e.stbl(t))},e.dinf=function(){return e.box(e.types.dinf,e.box(e.types.dref,e.constants.DREF))},e.stbl=function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.constants.STTS),e.box(e.types.stsc,e.constants.STSC),e.box(e.types.stsz,e.constants.STSZ),e.box(e.types.stco,e.constants.STCO))},e.stsd=function(t){return"audio"===t.type?"mp3"===t.codec?e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp3(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp4a(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.avc1(t))},e.mp3=function(t){var i=t.channelCount,n=t.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,n>>>8&255,255&n,0,0]);return e.box(e.types[".mp3"],r)},e.mp4a=function(t){var i=t.channelCount,n=t.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,i,0,16,0,0,0,0,n>>>8&255,255&n,0,0]);return e.box(e.types.mp4a,r,e.esds(t))},e.esds=function(t){var i=t.config||[],n=i.length,r=new Uint8Array([0,0,0,0,3,23+n,0,1,0,4,15+n,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([n]).concat(i).concat([6,1,2]));return e.box(e.types.esds,r)},e.avc1=function(t){var i=t.avcc,n=t.codecWidth,r=t.codecHeight,s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,n>>>8&255,255&n,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return e.box(e.types.avc1,s,e.box(e.types.avcC,i))},e.mvex=function(t){return e.box(e.types.mvex,e.trex(t))},e.trex=function(t){var i=t.id,n=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return e.box(e.types.trex,n)},e.moof=function(t,i){return e.box(e.types.moof,e.mfhd(t.sequenceNumber),e.traf(t,i))},e.mfhd=function(t){var i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]);return e.box(e.types.mfhd,i)},e.traf=function(t,i){var n=t.id,r=e.box(e.types.tfhd,new Uint8Array([0,0,0,0,n>>>24&255,n>>>16&255,n>>>8&255,255&n])),s=e.box(e.types.tfdt,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),o=e.sdtp(t),a=e.trun(t,o.byteLength+16+16+8+16+8+8);return e.box(e.types.traf,r,s,a,o)},e.sdtp=function(t){for(var i=t.samples||[],n=i.length,r=new Uint8Array(4+n),s=0;s>>24&255,r>>>16&255,r>>>8&255,255&r,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0);for(var a=0;a>>24&255,h>>>16&255,h>>>8&255,255&h,u>>>24&255,u>>>16&255,u>>>8&255,255&u,l.isLeading<<2|l.dependsOn,l.isDependedOn<<6|l.hasRedundancy<<4|l.isNonSync,0,0,d>>>24&255,d>>>16&255,d>>>8&255,255&d],12+16*a)}return e.box(e.types.trun,o)},e.mdat=function(t){return e.box(e.types.mdat,t)},e}();v.init();var y=v,b=function(){function e(){}return e.getSilentFrame=function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},e}(),E=i(51),S=function(){function e(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new E.J1("audio"),this._videoSegmentInfoList=new E.J1("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!o.Z.chrome||!(o.Z.version.major<50||50===o.Z.version.major&&o.Z.version.build<2661)),this._fillSilentAfterSeek=o.Z.msedge||o.Z.msie,this._mp3UseMpegAudio=!o.Z.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}return e.prototype.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},e.prototype.bindDataSource=function(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},Object.defineProperty(e.prototype,"onInitSegment",{get:function(){return this._onInitSegment},set:function(e){this._onInitSegment=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaSegment",{get:function(){return this._onMediaSegment},set:function(e){this._onMediaSegment=e},enumerable:!1,configurable:!0}),e.prototype.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},e.prototype.seek=function(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},e.prototype.remux=function(e,t){if(!this._onMediaSegment)throw new d.rT("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)},e.prototype._onTrackMetadataReceived=function(e,t){var i=null,n="mp4",r=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(n="mpeg",r="",i=new Uint8Array):i=y.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,i=y.generateInitSegment(t)}if(!this._onInitSegment)throw new d.rT("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:i.buffer,codec:r,container:e+"/"+n,mediaDuration:t.duration})},e.prototype._calculateDtsBase=function(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},e.prototype.flushStashedSamples=function(){var e=this._videoStashedLastSample,t=this._audioStashedLastSample,i={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(i.samples.push(e),i.length=e.length);var n={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(n.samples.push(t),n.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(i,!0),this._remuxAudio(n,!0)},e.prototype._remuxAudio=function(e,t){if(null!=this._audioMeta){var i,n=e,r=n.samples,a=void 0,h=-1,u=this._audioMeta.refSampleDuration,l="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,d=this._dtsBaseInited&&void 0===this._audioNextDts,c=!1;if(r&&0!==r.length&&(1!==r.length||t)){var f=0,_=null,p=0;l?(f=0,p=n.length):(f=8,p=8+n.length);var m=null;if(r.length>1&&(p-=(m=r.pop()).length),null!=this._audioStashedLastSample){var g=this._audioStashedLastSample;this._audioStashedLastSample=null,r.unshift(g),p+=g.length}null!=m&&(this._audioStashedLastSample=m);var v=r[0].dts-this._dtsBase;if(this._audioNextDts)a=v-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())a=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(c=!0);else{var S=this._audioSegmentInfoList.getLastSampleBefore(v);if(null!=S){var A=v-(S.originalDts+S.duration);A<=3&&(A=0),a=v-(S.dts+S.duration+A)}else a=0}if(c){var L=v-a,R=this._videoSegmentInfoList.getLastSegmentBefore(v);if(null!=R&&R.beginDts=3*u&&this._fillAudioTimestampGap&&!o.Z.safari){I=!0;var P,U=Math.floor(a/u);s.Z.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: "+D+" ms, curRefDts: "+x+" ms, dtsCorrection: "+Math.round(a)+" ms, generate: "+U+" frames"),w=Math.floor(x),B=Math.floor(x+u)-w,null==(P=b.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount))&&(s.Z.w(this.TAG,"Unable to generate silent frame for "+this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame"),P=k),M=[];for(var N=0;N=1?T[T.length-1].duration:Math.floor(u);this._audioNextDts=w+B}-1===h&&(h=w),T.push({dts:w,pts:w,cts:0,unit:g.unit,size:g.unit.byteLength,duration:B,originalDts:D,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),I&&T.push.apply(T,M)}}if(0===T.length)return n.samples=[],void(n.length=0);l?_=new Uint8Array(p):((_=new Uint8Array(p))[0]=p>>>24&255,_[1]=p>>>16&255,_[2]=p>>>8&255,_[3]=255&p,_.set(y.types.mdat,4));for(C=0;C1&&(d-=(c=s.pop()).length),null!=this._videoStashedLastSample){var f=this._videoStashedLastSample;this._videoStashedLastSample=null,s.unshift(f),d+=f.length}null!=c&&(this._videoStashedLastSample=c);var _=s[0].dts-this._dtsBase;if(this._videoNextDts)o=_-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())o=0;else{var p=this._videoSegmentInfoList.getLastSampleBefore(_);if(null!=p){var m=_-(p.originalDts+p.duration);m<=3&&(m=0),o=_-(p.dts+p.duration+m)}else o=0}for(var g=new E.Yy,v=[],b=0;b=1?v[v.length-1].duration:Math.floor(this._videoMeta.refSampleDuration);if(A){var T=new E.Wk(L,w,O,f.dts,!0);T.fileposition=f.fileposition,g.appendSyncPoint(T)}v.push({dts:L,pts:w,cts:R,units:f.units,size:f.length,isKeyframe:A,duration:O,originalDts:S,flags:{isLeading:0,dependsOn:A?2:1,isDependedOn:A?1:0,hasRedundancy:0,isNonSync:A?0:1}})}(l=new Uint8Array(d))[0]=d>>>24&255,l[1]=d>>>16&255,l[2]=d>>>8&255,l[3]=255&d,l.set(y.types.mdat,4);for(b=0;b0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,r=this._demuxer.parseChunks(e,t);else if((n=g.probe(e)).match){this._demuxer=new g(n,this._config),this._remuxer||(this._remuxer=new S(this._config));var o=this._mediaDataSource;null==o.duration||isNaN(o.duration)||(this._demuxer.overridedDuration=o.duration),"boolean"==typeof o.hasAudio&&(this._demuxer.overridedHasAudio=o.hasAudio),"boolean"==typeof o.hasVideo&&(this._demuxer.overridedHasVideo=o.hasVideo),this._demuxer.timestampBase=o.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),r=this._demuxer.parseChunks(e,t)}else n=null,s.Z.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then((function(){i._internalAbort()})),this._emitter.emit(L.Z.DEMUX_ERROR,m.Z.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),r=0;return r},e.prototype._onMediaInfo=function(e){var t=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,a.Z.prototype));var i=Object.assign({},e);Object.setPrototypeOf(i,a.Z.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=i,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then((function(){var e=t._pendingSeekTime;t._pendingSeekTime=null,t.seek(e)}))},e.prototype._onMetaDataArrived=function(e){this._emitter.emit(L.Z.METADATA_ARRIVED,e)},e.prototype._onScriptDataArrived=function(e){this._emitter.emit(L.Z.SCRIPTDATA_ARRIVED,e)},e.prototype._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},e.prototype._onIOComplete=function(e){var t=e+1;t0&&i[0].originalDts===n&&(n=i[0].pts),this._emitter.emit(L.Z.RECOMMEND_SEEKPOINT,n)}},e.prototype._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},e.prototype._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype._reportSegmentMediaInfo=function(e){var t=this._mediaInfo.segments[e],i=Object.assign({},t);i.duration=this._mediaInfo.duration,i.segmentCount=this._mediaInfo.segmentCount,delete i.segments,delete i.keyframesIndex,this._emitter.emit(L.Z.MEDIA_INFO,i)},e.prototype._reportStatisticsInfo=function(){var e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(L.Z.STATISTICS_INFO,e)},e}()},257:function(e,t){"use strict";t.Z={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint"}},82:function(e,t,i){"use strict";i(846),i(219),i(949),i(257)},600:function(e,t){"use strict";t.Z={OK:"OK",FORMAT_ERROR:"FormatError",FORMAT_UNSUPPORTED:"FormatUnsupported",CODEC_UNSUPPORTED:"CodecUnsupported"}},60:function(e,t,i){"use strict";i.d(t,{default:function(){return D}});var n=i(219),r=i(191),s={enableWorker:!1,enableStashBuffer:!0,stashInitialSize:void 0,isLive:!1,lazyLoad:!0,lazyLoadMaxDuration:180,lazyLoadRecoverDuration:30,deferLoadAfterSourceOpen:!0,autoCleanupMaxBackwardDuration:180,autoCleanupMinBackwardDuration:120,statisticsInfoReportInterval:600,fixAudioTimestampGap:!0,accurateSeek:!1,seekType:"range",seekParamStart:"bstart",seekParamEnd:"bend",rangeLoadZeroStart:!1,customSeekHandler:void 0,reuseRedirectedURL:!1,headers:void 0,customLoader:void 0};function o(){return Object.assign({},s)}var a=function(){function e(){}return e.supportMSEH264Playback=function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')},e.supportNetworkStreamIO=function(){var e=new r.Z({},o()),t=e.loaderType;return e.destroy(),"fetch-stream-loader"==t||"xhr-moz-chunked-loader"==t},e.getNetworkLoaderTypeName=function(){var e=new r.Z({},o()),t=e.loaderType;return e.destroy(),t},e.supportNativeMediaPlayback=function(t){null==e.videoElement&&(e.videoElement=window.document.createElement("video"));var i=e.videoElement.canPlayType(t);return"probably"===i||"maybe"==i},e.getFeatureList=function(){var t={mseFlvPlayback:!1,mseLiveFlvPlayback:!1,networkStreamIO:!1,networkLoaderName:"",nativeMP4H264Playback:!1,nativeWebmVP8Playback:!1,nativeWebmVP9Playback:!1};return t.mseFlvPlayback=e.supportMSEH264Playback(),t.networkStreamIO=e.supportNetworkStreamIO(),t.networkLoaderName=e.getNetworkLoaderTypeName(),t.mseLiveFlvPlayback=t.mseFlvPlayback&&t.networkStreamIO,t.nativeMP4H264Playback=e.supportNativeMediaPlayback('video/mp4; codecs="avc1.42001E, mp4a.40.2"'),t.nativeWebmVP8Playback=e.supportNativeMediaPlayback('video/webm; codecs="vp8.0, vorbis"'),t.nativeWebmVP9Playback=e.supportNativeMediaPlayback('video/webm; codecs="vp9"'),t},e}(),h=i(939),u=i(716),l=i.n(u),d=i(300),c=i(538),f={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"},_=i(397),p=i.n(_),m=i(846),g=i(949),v=i(257),y=i(118),b=function(){function e(e,t){if(this.TAG="Transmuxer",this._emitter=new(l()),t.enableWorker&&"undefined"!=typeof Worker)try{this._worker=p()(82),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},m.Z.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:m.Z.getConfig()})}catch(i){d.Z.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new g.Z(e,t)}else this._controller=new g.Z(e,t);if(this._controller){var i=this._controller;i.on(v.Z.IO_ERROR,this._onIOError.bind(this)),i.on(v.Z.DEMUX_ERROR,this._onDemuxError.bind(this)),i.on(v.Z.INIT_SEGMENT,this._onInitSegment.bind(this)),i.on(v.Z.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),i.on(v.Z.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),i.on(v.Z.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),i.on(v.Z.MEDIA_INFO,this._onMediaInfo.bind(this)),i.on(v.Z.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),i.on(v.Z.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),i.on(v.Z.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),i.on(v.Z.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}return e.prototype.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),m.Z.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.hasWorker=function(){return null!=this._worker},e.prototype.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()},e.prototype.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},e.prototype.seek=function(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)},e.prototype.pause=function(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},e.prototype.resume=function(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},e.prototype._onInitSegment=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(v.Z.INIT_SEGMENT,e,t)}))},e.prototype._onMediaSegment=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(v.Z.MEDIA_SEGMENT,e,t)}))},e.prototype._onLoadingComplete=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(v.Z.LOADING_COMPLETE)}))},e.prototype._onRecoveredEarlyEof=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(v.Z.RECOVERED_EARLY_EOF)}))},e.prototype._onMediaInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(v.Z.MEDIA_INFO,e)}))},e.prototype._onMetaDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(v.Z.METADATA_ARRIVED,e)}))},e.prototype._onScriptDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(v.Z.SCRIPTDATA_ARRIVED,e)}))},e.prototype._onStatisticsInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(v.Z.STATISTICS_INFO,e)}))},e.prototype._onIOError=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(v.Z.IO_ERROR,e,t)}))},e.prototype._onDemuxError=function(e,t){var i=this;Promise.resolve().then((function(){i._emitter.emit(v.Z.DEMUX_ERROR,e,t)}))},e.prototype._onRecommendSeekpoint=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(v.Z.RECOMMEND_SEEKPOINT,e)}))},e.prototype._onLoggingConfigChanged=function(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})},e.prototype._onWorkerMessage=function(e){var t=e.data,i=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case v.Z.INIT_SEGMENT:case v.Z.MEDIA_SEGMENT:this._emitter.emit(t.msg,i.type,i.data);break;case v.Z.LOADING_COMPLETE:case v.Z.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case v.Z.MEDIA_INFO:Object.setPrototypeOf(i,y.Z.prototype),this._emitter.emit(t.msg,i);break;case v.Z.METADATA_ARRIVED:case v.Z.SCRIPTDATA_ARRIVED:case v.Z.STATISTICS_INFO:this._emitter.emit(t.msg,i);break;case v.Z.IO_ERROR:case v.Z.DEMUX_ERROR:this._emitter.emit(t.msg,i.type,i.info);break;case v.Z.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,i);break;case"logcat_callback":d.Z.emitter.emit("log",i.type,i.logcat)}},e}(),E={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"},S=i(51),A=i(29),L=function(){function e(e){this.TAG="MSEController",this._config=e,this._emitter=new(l()),this._config.isLive&&null==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new S.Vn}return e.prototype.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){if(this._mediaSource)throw new A.rT("MediaSource has been attached to an HTMLMediaElement!");var t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),e.src=this._mediaSourceObjectURL},e.prototype.detachMediaElement=function(){if(this._mediaSource){var e=this._mediaSource;for(var t in this._sourceBuffers){var i=this._pendingSegments[t];i.splice(0,i.length),this._pendingSegments[t]=null,this._pendingRemoveRanges[t]=null,this._lastInitSegments[t]=null;var n=this._sourceBuffers[t];if(n){if("closed"!==e.readyState){try{e.removeSourceBuffer(n)}catch(e){d.Z.e(this.TAG,e.message)}n.removeEventListener("error",this.e.onSourceBufferError),n.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[t]=null,this._sourceBuffers[t]=null}}if("open"===e.readyState)try{e.endOfStream()}catch(e){d.Z.e(this.TAG,e.message)}e.removeEventListener("sourceopen",this.e.onSourceOpen),e.removeEventListener("sourceended",this.e.onSourceEnded),e.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},e.prototype.appendInitSegment=function(e,t){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);var i=e,n=""+i.container;i.codec&&i.codec.length>0&&(n+=";codecs="+i.codec);var r=!1;if(d.Z.v(this.TAG,"Received Initialization Segment, mimeType: "+n),this._lastInitSegments[i.type]=i,n!==this._mimeTypes[i.type]){if(this._mimeTypes[i.type])d.Z.v(this.TAG,"Notice: "+i.type+" mimeType changed, origin: "+this._mimeTypes[i.type]+", target: "+n);else{r=!0;try{var s=this._sourceBuffers[i.type]=this._mediaSource.addSourceBuffer(n);s.addEventListener("error",this.e.onSourceBufferError),s.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(e){return d.Z.e(this.TAG,e.message),void this._emitter.emit(E.ERROR,{code:e.code,msg:e.message})}}this._mimeTypes[i.type]=n}t||this._pendingSegments[i.type].push(i),r||this._sourceBuffers[i.type]&&!this._sourceBuffers[i.type].updating&&this._doAppendSegments(),c.Z.safari&&"audio/mpeg"===i.container&&i.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=i.mediaDuration/1e3,this._updateMediaSourceDuration())},e.prototype.appendMediaSegment=function(e){var t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var i=this._sourceBuffers[t.type];!i||i.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()},e.prototype.seek=function(e){for(var t in this._sourceBuffers)if(this._sourceBuffers[t]){var i=this._sourceBuffers[t];if("open"===this._mediaSource.readyState)try{i.abort()}catch(e){d.Z.e(this.TAG,e.message)}this._idrList.clear();var n=this._pendingSegments[t];if(n.splice(0,n.length),"closed"!==this._mediaSource.readyState){for(var r=0;r=1&&e-n.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},e.prototype._doCleanupSourceBuffer=function(){var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var i=this._sourceBuffers[t];if(i){for(var n=i.buffered,r=!1,s=0;s=this._config.autoCleanupMaxBackwardDuration){r=!0;var h=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:o,end:h})}}else a0&&(isNaN(t)||i>t)&&(d.Z.v(this.TAG,"Update MediaSource duration from "+t+" to "+i),this._mediaSource.duration=i),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},e.prototype._doRemoveRanges=function(){for(var e in this._pendingRemoveRanges)if(this._sourceBuffers[e]&&!this._sourceBuffers[e].updating)for(var t=this._sourceBuffers[e],i=this._pendingRemoveRanges[e];i.length&&!t.updating;){var n=i.shift();t.remove(n.start,n.end)}},e.prototype._doAppendSegments=function(){var e=this._pendingSegments;for(var t in e)if(this._sourceBuffers[t]&&!this._sourceBuffers[t].updating&&e[t].length>0){var i=e[t].shift();if(i.timestampOffset){var n=this._sourceBuffers[t].timestampOffset,r=i.timestampOffset/1e3;Math.abs(n-r)>.1&&(d.Z.v(this.TAG,"Update MPEG audio timestampOffset from "+n+" to "+r),this._sourceBuffers[t].timestampOffset=r),delete i.timestampOffset}if(!i.data||0===i.data.byteLength)continue;try{this._sourceBuffers[t].appendBuffer(i.data),this._isBufferFull=!1,"video"===t&&i.hasOwnProperty("info")&&this._idrList.appendArray(i.info.syncPoints)}catch(e){this._pendingSegments[t].unshift(i),22===e.code?(this._isBufferFull||this._emitter.emit(E.BUFFER_FULL),this._isBufferFull=!0):(d.Z.e(this.TAG,e.message),this._emitter.emit(E.ERROR,{code:e.code,msg:e.message}))}}},e.prototype._onSourceOpen=function(){if(d.Z.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var e=this._pendingSourceBufferInit;e.length;){var t=e.shift();this.appendInitSegment(t,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(E.SOURCE_OPEN)},e.prototype._onSourceEnded=function(){d.Z.v(this.TAG,"MediaSource onSourceEnded")},e.prototype._onSourceClose=function(){d.Z.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},e.prototype._hasPendingSegments=function(){var e=this._pendingSegments;return e.video.length>0||e.audio.length>0},e.prototype._hasPendingRemoveRanges=function(){var e=this._pendingRemoveRanges;return e.video.length>0||e.audio.length>0},e.prototype._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(E.UPDATE_END)},e.prototype._onSourceBufferError=function(e){d.Z.e(this.TAG,"SourceBuffer Error: "+e)},e}(),R=i(600),w={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},O={NETWORK_EXCEPTION:h.nm.EXCEPTION,NETWORK_STATUS_CODE_INVALID:h.nm.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:h.nm.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:h.nm.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:R.Z.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:R.Z.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:R.Z.CODEC_UNSUPPORTED},T=function(){function e(e,t){if(this.TAG="FlvPlayer",this._type="FlvPlayer",this._emitter=new(l()),this._config=o(),"object"==typeof t&&Object.assign(this._config,t),"flv"!==e.type.toLowerCase())throw new A.OC("FlvPlayer requires an flv MediaDataSource input!");!0===e.isLive&&(this._config.isLive=!0),this.e={onvLoadedMetadata:this._onvLoadedMetadata.bind(this),onvSeeking:this._onvSeeking.bind(this),onvCanPlay:this._onvCanPlay.bind(this),onvStalled:this._onvStalled.bind(this),onvProgress:this._onvProgress.bind(this)},self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now,this._pendingSeekTime=null,this._requestSetTime=!1,this._seekpointRecord=null,this._progressChecker=null,this._mediaDataSource=e,this._mediaElement=null,this._msectl=null,this._transmuxer=null,this._mseSourceOpened=!1,this._hasPendingLoad=!1,this._receivedCanPlay=!1,this._mediaInfo=null,this._statisticsInfo=null;var i=c.Z.chrome&&(c.Z.version.major<50||50===c.Z.version.major&&c.Z.version.build<2661);this._alwaysSeekKeyframe=!!(i||c.Z.msedge||c.Z.msie),this._alwaysSeekKeyframe&&(this._config.accurateSeek=!1)}return e.prototype.destroy=function(){null!=this._progressChecker&&(window.clearInterval(this._progressChecker),this._progressChecker=null),this._transmuxer&&this.unload(),this._mediaElement&&this.detachMediaElement(),this.e=null,this._mediaDataSource=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){var i=this;e===f.MEDIA_INFO?null!=this._mediaInfo&&Promise.resolve().then((function(){i._emitter.emit(f.MEDIA_INFO,i.mediaInfo)})):e===f.STATISTICS_INFO&&null!=this._statisticsInfo&&Promise.resolve().then((function(){i._emitter.emit(f.STATISTICS_INFO,i.statisticsInfo)})),this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){var t=this;if(this._mediaElement=e,e.addEventListener("loadedmetadata",this.e.onvLoadedMetadata),e.addEventListener("seeking",this.e.onvSeeking),e.addEventListener("canplay",this.e.onvCanPlay),e.addEventListener("stalled",this.e.onvStalled),e.addEventListener("progress",this.e.onvProgress),this._msectl=new L(this._config),this._msectl.on(E.UPDATE_END,this._onmseUpdateEnd.bind(this)),this._msectl.on(E.BUFFER_FULL,this._onmseBufferFull.bind(this)),this._msectl.on(E.SOURCE_OPEN,(function(){t._mseSourceOpened=!0,t._hasPendingLoad&&(t._hasPendingLoad=!1,t.load())})),this._msectl.on(E.ERROR,(function(e){t._emitter.emit(f.ERROR,w.MEDIA_ERROR,O.MEDIA_MSE_ERROR,e)})),this._msectl.attachMediaElement(e),null!=this._pendingSeekTime)try{e.currentTime=this._pendingSeekTime,this._pendingSeekTime=null}catch(e){}},e.prototype.detachMediaElement=function(){this._mediaElement&&(this._msectl.detachMediaElement(),this._mediaElement.removeEventListener("loadedmetadata",this.e.onvLoadedMetadata),this._mediaElement.removeEventListener("seeking",this.e.onvSeeking),this._mediaElement.removeEventListener("canplay",this.e.onvCanPlay),this._mediaElement.removeEventListener("stalled",this.e.onvStalled),this._mediaElement.removeEventListener("progress",this.e.onvProgress),this._mediaElement=null),this._msectl&&(this._msectl.destroy(),this._msectl=null)},e.prototype.load=function(){var e=this;if(!this._mediaElement)throw new A.rT("HTMLMediaElement must be attached before load()!");if(this._transmuxer)throw new A.rT("FlvPlayer.load() has been called, please call unload() first!");this._hasPendingLoad||(this._config.deferLoadAfterSourceOpen&&!1===this._mseSourceOpened?this._hasPendingLoad=!0:(this._mediaElement.readyState>0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new b(this._mediaDataSource,this._config),this._transmuxer.on(v.Z.INIT_SEGMENT,(function(t,i){e._msectl.appendInitSegment(i)})),this._transmuxer.on(v.Z.MEDIA_SEGMENT,(function(t,i){if(e._msectl.appendMediaSegment(i),e._config.lazyLoad&&!e._config.isLive){var n=e._mediaElement.currentTime;i.info.endDts>=1e3*(n+e._config.lazyLoadMaxDuration)&&null==e._progressChecker&&(d.Z.v(e.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),e._suspendTransmuxer())}})),this._transmuxer.on(v.Z.LOADING_COMPLETE,(function(){e._msectl.endOfStream(),e._emitter.emit(f.LOADING_COMPLETE)})),this._transmuxer.on(v.Z.RECOVERED_EARLY_EOF,(function(){e._emitter.emit(f.RECOVERED_EARLY_EOF)})),this._transmuxer.on(v.Z.IO_ERROR,(function(t,i){e._emitter.emit(f.ERROR,w.NETWORK_ERROR,t,i)})),this._transmuxer.on(v.Z.DEMUX_ERROR,(function(t,i){e._emitter.emit(f.ERROR,w.MEDIA_ERROR,t,{code:-1,msg:i})})),this._transmuxer.on(v.Z.MEDIA_INFO,(function(t){e._mediaInfo=t,e._emitter.emit(f.MEDIA_INFO,Object.assign({},t))})),this._transmuxer.on(v.Z.METADATA_ARRIVED,(function(t){e._emitter.emit(f.METADATA_ARRIVED,t)})),this._transmuxer.on(v.Z.SCRIPTDATA_ARRIVED,(function(t){e._emitter.emit(f.SCRIPTDATA_ARRIVED,t)})),this._transmuxer.on(v.Z.STATISTICS_INFO,(function(t){e._statisticsInfo=e._fillStatisticsInfo(t),e._emitter.emit(f.STATISTICS_INFO,Object.assign({},e._statisticsInfo))})),this._transmuxer.on(v.Z.RECOMMEND_SEEKPOINT,(function(t){e._mediaElement&&!e._config.accurateSeek&&(e._requestSetTime=!0,e._mediaElement.currentTime=t/1e3)})),this._transmuxer.open()))},e.prototype.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){return Object.assign({},this._mediaInfo)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)},enumerable:!1,configurable:!0}),e.prototype._fillStatisticsInfo=function(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,i=0,n=0;if(this._mediaElement.getVideoPlaybackQuality){var r=this._mediaElement.getVideoPlaybackQuality();i=r.totalVideoFrames,n=r.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,n=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=n),e},e.prototype._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var e=this._mediaElement.buffered,t=this._mediaElement.currentTime,i=0,n=0;n=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(d.Z.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},e.prototype._onmseBufferFull=function(){d.Z.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},e.prototype._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},e.prototype._checkProgressAndResume=function(){for(var e=this._mediaElement.currentTime,t=this._mediaElement.buffered,i=!1,n=0;n=r&&e=s-this._config.lazyLoadRecoverDuration&&(i=!0);break}}i&&(window.clearInterval(this._progressChecker),this._progressChecker=null,i&&(d.Z.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},e.prototype._isTimepointBuffered=function(e){for(var t=this._mediaElement.buffered,i=0;i=n&&e0){var r=this._mediaElement.buffered.start(0);(r<1&&e0&&t.currentTime0){var n=i.start(0);if(n<1&&t0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},e.prototype.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){var e={mimeType:(this._mediaElement instanceof HTMLAudioElement?"audio/":"video/")+this._mediaDataSource.type};return this._mediaElement&&(e.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(e.width=this._mediaElement.videoWidth,e.height=this._mediaElement.videoHeight)),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){var e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,i=0,n=0;if(this._mediaElement.getVideoPlaybackQuality){var r=this._mediaElement.getVideoPlaybackQuality();i=r.totalVideoFrames,n=r.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(i=this._mediaElement.webkitDecodedFrameCount,n=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=i,e.droppedFrames=n),e},enumerable:!1,configurable:!0}),e.prototype._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(f.MEDIA_INFO,this.mediaInfo)},e.prototype._reportStatisticsInfo=function(){this._emitter.emit(f.STATISTICS_INFO,this.statisticsInfo)},e}();n.Z.install();var k={createPlayer:function(e,t){var i=e;if(null==i||"object"!=typeof i)throw new A.OC("MediaDataSource must be an javascript object!");if(!i.hasOwnProperty("type"))throw new A.OC("MediaDataSource must has type field to indicate video file type!");switch(i.type){case"flv":return new T(i,t);default:return new C(i,t)}},isSupported:function(){return a.supportMSEH264Playback()},getFeatureList:function(){return a.getFeatureList()}};k.BaseLoader=h.fp,k.LoaderStatus=h.GM,k.LoaderErrors=h.nm,k.Events=f,k.ErrorTypes=w,k.ErrorDetails=O,k.FlvPlayer=T,k.NativePlayer=C,k.LoggingControl=m.Z,Object.defineProperty(k,"version",{enumerable:!0,get:function(){return"1.6.2"}});var D=k},324:function(e,t,i){e.exports=i(60).default},191:function(e,t,i){"use strict";i.d(t,{Z:function(){return y}});var n,r=i(300),s=function(){function e(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}return e.prototype.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},e.prototype.addBytes=function(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())},Object.defineProperty(e.prototype,"currentKBps",{get:function(){this.addBytes(0);var e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSecondKBps",{get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"averageKBps",{get:function(){var e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024},enumerable:!1,configurable:!0}),e}(),o=i(939),a=i(538),h=i(29),u=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),l=function(e){function t(t,i){var n=e.call(this,"fetch-stream-loader")||this;return n.TAG="FetchStreamLoader",n._seekHandler=t,n._config=i,n._needStash=!0,n._requestAbort=!1,n._contentLength=null,n._receivedLength=0,n}return u(t,e),t.isSupported=function(){try{var e=a.Z.msedge&&a.Z.version.minor>=15048,t=!a.Z.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(e){return!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){var i=this;this._dataSource=e,this._range=t;var n=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(n=e.redirectedURL);var r=this._seekHandler.getConfig(n,t),s=new self.Headers;if("object"==typeof r.headers){var a=r.headers;for(var u in a)a.hasOwnProperty(u)&&s.append(u,a[u])}var l={method:"GET",headers:s,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"==typeof this._config.headers)for(var u in this._config.headers)s.append(u,this._config.headers[u]);!1===e.cors&&(l.mode="same-origin"),e.withCredentials&&(l.credentials="include"),e.referrerPolicy&&(l.referrerPolicy=e.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,l.signal=this._abortController.signal),this._status=o.GM.kConnecting,self.fetch(r.url,l).then((function(e){if(i._requestAbort)return i._status=o.GM.kIdle,void e.body.cancel();if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==r.url&&i._onURLRedirect){var t=i._seekHandler.removeURLParameters(e.url);i._onURLRedirect(t)}var n=e.headers.get("Content-Length");return null!=n&&(i._contentLength=parseInt(n),0!==i._contentLength&&i._onContentLengthKnown&&i._onContentLengthKnown(i._contentLength)),i._pump.call(i,e.body.getReader())}if(i._status=o.GM.kError,!i._onError)throw new h.OZ("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);i._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})})).catch((function(e){if(!i._abortController||!i._abortController.signal.aborted){if(i._status=o.GM.kError,!i._onError)throw e;i._onError(o.nm.EXCEPTION,{code:-1,msg:e.message})}}))},t.prototype.abort=function(){if(this._requestAbort=!0,(this._status!==o.GM.kBuffering||!a.Z.chrome)&&this._abortController)try{this._abortController.abort()}catch(e){}},t.prototype._pump=function(e){var t=this;return e.read().then((function(i){if(i.done)if(null!==t._contentLength&&t._receivedLength299)){if(this._status=o.GM.kError,!this._onError)throw new h.OZ("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=o.GM.kBuffering}},t.prototype._onProgress=function(e){if(this._status!==o.GM.kError){null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var t=e.target.response,i=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,i,this._receivedLength)}},t.prototype._onLoadEnd=function(e){!0!==this._requestAbort?this._status!==o.GM.kError&&(this._status=o.GM.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},t.prototype._onXhrError=function(e){this._status=o.GM.kError;var t=0,i=null;if(this._contentLength&&e.loaded=this._contentLength&&(i=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:i},this._internalOpen(this._dataSource,this._currentRequestRange)},t.prototype._internalOpen=function(e,t){this._lastTimeLoaded=0;var i=e.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?i=this._currentRedirectedURL:null!=e.redirectedURL&&(i=e.redirectedURL));var n=this._seekHandler.getConfig(i,t);this._currentRequestURL=n.url;var r=this._xhr=new XMLHttpRequest;if(r.open("GET",n.url,!0),r.responseType="arraybuffer",r.onreadystatechange=this._onReadyStateChange.bind(this),r.onprogress=this._onProgress.bind(this),r.onload=this._onLoad.bind(this),r.onerror=this._onXhrError.bind(this),e.withCredentials&&(r.withCredentials=!0),"object"==typeof n.headers){var s=n.headers;for(var o in s)s.hasOwnProperty(o)&&r.setRequestHeader(o,s[o])}if("object"==typeof this._config.headers){s=this._config.headers;for(var o in s)s.hasOwnProperty(o)&&r.setRequestHeader(o,s[o])}r.send()},t.prototype.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=o.GM.kComplete},t.prototype._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL){var i=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&i!==this._currentRedirectedURL&&(this._currentRedirectedURL=i,this._onURLRedirect&&this._onURLRedirect(i))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=o.GM.kBuffering}else{if(this._status=o.GM.kError,!this._onError)throw new h.OZ("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.nm.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}},t.prototype._onProgress=function(e){if(this._status!==o.GM.kError){if(null===this._contentLength){var t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;var i=e.total;this._internalAbort(),null!=i&0!==i&&(this._totalLength=i)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var n=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(n)}},t.prototype._normalizeSpeed=function(e){var t=this._chunkSizeKBList,i=t.length-1,n=0,r=0,s=i;if(e=t[n]&&e=3&&(t=this._speedSampler.currentKBps)),0!==t){var i=this._normalizeSpeed(t);this._currentSpeedNormalized!==i&&(this._currentSpeedNormalized=i,this._currentChunkSizeKB=i)}var n=e.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=n.byteLength;var s=!1;null!=this._contentLength&&this._receivedLength0&&this._receivedLength0)for(var s=i.split("&"),o=0;o0;a[0]!==this._startName&&a[0]!==this._endName&&(h&&(r+="&"),r+=s[o])}return 0===r.length?t:t+"?"+r},e}(),y=function(){function e(e,t,i){this.TAG="IOController",this._config=t,this._extraData=i,this._stashInitialSize=393216,null!=t.stashInitialSize&&t.stashInitialSize>0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new s,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}return e.prototype.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},e.prototype.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},e.prototype.isPaused=function(){return this._paused},Object.defineProperty(e.prototype,"status",{get:function(){return this._loader.status},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"extraData",{get:function(){return this._extraData},set:function(e){this._extraData=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onSeeked",{get:function(){return this._onSeeked},set:function(e){this._onSeeked=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{get:function(){return this._onComplete},set:function(e){this._onComplete=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRedirect",{get:function(){return this._onRedirect},set:function(e){this._onRedirect=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRecoveredEarlyEof",{get:function(){return this._onRecoveredEarlyEof},set:function(e){this._onRecoveredEarlyEof=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentURL",{get:function(){return this._dataSource.url},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasRedirect",{get:function(){return null!=this._redirectedURL||null!=this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentRedirectedURL",{get:function(){return this._redirectedURL||this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentSpeed",{get:function(){return this._loaderClass===_?this._loader.currentSpeed:this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"loaderType",{get:function(){return this._loader.type},enumerable:!1,configurable:!0}),e.prototype._selectSeekHandler=function(){var e=this._config;if("range"===e.seekType)this._seekHandler=new g(this._config.rangeLoadZeroStart);else if("param"===e.seekType){var t=e.seekParamStart||"bstart",i=e.seekParamEnd||"bend";this._seekHandler=new v(t,i)}else{if("custom"!==e.seekType)throw new h.OC("Invalid seekType in config: "+e.seekType);if("function"!=typeof e.customSeekHandler)throw new h.OC("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}},e.prototype._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=m;else if(l.isSupported())this._loaderClass=l;else if(c.isSupported())this._loaderClass=c;else{if(!_.isSupported())throw new h.OZ("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=_}},e.prototype._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},e.prototype.open=function(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},e.prototype.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},e.prototype.pause=function(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},e.prototype.resume=function(){if(this._paused){this._paused=!1;var e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}},e.prototype.seek=function(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)},e.prototype._internalSeek=function(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;var i={from:e,to:-1};this._currentRange={from:i.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,i),this._onSeeked&&this._onSeeked()},e.prototype.updateUrl=function(e){if(!e||"string"!=typeof e||0===e.length)throw new h.OC("Url must be a non-empty string!");this._dataSource.url=e},e.prototype._expandBuffer=function(e){for(var t=this._stashSize;t+10485760){var n=new Uint8Array(this._stashBuffer,0,this._stashUsed);new Uint8Array(i,0,t).set(n,0)}this._stashBuffer=i,this._bufferSize=t}},e.prototype._normalizeSpeed=function(e){var t=this._speedNormalizeList,i=t.length-1,n=0,r=0,s=i;if(e=t[n]&&e=512&&e<=1024?Math.floor(1.5*e):2*e)>8192&&(t=8192);var i=1024*t+1048576;this._bufferSize0){var s=this._stashBuffer.slice(0,this._stashUsed);if((u=this._dispatchChunks(s,this._stashByteStart))0){l=new Uint8Array(s,u);a.set(l,0),this._stashUsed=l.byteLength,this._stashByteStart+=u}}else this._stashUsed=0,this._stashByteStart+=u;this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else{if((u=this._dispatchChunks(e,t))this._bufferSize&&(this._expandBuffer(o),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e,u),0),this._stashUsed+=o,this._stashByteStart=t+u}}else if(0===this._stashUsed){var o;if((u=this._dispatchChunks(e,t))this._bufferSize&&this._expandBuffer(o),(a=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(e,u),0),this._stashUsed+=o,this._stashByteStart=t+u}else{var a,u;if(this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength),(a=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength,(u=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart))0){var l=new Uint8Array(this._stashBuffer,u);a.set(l,0)}this._stashUsed-=u,this._stashByteStart+=u}}},e.prototype._flushStashBuffer=function(e){if(this._stashUsed>0){var t=this._stashBuffer.slice(0,this._stashUsed),i=this._dispatchChunks(t,this._stashByteStart),n=t.byteLength-i;if(i0){var s=new Uint8Array(this._stashBuffer,0,this._bufferSize),o=new Uint8Array(t,i);s.set(o,0),this._stashUsed=o.byteLength,this._stashByteStart+=i}return 0}r.Z.w(this.TAG,n+" bytes unconsumed data remain when flush buffer, dropped")}return this._stashUsed=0,this._stashByteStart=0,n}return 0},e.prototype._onLoaderComplete=function(e,t){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)},e.prototype._onLoaderError=function(e,t){switch(r.Z.e(this.TAG,"Loader error, code = "+t.code+", msg = "+t.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=o.nm.UNRECOVERABLE_EARLY_EOF),e){case o.nm.EARLY_EOF:if(!this._config.isLive&&this._totalLength){var i=this._currentRange.to+1;return void(i=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],n=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],r={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:n[0]||""},s={};if(r.browser){s[r.browser]=!0;var o=r.majorVersion.split(".");s.version={major:parseInt(r.majorVersion,10),string:r.version},o.length>1&&(s.version.minor=parseInt(o[1],10)),o.length>2&&(s.version.build=parseInt(o[2],10))}if(r.platform&&(s[r.platform]=!0),(s.chrome||s.opr||s.safari)&&(s.webkit=!0),s.rv||s.iemobile){s.rv&&delete s.rv;var a="msie";r.browser=a,s.msie=!0}if(s.edge){delete s.edge;var h="msedge";r.browser=h,s.msedge=!0}if(s.opr){var u="opera";r.browser=u,s.opera=!0}if(s.safari&&s.android){var l="android";r.browser=l,s.android=!0}for(var d in s.name=r.browser,s.platform=r.platform,i)i.hasOwnProperty(d)&&delete i[d];Object.assign(i,s)}(),t.Z=i},29:function(e,t,i){"use strict";i.d(t,{OZ:function(){return s},rT:function(){return o},OC:function(){return a},do:function(){return h}});var n,r=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),s=function(){function e(e){this._message=e}return Object.defineProperty(e.prototype,"name",{get:function(){return"RuntimeException"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this._message},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return this.name+": "+this.message},e}(),o=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"IllegalStateException"},enumerable:!1,configurable:!0}),t}(s),a=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"InvalidArgumentException"},enumerable:!1,configurable:!0}),t}(s),h=function(e){function t(t){return e.call(this,t)||this}return r(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"NotImplementedException"},enumerable:!1,configurable:!0}),t}(s)},300:function(e,t,i){"use strict";var n=i(716),r=i.n(n),s=function(){function e(){}return e.e=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","error",n),e.ENABLE_ERROR&&(console.error?console.error(n):console.warn?console.warn(n):console.log(n))},e.i=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","info",n),e.ENABLE_INFO&&(console.info?console.info(n):console.log(n))},e.w=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","warn",n),e.ENABLE_WARN&&(console.warn?console.warn(n):console.log(n))},e.d=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","debug",n),e.ENABLE_DEBUG&&(console.debug?console.debug(n):console.log(n))},e.v=function(t,i){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var n="["+t+"] > "+i;e.ENABLE_CALLBACK&&e.emitter.emit("log","verbose",n),e.ENABLE_VERBOSE&&console.log(n)},e}();s.GLOBAL_TAG="flv.js",s.FORCE_GLOBAL_TAG=!1,s.ENABLE_ERROR=!0,s.ENABLE_INFO=!0,s.ENABLE_WARN=!0,s.ENABLE_DEBUG=!0,s.ENABLE_VERBOSE=!0,s.ENABLE_CALLBACK=!1,s.emitter=new(r()),t.Z=s},846:function(e,t,i){"use strict";var n=i(716),r=i.n(n),s=i(300),o=function(){function e(){}return Object.defineProperty(e,"forceGlobalTag",{get:function(){return s.Z.FORCE_GLOBAL_TAG},set:function(t){s.Z.FORCE_GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"globalTag",{get:function(){return s.Z.GLOBAL_TAG},set:function(t){s.Z.GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableAll",{get:function(){return s.Z.ENABLE_VERBOSE&&s.Z.ENABLE_DEBUG&&s.Z.ENABLE_INFO&&s.Z.ENABLE_WARN&&s.Z.ENABLE_ERROR},set:function(t){s.Z.ENABLE_VERBOSE=t,s.Z.ENABLE_DEBUG=t,s.Z.ENABLE_INFO=t,s.Z.ENABLE_WARN=t,s.Z.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableDebug",{get:function(){return s.Z.ENABLE_DEBUG},set:function(t){s.Z.ENABLE_DEBUG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableVerbose",{get:function(){return s.Z.ENABLE_VERBOSE},set:function(t){s.Z.ENABLE_VERBOSE=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableInfo",{get:function(){return s.Z.ENABLE_INFO},set:function(t){s.Z.ENABLE_INFO=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableWarn",{get:function(){return s.Z.ENABLE_WARN},set:function(t){s.Z.ENABLE_WARN=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableError",{get:function(){return s.Z.ENABLE_ERROR},set:function(t){s.Z.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),e.getConfig=function(){return{globalTag:s.Z.GLOBAL_TAG,forceGlobalTag:s.Z.FORCE_GLOBAL_TAG,enableVerbose:s.Z.ENABLE_VERBOSE,enableDebug:s.Z.ENABLE_DEBUG,enableInfo:s.Z.ENABLE_INFO,enableWarn:s.Z.ENABLE_WARN,enableError:s.Z.ENABLE_ERROR,enableCallback:s.Z.ENABLE_CALLBACK}},e.applyConfig=function(e){s.Z.GLOBAL_TAG=e.globalTag,s.Z.FORCE_GLOBAL_TAG=e.forceGlobalTag,s.Z.ENABLE_VERBOSE=e.enableVerbose,s.Z.ENABLE_DEBUG=e.enableDebug,s.Z.ENABLE_INFO=e.enableInfo,s.Z.ENABLE_WARN=e.enableWarn,s.Z.ENABLE_ERROR=e.enableError,s.Z.ENABLE_CALLBACK=e.enableCallback},e._notifyChange=function(){var t=e.emitter;if(t.listenerCount("change")>0){var i=e.getConfig();t.emit("change",i)}},e.registerListener=function(t){e.emitter.addListener("change",t)},e.removeListener=function(t){e.emitter.removeListener("change",t)},e.addLogListener=function(t){s.Z.emitter.addListener("log",t),s.Z.emitter.listenerCount("log")>0&&(s.Z.ENABLE_CALLBACK=!0,e._notifyChange())},e.removeLogListener=function(t){s.Z.emitter.removeListener("log",t),0===s.Z.emitter.listenerCount("log")&&(s.Z.ENABLE_CALLBACK=!1,e._notifyChange())},e}();o.emitter=new(r()),t.Z=o},219:function(e,t,i){"use strict";var n=function(){function e(){}return e.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Object.assign=Object.assign||function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/web/main/static/resources/scripts/jquery-3.2.1.min.js b/web/main/static/resources/scripts/jquery-3.2.1.min.js new file mode 100644 index 0000000..1f824ba --- /dev/null +++ b/web/main/static/resources/scripts/jquery-3.2.1.min.js @@ -0,0 +1,14 @@ +/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), +a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"
    ","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), +null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + {% block script %}{% endblock %} + + + diff --git a/web/main/templates/footer.html b/web/main/templates/footer.html new file mode 100644 index 0000000..52b985e --- /dev/null +++ b/web/main/templates/footer.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + +
    +
    +
    + zfai + © ZFKJ All Rights Reserved +
    + + +
    +
    \ No newline at end of file diff --git a/web/main/templates/header.html b/web/main/templates/header.html new file mode 100644 index 0000000..2dda189 --- /dev/null +++ b/web/main/templates/header.html @@ -0,0 +1,36 @@ +
    + +
    \ No newline at end of file diff --git a/web/main/templates/index_webrtc.html b/web/main/templates/index_webrtc.html new file mode 100644 index 0000000..472a586 --- /dev/null +++ b/web/main/templates/index_webrtc.html @@ -0,0 +1,176 @@ + + + + + + ZFBOX + + + + + +
    + +
    +
    +
    +
      +
    • 一区 +
        +
      • 北门通道一
      • +
      • 南门通道二
      • +
      • 通道三
      • +
      +
    • +
    • 二区域 +
        +
      • 通道一
      • +
      +
    • +
    +
    +
    +
    + + +
    +
    +
    Video Stream
    +
    Video Stream
    +
    Video Stream
    +
    Video Stream
    +
    +
    +
    +
    + © 2024 ZFKJ All Rights Reserved +
    + + + + + diff --git a/web/main/templates/login.html b/web/main/templates/login.html new file mode 100644 index 0000000..85d4ceb --- /dev/null +++ b/web/main/templates/login.html @@ -0,0 +1,124 @@ + + + + + + ZF-SAFE + + + + + + + + +
    + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + + {% endif %} + {% endwith %} + +
    + +

    ZF-SAFE

    + +
    + + +
    +
    + + +
    + +
    +
    + + +
    + Captcha +
    + + +

    © 2025–2026 ZFXX All Rights Reserved

    +
    +
    + + + + diff --git a/web/main/templates/system_manager.html b/web/main/templates/system_manager.html new file mode 100644 index 0000000..f6f36e2 --- /dev/null +++ b/web/main/templates/system_manager.html @@ -0,0 +1,286 @@ +{% extends 'base.html' %} + +{% block title %}ZFBOX{% endblock %} + +{% block style %} + .btn-blue { + background-color: #007bff; + color: white; + } + .btn-blue:hover { + background-color: #0056b3; + } + + .table-container { + min-height: 300px; /* 设置最小高度,可以根据需要调整 */ + } + /* 缩小表格行高 */ + .table-sm th, + .table-sm td { + padding: 0.2rem; /* 调整这里的值来改变行高 */ + } + .pagination { + justify-content: flex-end; /* 右对齐 */ + } + + .section-title { + position: relative; + margin: 20px 0; + } + .section-title hr { + margin: 0; + border-color: #000; /* You can change the color of the line if needed */ + } +{% endblock %} + +{% block content %} +
    + + + + + + + + + + +
    +
    +
    +

    1.0.0.1

    +
    +
    +
    +
    +
    +
    +
    +
    +

    1.0.0.1

    +
    +
    +
    +

    + 有线--192.168.3.45 WIFI--192.168.3.45 5G--192.168.3.45

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + + + + + + + + + + + +
    ID区域名称操作
    + +
    + +
    +{% endblock %} + +{% block script %} + + +{% endblock %} \ No newline at end of file diff --git a/web/main/templates/upload.html b/web/main/templates/upload.html new file mode 100644 index 0000000..c6099cf --- /dev/null +++ b/web/main/templates/upload.html @@ -0,0 +1,23 @@ + + + + + Upload File + + +

    Upload new File

    +
    + + +
    + {% with messages = get_flashed_messages() %} + {% if messages %} +
      + {% for message in messages %} +
    • {{ message }}
    • + {% endfor %} +
    + {% endif %} + {% endwith %} + + diff --git a/web/main/templates/user_manager.html b/web/main/templates/user_manager.html new file mode 100644 index 0000000..f70c0f4 --- /dev/null +++ b/web/main/templates/user_manager.html @@ -0,0 +1,48 @@ +{% extends 'base.html' %} + +{% block title %}ZFBOX{% endblock %} + +{% block style %} + .note { + color: red; + font-size: 0.9rem; + } + .btn-blue { + background-color: #007bff; + color: white; + } + .btn-blue:hover { + background-color: #0056b3; + } +{% endblock %} + +{% block content %} +
    +
    +
    +

    zfadmin

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +{% endblock %} + +{% block script %} + +{% endblock %} \ No newline at end of file diff --git a/web/main/templates/view_main.html b/web/main/templates/view_main.html new file mode 100644 index 0000000..7011713 --- /dev/null +++ b/web/main/templates/view_main.html @@ -0,0 +1,143 @@ +{% extends 'base.html' %} + +{% block title %}ZFBOX{% endblock %} + +{% block style %} + .nav-scroller { + position: relative; + z-index: 2; + height: 2.75rem; + overflow-y: hidden; + } + + .nav-scroller .nav { + display: flex; + flex-wrap: nowrap; + padding-bottom: 1rem; + margin-top: -1px; + overflow-x: auto; + text-align: center; + white-space: nowrap; + -webkit-overflow-scrolling: touch; + } + + .blue-svg { + color: blue; /* 这将影响所有使用currentColor的fill属性 */ + } + + main { + display: flex; + flex: 1; + overflow: hidden; + } + + .tree-view { + border-right: 1px solid #ddd; + padding: 10px; + overflow-y: auto; + } + + .video-frame { + position: relative; + width: calc(50% - 10px); /* 默认4画面布局,每行2个视频框架 */ + margin: 5px; + float: left; + background-color: #ccc; /* 默认灰色填充 */ + border: 1px solid #000; /* 边框 */ + } + .video-header { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #2c3e50; + color: #fff; + padding: 5px; + } + .video-area { + width: 100%; + padding-bottom: 75%; /* 4:3 比例 */ + background-color: #000; /* 默认灰色填充 */ + position: relative; + border: 1px solid #ddd; /* 视频区域边框 */ + } + + .video-area canvas { + display: none; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: contain; + } + + .video-buttons { + display: flex; + gap: 10px; + } + + .video-buttons button { + background: none; + border: none; + color: white; + cursor: pointer; + } + + .video-buttons button:hover { + color: #f39c12; + } + + .dropdown-menu { + min-width: 100px; + } + + + #videoGrid.four .video-frame { + width: calc(50% - 10px); /* 每行4个视频框架 */ + } + #videoGrid.eight .video-frame { + width: calc(12.5% - 10px); /* 每行8个视频框架 */ + } + #videoGrid.nine .video-frame { + width: calc(33.33% - 10px); /* 每行3个视频框架,9画面布局 */ + } + .toggle-buttons { + margin-bottom: 5px; + } + .btn-small { + font-size: 0.75rem; + padding: 0.25rem 0.5rem; + } + .error-message { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: red; + background-color: rgba(255, 255, 255, 0.8); /* 半透明背景 */ + padding: 10px; + border-radius: 5px; + } +{% endblock %} + +{% block content %} +
    +
    + +
    + +
    +
    + +
    +
    + + +
    +
    +
    +{% endblock %} + +{% block script %} + +{% endblock %}

    %~(iDggR5|e@q@q0n7-F<0Em>f7wq!O}?=Qac#n1lLU-^Y+KKJO6Riv`6 z7-1OB01?s8yE@M&Ss*}63TqytZ{A3opXk(CKdU)+RhzAve|7~Js?8o2*(`b|xeFzo zBs5bX46?~I5>X)-Q_cdh6<|_gZGH16&%f~P@BQfI_s(6|*Z{j?u*_hANCzq-1b75SyLjbkT{i{R3wHEZqi%95{Yk?5SO zs>(Tc(^ve5ntwJiYVg8rgU5Hi^Oui4^min(ueB%~DRr$HQ&{GXJDYo~6@tbXoiUj$ z>L|jwCpO65UpxESsk8aXPgmPs^PJe`d0tPpt67;bgH>RZxUq*xKJ;R~&B9%Q>U?$x zLPRZn6{#2v27ZuBwRN6&`sJrT`5*u7zxFG?@THX@##1lblN2vg5*B755{N{I8W6*n zdHkA0+un`+hGS_c+#u0ZBEWlU-sA_S^g;_rOO_RZ8ZV>^UTVYl)WqWq?@=PEgp|)T z3Q}QGN{tp(N$kLYxR}m-7Uh{wuRi_hU-;@*KL4A)_ov_b-Ve{7yX4>mJgtMti=xQ9 zG^Uv*mZ%os$k!W1qq+OiCFoMa!S<|~8+1`bL!AH+C%V_xf9_ynNQ#Wr14J$N=MJc`qgss?s~YFmo8}!7`?xcm*NCEFXJ5dbQ45&pZgc`* z=6g`;dIPgbq{5@+!?W>BrnA9lNPev4<@*o2Fh2XGCm;Sl{U83`m!7)6p46G6SWlSC zA~S}qMiBuKv9bhZW?E$LOCyhn^PUX7Yb1>Y(TCUWtVx!6Ek|>!M`$;JLh0yxSO3u> zsVNoLPH^~t~g_y5z()T4rCv&+U{kUQ^v?lSK^xF5^wvA`xYSc-To zP}p8c30|LdM!U*z(lb;EDrz{TDNQ9*iam32bGxR1Jd%rKdjUP!F)KO`V%|lMnrokx z7KIN5$gl>QjK`Lp7~|4Yh+}#A^4Fhv;(!0Y{@YJIet#B0(XST6n7OK&#DvMJLR<8yJrA@ABkLY}=m7MsW6K8M1Tjs@wCw|L zh!dnlRjn%9%w+D94<9~!WaaPvoxlFCzwyn}XD=z`RS++f=dP+M5pgb$0ugc6h{*K< zlL$hc&zL0XR#lK;*Cm#8$KmYanjvcx0zWbI}n1EPIh!xaZ%ZYI{g)5_mr0${7`&ieNh_H15m`zHy z1#D53@xT0k{lg#q_@(n}+ry>RvWmnm)}pN7)@7EvH`~9bD3ccvC1*1d%*yeljjeNM zFMi^&6Vr0SoEf7bNNT^!%r`gk_o09qJC>RfD;ZC=Ql3P9{q%*6G6r@rd6cbcpI2kF zVT(3Cb$9Xt^&OX961G9i>q4htBEWzZb!`SYu?8R_p`;!K>Pa~TdWFOoVgoj)5n`z7X;lnX4-L(K^f!L_ z+_`hV^Sl4EwfS~kYczQ=DyvErg>x|ki6CQCZ;U^tLCCbtC;`A`c~w=F55^dm7naqM zRgHrptILu!jwjo7H7lIW9WM8`pM5c`NX4-Jaqi<>WP)1g#aS6 zI{I2PFq5^cv2H*L%mBE<9y2+U)xi%2BkS@D>l>o>1=B}9TY1}hFGO3NND|{K7eNNn%-5yWJ9b07?&YPjC%3n#>=m~@ySm-MgbzYg59e0opYC_!9=se6q5${Gp~?Y*e#P>cW(YR zNvpQz{pt7EMq?m1)F{yC4Ee1sGvr}Lzx;Dw|J7f5N(FTdqf%s<)`>nQQvs<-%1Vui znv7s0ZBHyT(IkLOGl$ATLaIVyV1$IA0x(RZIM2j&>I^`tAEdcsLYgoLl9Css4Je`U z){*GVg?lxmfJrr>jHsGCQv#S0LX8MYg4A6tig;CVhK;2Rrq&q!tQLu4PaZw-vtNGZ z`#<=}#Z51{L*$OwPa2qp2~Ew=^@##IA^jv!_Eia}AxqR0A;st=`b(Rad^ITs`O4C0 zc=V`6tR~wr%!b+Ui%&oKl`lN=nI}K_=!5qkKYDmHLT0diY3zen6=O`{n8>gJ5vFBm zXuju9gC?sGLVWVdwa@X|m37r+0He(k^8n$#yBcl=f?@?f+~ zLT$Y*km{vqF%o!pi>eY^QpBjN?CfAXnZ5k-tH1J#UmuN@fJ)*#RFd@lO+5OCP6af* zX9P?Uh%hx=t!8a|dTH#VDHPnsI0U-jtV&as%mB1k%YE-iS0UbDHAoFW2FlL)*=#r% z_~=P-WO?wn|JJV_8eqCzt>$*LvTO;_BSr=nf(Wt^P$B^dA*zBB{)^|Dv&Uj0nrvZB z6aWp@i$oL(mR=ORUoW-*@awSil;Dghu}AZ7(wmlIAO$dpn)k_IXzJ}XnWa3hhXBJ` zM2;FXs8M2LhWT(XpeQt+MV(b&eCnysefr5i`OdR8ALL{wbuh*$I0UiGAd0~|=k&UP z2s|%aL|elPQ3-jGld|`f4}pk`;oRub>cDZH<#syWym0zmXX(jLKJuk6e(hI(>E|AP z=;R|0oG2{HS?$Zs?FxpmJQx6$Q{XQ87(#QYFXdsB`u49#;5Kt5<1HJdb#Yup;LVe1>aPvsk zeqxvxq$D<9F z^|VkI1{NqH6p6t%y$6)KNEomP&uC;0e$@tZs-&cS=XA$yGp|nVIo+DZ(p-NcC6ZKp zo1)Aj#^#PP)fhsJAepf)Gl(H)oleIOoH+WWXFm7G-}-)JAA}4!B?2gjuw}!La5LA0 zbIz!SP-zT>WoA}Hs}X)SnQm2vjvib2g|GbLm%seEuYBQ|XFm5ZE6VAt++Gh%Meg!} zg{X*BeyXYxy@)Wu7z2m~&5TVI1%igwv`Hc} z+ayt`>q4J0P)+O%5dbez;_V=fpKIlYl&Jemr3v^DdKs?v4bOkPnCYg5>qe9floEJ2 zssRv#f?CsVAR0yn1APhN`NTkE~uE&)C2iBNCax%uxef z=UVUeBX1esp$tfjAqZ(4W-iZcS(d&kDZ`;bcJk3reD*U>eC11@|LRx1aPmaHb$N33 z{WD8NW|@Y$$t+8#YwuNr*pSQES*uJ$xwFpL+LyE0td4;Uw|Nx?r7~L+g5<-|g|*GU z_~B3f`M>z>cTZn9bo{~faY>}JD%^M9{gbV2V{>bGvbD_ynaR1kysc#_B8JSalJC2* zoFb z-OL3MhBd~x%vQb}7?n_e@{^CxYMfX-BG^!kgW-~;;ntR~r5@(FQdbCxlnCS|4kgt1 zPCAE!fu*USOkRXEK+hHy+W71VYejRa(x(3@B~CN|O$?(~6x4=nsL5GUQ{}VJyA9ny zpb8}o%0f_KRzTD!36$BIs8ZH70Lz@^1C>BAWX`cMqHcYCeC+7qV@D2+FHUvphr^|{ z^)1RN&$Cc^O{EbcEn`PBzBz`b&1KB5!CueAmbXg`3rSS<63VKMBH_Uk$3FeUqyND# z|CP^v=97;-dQ2lim`yjgtoZv6uQ1dQLI~w-VvH#UnW~nRj}jeOfM?UmIE37}%sIA1|QiNXN-hc`zQjJ4bGik`{2Ubk)w~Z z&B}UejTH&)vTh4Dx{G|HccM+OCTi*B(DavMO$fub6CZI%uyJK0+7!JJV4$f`rV61} z4KSP?{_gkx)Vk%|jyASuONWonY9H&$B3RNUVM9(~B3Yq^U+Ag>-2(?FNiEK)IQQrq zNYe9I8A*yoIehO`?M^cDo_~=VdF1I!_v*~sw z!R3P@!_-$MNMV*@u%gD;Ong)ynS8^;MXW@Li$7`?K&E}Eg#P@Dmx`S7kj55*2`P8Z;VMn?a)Y-dZb(o~~K%A_?Kx6hcJt;+!k; zJjT>dNI~pe#?0&M>w`gFHmx7VF>ur|hupdx{YnVA$KLQtqMEjrgN!gS}|y_Y(h-}&h| z#>BC!Jp_ZqXsa3$`2v~7*NCbRX~5_Nb};z|7dNV40yqj2P({RaT_h5OQfQe-8aMOy zNFR-5_W$-;#?vo4TG$r@qVNbV9}w(pyscuE2Zi&)a~CegCzn`wX|Nk?Z?Tw9% z4Pz+J2O-qa`^-^pSYiN~wlts*9+j%{MNtT&oX#ebiDj4P#c)`7?*Vbv9zS-tu4YU@ zV^y%kYC0I0ul$uS{@l-e@w1=$#HT;~=<*WIpS@I0tRXcJ%VJ0k!!i*}DxQd%ZjcB- zNtEF0a+nXn+@M<2M;`$MAEM&$(PPuHE`tn~R)suJ5Npt&BtZrL|>#wu~Aj%<5klMsPZDlLXaqq7yV5%#UO->SWU zG9Q(U@!qG>2PKHWFfs8?QZ3SJG0^S;=?BZ&pkL38RRWO>qSlg<5s)Z}(!1}T!Y@1? zV`Q*MP$8C*xlj{C>bY-E+-kHYsN9fEr=(#Ykq=c$<@($Yr2yS{I9YSMU%N}$klIp@ zskaTKb-}Zp6VP`yRomc=w&A?)F`ou2qzX;ZQe}`~Q))KmW)BCznRWiR0`8)-O&*gW+i4NJQ1MMA86NiK;5hW`{FI3RVSy z5HwbzoVzT-Feowq8k=oTYjQcr`pCcbYrpl+{>OiL==h^Qe*Wd7$Bq@l(bndqD29g7 zvRB?S0sd>3HUyl=qeO%ZQJ&{9*5}ThJAL}}mp=cgx}Uo0Uj1KvFKL8*n1s|9Sc5ETY3wV7zMDzx4E zyzuBQmMg8fWTUmV2{YTOtckP1Xvrc@XB)1r-+1fYY5mKGTrrt$<^)0r^@J%nV?qms z6$liaMr-&~0R>0u`wLwcdfsu(n>bNhqR3oRg|nm1Q}u29=OK>&g6^kHjS zbVW!)0C58fjdiS56xq1ed}(!aiXT1y;)S(KG?d|R$-~a7x|&pmky}FW5^LKSt_`DX zf)i`c5fh1JRRsWb41ck)HMQB2fP;Q$Wq%5jI)>Hq!z`Ct9uhd-_Yz4GdtPdxb<@BQ}nWH=m#5JC{=vi7NCK1{^+?h{s(7$bob z?q4B7WSL{ovhuII{Ms{5KVhwtsFjaE%KS9g?}aw9H)NpMU9;JDmG@z_Zi?elkd28* zjU#oD?8UY1ilwv>7@3`6Rj?+b3=t9;tfT}ZByF~Y zV&hI~18Qkvg7cch-X+^T?48$dE{P7P=iwwqfHsD*^EpFvb}((pT3MPFFwLFc0ME23 zyR*g;afEsiAB`zS24;B3eEToodH$u>gsiVTW&eNn{ybckthx_G*IIk;h{)+ocdlEv zMi8Sw0)zlDig^}dHbQ^~+rqEi-G26ae*IospS#`NpY8tq{M?ddN!E-&5~Dy&k^l)b zfrKOs5_3`Gtvj7LGh^6$t@Zxc5s{JSoO|!Nx2m9qvns!=yqS3-BKO|0_8NZcw@Q~L z1nSv4w9b&PN~2;4g9HE)Pz6F%Y54v{#5o5*A|(SnvzvfVFFByCRu{0 zK8F2}RA97n6dnBD?|<%Be)XMq+;P?>OJd>pAX{DE*xueA^hYRM1)n5|=+2OCXJW2& zZ{IcJv!qSa;d4&z^ZQE$02L9*AOMPR5HV!?{o&WXcFWq@*3m;lk+CW=ORS>MNN^B) zLa1J~yBSHcWXEsDI-7>=trCl)<6y*?2uLjVh5GIlEYRF~W;GY`U_CfS1ArKTIk7PY z0RwgjLxp1NipEB}2OYq^Z8CH2I@!i{@QImCmJyNP+QNQ+)E^}&-hS6t|K!g;f9lw? zu3PQ_2-!dsBna2xe1&Ms#2jbSoQ3MN%*>vOZKL<1RoOcqq_OkRrBYxs`s^mhO*%Uo zc8(mMx_idD004jhNklMg^T?YIEs&I@MGw9-iAl)yhECM6NHHF>sxfAeCUut`RfU>Mj+<>HLg=8m zK~MpOk;oWS<-826;CcfvX#kj3@LTWtz;FNd?`~`rX*wEDD<9PB1dTm*^Z=(oSifXZ zOuhF>l9XjhL;hVHFch z_o#b-?FOxyS1o~;l1c}*i4?0YM1d7R45A`2pl8e(Cjz(Jc~0G+QtK517y`7`a;Soe z0RS{olj`D*fKLN5fcqa2T4bAOdfCj#nCCJXiqya)G?tQswP>sl+;gdz-X}iu+2e-? zFMaO!uk_JkY7BvT7B*xeDT&s+s6?O=bC_Basx!uOwXB3qM}kgOe|+At76gHIskyl> zvu!T|6pELx8 zgCF_SpM36b0w$n}#(}X_Ri$ZA_}0a_Rb{`n#`ulsh` zzOt;AmqsE5i;&h`!5VIx4#)BphR`krqm5xQ>ZFte(8cZ<4gZWN1cgE&_cT#Gy|%5% zuoB~iAo3zO%OD`4NDcZQ39YoHDACh=0Pj+>n(&xSlwztq+h1HrY_f6pX}6S)mX7@0 z*KhyBKmF^+KK9Xaq`%b9P!Lp&vCaTU>?UUbm7tq{X@dLnrfVdLROC)muWri%X^F$2 zxjAsIcW1}i(%Cnq>+N*o`7q0jV*9$uc_kZZaCr;dS=jro_8*ELh^{us)L&ughj3?u| z+!`=VQ}2Cq$WCs24pj31mPl@_5SxTCkwZjd42y)|txfMbeJ(H-m1Mn9J_*b@#5RA8 zM!UMGSrqfufACstD=#ArK)kG`z*1Br>0M1L9~cpYgEKZTE4pb=J6w@$=`X(c^>3Wn z@@6;{7cf=h6o5ks8cggK8F^IEv=8Ua!uL1Y%PHr5t#s00cCM2xtINh!m*~ zDiJBhq-q4_8m%kMp<@Tf;f z?0Z(Sga`rxBSMlmMLYZFeS?ll}cmej0mpb{-PoYfS>?(BdB4XRUO zaR>sSuqYyd8bU-HJyroMD#;d)c!3MkK+g7;`hWk;3%~c#PyX>=eDUt{TPE#KD=t}G z(ytgQACjzJRTXd`qKJ?+h|ZYhg%wpjck8!?$Brh5To#k{wZzIJZaDS5kA38;U-_bk z-*lvB!4TxzTcl*0Fk`zZ3Lt>d$P|L2s;13XDoD*zwKJsxqC^A$&N&1#olZq@Fj~qd z)3a+^i_3?7g=^cB-~Z&Nf9L%ly5+XJmJc6W+n89Fxuh?QhSCs}$n5DnUgVCrKNc-r zl|+|$hKNuEQDg;CL^Y?+TzKT8Zgw_f*4U@6Z3kVq9J^ZlN}Ji7rNCo#3qb2Z#83hW zAfd$b5h4&Okrz~x229UwPR?yk1Ev*NsImTmngl4+$A#E1JpM-LM$<1sMSnk#7F>lL zZ>}SCffNW3DgrP9Ak;=x#EUV|R$eTPmdhMJ_jljAlQI%ry*ukfeluR7*#$DPzV z0ibn?s(yy9=9ZR=yPnL3!5COo1XximNCF|inbql6zxmZ~eDk(1e)-Fv`}`Lt1(F+D zmmpE<5&;q)(xexd5sk6dIb#Sw)Q6ITzi?r!5{}<^Z9W-?svM^FkvHD>xJTXm;^#f< zyB~Rq0$Zv2E-5BknPtR4HJF1Glob>S>qgWfs77mhL7MWfIvL%m^G6j$U=C@Ll)joy zr&-$X4M#;@ZH`L@d;I!SEb!(3cE@kN`~B~J--oi^=@h_ymDx~U6fKeN{f7w zBs~D7coSiLO*NFcZGr`DqQ725_irwS{m9<=4MZah2v#_J_c1aTv(AK?TcUgK3Xme9l46Yif*^tGc}y;BURWJhfie%Ik(Nst zn*yDtMC?*Y;yM9;f83x1bpFa?8x-tVXAM&z)f5-nycvarTp@(X(Dvo@+W4cN`rKcA z@vEnfA38kjEsc7ImRGDbM#UNw5l85&DufWqvZ|^Of<&)V!Pul>?2)?nRXjnhP*fyD zifvR<+>w_gggSzzfxE?k2(ungiV9Ny*Y<`|0m3%rfdpWHz)*~O5RtXU8H14#0-*}B zw!Xcc=cNy~-*xuR(|5B%(jTSP1%|2j2*x0mzVcpsF4dB=G)0i2n6fX8HHoo^;m|^l zP&O}|9%gQFIeYd~pYp=zKjTS{J2lFn90NjN&Zpbs#1X1mYdtf>OvMhaX@v&&tJ1VM z03hiQi_WGO6j1|LA|V8+tdMbJ5=#0U;Oqu`{9}Lgfe(H7mT#TD=G4QcxnElwA3JjG zZFk&0=r8oro(K$w!#ppYB><_@ELty|&Wt>`rGZ{409a6EKt~QFeDjvuH#fJhIldgK zs#%0P14>sX_HwvMLB*(^wBhvt02K_XKt{z;(#r!}*qjzjVp9;O2&6(Ph$DO!f; zi{fVQm%41HbSsJK(SW8L1rWigdaS+jsB1`pi0ouq8H2sSp>!}BZ*SawX8YXgH~~fp z)>@EYj7goXs!G{MliQLZB18iKu@fD)vxTBH)gQpjKH90yRB=yrX6p!H14$KWEwomh zwWN`VAfg82o};lq-ZaTau6uwgstSOJ3aBu64qhQBSmV;(0sw3m%u+eqvn~l^i9K*pZcj=AURf9! zJIW`MvZ?^3pQI`?qJ)^NsCUVFChE#-22zT2wQci2Xt+gHK!{+HPm;8k^)nX8%OGm{ z4!-iWGw=Dp?|uAZpXd)4D^0e~PZk!J(a`O8oWAbVjg!fwEOJ7dmqo8PQ1+2qyuD33 zC6IAX>SE1im9$s59=m_OBN@AMoql_65md%`_dTxRXr!*LuHSX~+=*)rgOVXfpc*5y zP1}kYr^`O-G`ljh&Ki7ETaYZMunPoIC$klVnT0Hn6SP~?;@rlVDPgoiMnzE-#Z$x} zDa68^S$z=hq0#Qwx~v|HrZx!MfJnnd6=PNPHdF7(*jZqeXCk9Od8NkK-smu>SN02o zVeq9$D9h5TvN4hh5qa-P!DAhR2Sz282*RId2cZTX7CTwA4MFPOBmjyMRa+NRR&eBt zq}ndC^YcL%p%@WV3#cd%VooA*5Jf<(LS(#%S&(R{#XO0G(9cq9ZC+HWYK+^SPNwD5 zI!j1IhMYlWB62Pb<%A5Wurrt@iAq&Wa*%46!o#mSb;GG+Z+r8bj;<^&46PAZ?7_C5 zCaGB*jV_!&PelE}2${*Ig^xs%jjB*J0BsBNNVXI!kp)F#t1KXDrnODv5(stf@qm(w`y|+myK#s3FbRLHH&G^MQzR~sD#Rj2+AM`goL)~ zVH}iIn?}dRy8QeE094sI=bWnAmBYu2q7ad3o+maj#(2*tg-Vc0`kAvv^U3CTdt)?6 zAM=<;eD|Yoe*V+H|NEbCs+vM-fz)f2=Y?PBIYK>m=FX+%LxHuZ{Nj=2qJr^wO3DPH z3I>4y2{bZPA)+Wo;2a|;Sgwm1NT8HD}YGoB`FIQMUf3~JciHw>1TiQ-52s;$iSG}V);G35`Ph-;p(>btYAuH{O)LPYgqop5+bui>$>PeNS!aSm z4+^ZtWo`{1=h9nmy>&buj|Me3W4>xwI)31liQQGz1kG`4Zso|Aj3@@`#&JX-1R@+) zJu`1kij7I&Ug`rGGyom|>f(=v#HM?eJxnvaGF!OSdYuU3UQ!n@ULso2v9&dJ&h*kj|LAg=7Zs~`5l|%z0Rx~!@?J~;5y5a| zvsNb4(}vSAQkJ*f*r2{2>h^TCDr=aOn!u$2sCT4DQPx~6HOr{2h^(<}stRC06wwkO zfl*LU6W4~QHpPx6I@?HKKva3O*w3;o&nFR4Ih{<3YReJ~27P7`0itNoX_8pfz@Z4m z#9?^Sci;Sj&wARkp82$g-LQ}m{XyGg;af)xuW^LciY!kj>3?B<&>$003cCRmPau>JP9cJ)c`OyH{>ptM}H9j?$VS z%?Vq%dQP#+pS00UO_Hp3Tq3WofF@~j{``eJuSRLc1_@M^Rh2ZdBVrR_g!(qxT`8b@ zw@fV|xg;V4 zfuL!YGmBqH^q^+Nd&(M`>xoThkkmrWFc#VSI~jl)BQ~R_Fof!TL{TO-1(l+xnm*!C zCmTf^8DKFrGeJ;6oqZ>IOrqTmq0u!|P+`>?r4K04IwRdn+pAzKD2W@^Y%AQO#H7I} z)k6`f;;8j%V`?Bqpp*z=siq<-SLMX#+)&!4y$nRv7rv-Sh^$GHtfH!_ik>s#%jKov z?ceyuzx-!!f8H~na^mp9(g@2*Uifl(abOV3V%rfKqgj?k9)4y`jTImTBZ%rl4eV{> zWk}r2vPwY2SWO5R*L{S=S~SGs3DiIk4T-Tqv6u$e8*Jr1>1TJI+xU%leelme|HW&s z|E}$#8n2!qP=sJ?#7pIj;(cio1E`hOW*-@9qW^6G0Ga?%T^Q4Kvg*#Q3P>%(Fvt#i z;qF~f-?{CS)lrB}!dlu5FMfMw)GNTH2u*jB6m-^uwuNzXTBF7*V1roD8XptCL8Po< zQj{yp!;RIu)x){78%GvSv6e(iMhr=FLmOql7zgWKq*4PWzo^ou&Q;DY_zrhQw8o5v zx{C?f01%qnU|JS=S(RRdtRS*zY^)uz9gIdXHdv!QPjnU18h4kW;+WYTd;H$cTbDix z&Q=I&{g@qX_PaV&^xco^7zY(lx%w}TW>gG%X~u?9m3TzNzTarBfZE;X%(C<67GN_YVf>5O2! zJ_N-E(np{mqRL51L>NLKXOS$LB+q#`I=r?~{D=Seb6@`EZ4Z0I3muy#yaP` z_m$6GLN=i)6o6V+cs0_T6q`r=jy4r)_px+1{;-{+W_{v)VVdp!Ss3{dBQ+xs7=w{+ z*Lyy5_t_AOVW`g3lL|p-RvOk=$oBr4nQYzXIk{qAT{OhjUaHCn0=T&~-5yUHQec#( zeQ|6HdLNA1f!x0&23T992msWi1G82GRKso+S;({GW#ybh#LbOW3B@3Dsnwo^SG??n zkAK{C!#*I1F{bjRsxmV(H{DqY(O}#ocLg!7{K^3#SY(9Il&=yCls*Kdbg~9g-Q1q!g$NiV0*nRNZ6l8Zc@PU~G(1`r#t``lIz3Zr zH57Tsk%DMY@0FX6ml2Yj0`c}!H)KoGykut%9DSq%v?R-njDbyY@fGUbc2UDpIx(lkHOZsSR ze>j>>rx2=RhZl{XVl{d4;~)8!fAE@PD=^(IxyqfP5W-+M%u;6!S|lO@jgZ&KW=u^S z0Go@56GMgFfuJ%V8X`+dC}^O*9lI|4)r!m>xa$GCANOaOxu4jOFo{T#Bx#auZfsw;aG|p; z(Ph=qWi{FrTW8UKWM*p<1~aMT?Akb>vo?u)vZ>j-YX0r-^nf17w@sum&^iUf0MXM_ z#Te}pBo!pks>~M$8HRl0!d=gJ^5cH&&96JYLQ=voHG^IP61=aBMPp1^mN836MBWDu zV#w~S(};5AAt6JcTmg!64#_Z*nluP}>C3nL*I#?5n*Ql?YiWNG&}~l&Gzqg>Ypt~s zG}>jxn8*-)uy!A(4F zP6ML@GRj`q$9xt)kO|BVS-05S>ga7+K{m0+` zgokfj$d4|M76wT%+2CrLSVOUuy1^{V(lk{?5p^!LHi_2IF39B7IA6?ct@W%G%e1V( zBqi8S{L!C${8N9rxP0`h-~862AOED=?>N1=HNEco8@D#cF<1rwQKK<)jP4yo{h@IN z6?b}t)WI_tW4!mwieN5WSXIH;a#w2n0|3A-w|c)~yRf8P9nQ6FN7;}M35O~%sVAIN zCG`(~CR5ke07$PJNjK=QKA9KDeYYyPv5bSF66D+0I@wcY8J zSs!1URwIaYz0Ryatn)$}99qkh*}*Qi?P_M2vi7ygmEBRDL(RZnyRLs{0HXc4yi&*U<^+vnz--dToJ6#l;;=ty0*2~7@t$tz>mu+utY;ME(wY6(b zECntdpbs8EvLsQ#T}o_UMf+D~oyAl@gz$=*3TR_eR+yAxkZdfGu7^zk=ziP8v zt)-RW2S5CYU-|WSU32YC3oA#q#zkI~N!p7RS&}3ngq`QQPXJsG29Z6m78E=a5dd*b zyN?%EH$hPZ6bX=stnS{B_YK25=Y*QVvt(a_G3+I(uv>`|-ED?qx6hzP^LeC`}w~ZLTjZ z3_v6*4)49Hl2VLMbq*dom$r|tr9!blBU(PQ7ZDiG5`jb*tD?v_V?haRCML}T9=Yb^ z`#7<=5VM z>z!v#UVHty^XpsVNs?vGIrhPrSddUT!r6_A9SiY58o3xY3q>QThO-GXhalD@EO7el zIV1~cwMHh+-1DoDD^O=`b*F*a^4b{ZlY+ryLRM>Lm{>phKxE23kb5RLhjk>hAxK%4 z$BrFI9j#tC(@%}n=_u7Vz4oPVdE*PU(qamSmKU}*)|mOk$!j(?HjPVwOrDon+K<6Y zj09|*NLh`poI_*94+)g&eu**L*i`DpVuIMfA@&L=@;rF2f()sc-tDJXfBN72yK@`U zV%->mME<_kUQiT86%?uQZVgfx004HDRb82MKv=r#agpM=`>AxI zfg)l6V^WxdGDq?$T3_4no)L`#h)C<$UEK++8aP zd3j;w(Bku-_sloF?v;m^dc}6WIC9QHk&m-1L2K4GHf-X25J0rnmZc{!vlQwaFUXZ4 z<6Di^Qtw)8opa7PVfgabZ~dM3e(>X;_~T>OT)(!ly*)0D9X+wJz7_Q;qKZfju2VLs z03v(q)1990x24Yf0VD0;*EGx4GBcpr+Mb+SUDMdemSS@&oTYm4%Bt3AKl-LF-2g!q z5+$Xe&Wqcc1fWDjR9GtyC;}K=UqnQSoLKizq&2Dchzahbq-d5B;ljrF(|`8)-}tQ$965IC*4yr0 zSvfHnEqSlKUVme4b2J?G(tcT%#u#Hc z0JC0C+RR^U8n_F0qX5{bWNbJSu_o=)x<_SAnyjkP$_0QrMFlNrXh#-?I(Fr(WXH4+ zn+`l@u0LUSB4>x25xqh~?pSlPwP>vlQ96hMN~9GtfZ8%)wJRjDCaNOhjLbn=S{`ih z@iiz48{nHj1p(PCF5^u?;=qIWwg#2i{tTFIizU{pw?Oe1SK-A3J|<{#^B96-}Ax$ z@=Na-ET1U6NwdXC9uQT95N$sjm*Apz3A13gD&FIDG*4#_r#J5(HVcWLQSvC z#uzi5PDi8Bc>BWA(%>s!{@N41=P~2y`r&ho|ql-5Mz-8!vzH5B|fqz3IB6i(GD7;9);wU*?lZFG+hz z8Uh<*n|-HN`V!lDg2Wfnp<-9n-Ldc*HL5^Fc{weLqTkO3!ybz-tGq1B>7$Lsh(F7yGosoEHfb3TqOKazA zx5d3fcC*giujL}C&4y8<`T0@XB8tegC`EuU5j85P2sKO@yAut9a`_VUx%|tndqNv- zj2-l_N;sM1%rQfO-5A+H2H=4%yOg6eQH-6DDg_WSUKL%E^#{(m;LCix9m;V(H5MzB z$+MpReXslBA9~bHiw1C^H%M$c9p@4>OL`L2mlXkk2x?@(?o>noiO#L7-6bWv7n`vN zs-f}`HUun*%hELM^?IOm$6a>~MoZSw&;I;xeCVSe&xQ-%y!E!U*H6;kcrrml#@Vtg zJ7Y21T1aQ!^nqNRw9RoK<~ogGmW}l-UxhlbAQE#mbzZR}s+Z3$UYY$QfVE>nW_@$R z3p4YMBqm;RwH?U)TX3Euw*`xK^%yneJS0e9T>$i|{lUl>Qc&&!TN!#c<8w@tV^z<-PLLF9q+w!##-{;7e#@H zS(X8rNuDdZ;lhed;TM19cYfv9-!+~Fn~p{cOCbaz%CesK9O-L92mm{fWfECSzta=+ z0G60mhDNEinrm}&b2^qbxD?8I)Qsb)XpnTn@MiEp=tQEF-S&%{Y-dVG}Fqm$wkST&XTpZ3LYE4JHZ%in2qGSvq00fB$a6nYxrX@vP zj9bUJ?sJ8<%K)5(hWGSnA4sKyZDzCXQ-=rulgV^_ee=+vL8L=-&iJZ|DsS(d?BY{! zr8S!bM6n`aePc@z5REZT;K12@kjQ*=rsiVYi34g|jslcbh0dZiAylAjfwi3aeC_5_ zhko)cuYKB+j^~@(J}-|hI|$wg4Ev+$q?nASL_|a(1mzIB-nC6S_O#1(JDa-0&rdqd;Qd!e4HzDFG)3URaHc>*XK?o*JYi}-7i$tB9RIrMiLrC z6BzoVm92^Y%%6YZ=YQ$f!1UKPi;Zbn3T;e^hdule)1sVCiZtm3Rv#oy(?|g{8<9Q8 zW)9@yveSH$mfEv*<06;T21z>W~I%mN*A3V!Z% zv+v(qQQk}Qm+f()i;qv2JPTUZHtl|T(TLK{(U?2nzQ(nE#ZUv(m_@xNNfMnzixxe|i;aN|4^muja=%FE3lXAM@$T>^wD}$!j>v``5G&*$A z4yuup^Vg{}=C2M=t6^Ic5o>MqQ0jx!gCrs{o>q%XD_h$Ih^`zt`OR;g```cVf4u$f z)k=(*w5r(H9t&=6O$UP!v#K(Yjn@+mPy~&u3Xwo1UWo#z$eyvAb`{Mw@{5fBzJTky z_yOBU)6ON-1SXJrLJ(yOeqJ&*^2bWF40B~5z6 z;V^`d=Q&I8p|D0QF>!g_^~b*XmA^T8Wbq&U*c+exy^mh#!HL5Q(~S#8*%F4bNGyqn z0z*VvHc3OiRHo`usK6NTie#{D-IBEl8t2l14^nw3SsBvxarGa5<`>SaZf_S_sS8R< zPJrZ+fXqe?qA2&VC;_1N?EP#$;^glB?qzKbYB>tps<>|GY(^3QRJT3_QlP>I*4PD% zVk)RXkax~~V4*+2rN$d7fs!%S`w#*nQm>zl`aR)tvbCC#cam4z=O6oBr{4UASG?%C zj~Zp*i;yD3)KqOIBdRhh3$mcZhSzO1g3e=8_v2bdD>yFt$o2yOA`*fC8j}vrt!>zJ zL9P4gfAfF-&6mD*VY4XJ2qv)`fC5E+TUCvWq%iBvyi>Y&$ARoiX1mmm@ofJ&vouw; zEUP>(R52EB#zX;hGNJ94FMZnmwmxaDk^o2m^U8;|G!y3B9MYXg^aFVSi6Urs{_02> z8gjnkvh>bai=e>$L7FC{#kL9KW6QmN{I)l~@+D6+3gYunPF7dfmKPR*i32#7mfjPQ z(yV}X7Q$~r8CTa=EOPdXi1)s#DpB-7Mad*XF!ulZGr#;7fAvMN{Yq1`1GGsH6h)03 zKcw9a`0`O_Jzylg=OQ!5R|x=xA)l7h=@c5Dx>aYb?32>sO8RWZwGO06Wl;rTAk>Q- z;lMO|z)C%HLK1bEA}SEGTAL&;BcjdC&8^L~K|fhq=!IhQ`r}Lg_-(I$=2ITmBgnV6 zjxP3=M}4lmG9fxdr(h+J3B`L0A%ucJ zmKGP+RyRP6p`qPv_0oQp4T+3`6-5P7!pO+cda|ktbwxMM1A1CUiWx7+9@n^|sTBYs z8e_Jm`LvWT{rxxp&Hw&ykDR=DtHd&ZsDepDU_)pPh=36`vDDc}UDQ?Aq&6q7g`(zz zhL-{kHt%~|VtP83nzadHt~0qcOIjqVz3ibnx(w&)p_+1k0&N5QA}9*LNV%d%%V=YJ zxAvntSAa9FVY%GtzYSEumxy=V>mcuYxUFAo^SKJ=y;%#h8EBk0k}g}u+-PW1bS?E{ zMhXH2V~i!r5*vyll+#db4jjMY#m{=ft6p$?#SX2O#k81=4bqXrhY@jWbG)*$tSljf zBuT_G)qL;(JK_HO$sSVM*(ClHRR#zE0Z0`<6um$h%ytgvH~s(nfBAQZj$L=lZD+FH zLVvKptXb*|f+4VEfTgtp<{9(q=01C0f$n_1#IQGAgzwQ}xC+^^PMX}x)nCbOvb>JW zN+zgbTcO<{f;~LqS?QUOGK7)1SaIgMtUJ+L_sN~~B@1yn*r zLK0N~W>p2F2o>Pj?MiwJ(@IQY#TV8HD_kG!5!`3+8AflNi>JNtFNEx-_{VW2`U1MYQ1;W zJBX>z!U&)&A|Y^<^?Kyo_V$F(jfO)bwhXd<;rz{~j^xv`zS?@l%bxS2uX*809~=io z4&Ga()YyFLC192&#k4>`10cRKNXiOmRT)qk9~M*@R3oc$y((J$E2s$FJr?WolmI9S zL6uhyAG-a{y9dLSL2vQy(-&NCxK?HV^#Aq0Zu!2YWUzRAZGBSu(6@;c)6|HH0*eI& zFv5tG&Tv~KAX=+*#11c0JDy5fXD)V!X{hc~sV(5KzVqo)d}n*ChsNscq)O@!S_4*_ zRYA?tYVchhx+0vd%$=gMUTd@OXnURpCZ@F=FqhfW?gkmD@l>HvGzjg2gw6oA^V%6PbdA}0{dve8&!q|sCa2<+YZ+^YRh#+N(4YkP-}x2$x{Xu zAdeKt&E~Xjdm%OQ1Ld;3k-NE7354!5n9rW@rh7eKaSsnjSNQ(^E@sBM(@bt#xHe~? zp%N$pOOhmMntJccGEY-SL>p@tw#VyP0@s~9I@w+;$Ez=S?hpLqAAi&F!in#iGR>n)w}^MIdDH^w~3MFSAK@*VzllP99s` z_W$$0{`a?@Sra?-;z|zylqEf3MhHg5Xo$i6=DzD(#wF?vJG8OT*}e9dspg{=*>Rud z#02NI$sI7M9Yc3%7UDf+hfO#C&)J^c=(0UwE*BZqcCM8K5Y$vbXCHyoJGHh7a9^5X zA28ba>~+-ZA%qC}zv3A=FrnGoM~~ z!E>MW*0=n~(L+cK!`{H64HYvhf{&8m4L-d;f0Dzg(w3jA5 zMYp~&IeOyQH*Ved5C8FJ{^pB+Z(WZCM1idFL0DkVN;}m3-XsTdUkf4@MG+$a(sa4s zO%QZhxr{#Ajl_v=V`MC7S~?x@Ks}%Yo06R!d|`sBXpAdz9~i7j5ljdHNf#IT{XUh& z+H`#WdCz&uPyE;$9)3e|?(~)~3Tq5u0zkl`O|rXtww9wxYkue}&>*!P1QF)ZHJ^yc zRV9Waa4`f{MQaj7Q&knBX?bP8)1!YNJ0)t8>2#`{ z_B8RM?u&a=g1#pLBj&}G)O#-?WQpr5xc5wI6xb{FbgAgmfm}jnN&o>HXkr}XrXw%5 zSR5r41+@q+gdm<>LLgqiGl=-DAAIJM{>e|h`KFWh{F&+XCl;iX&9$vjFY6^4bMU1H z0E2``68l^<3RCLDptPy0ePS}A0fk^lr6ySh0);diUf9?)iS3OR#$){t|M6#k{}X?9 z{Y{U$?aW5nQ$WW;95hK%mPj_=9+K|gCFQ%;e`hduOl|XX9>5YSM-Xv3or(x`th4&l zxFNRazf0ck`?Ahjn`T(AT!)UAmP+li&h1hMHO43(V6L2w_=)0ceTJ|H3c5;}f6xtWd8~Mk?5Ab=IbdGbjXpWifg36CUv+uYdVtzH4Q? zv7JzL;?QV)bsef|VK5{xz6|WelC$KXiAX@5DCasQkHE06vhRzD#1>s(6kJ(B)*s$> z=hl1Q|B-jR>wPv`w*94V-g?)Oqt_(aFbFV!O_Rb`T`mf}e;Z~GS&6Kf(J<;hUupR4 z%J|NpvCiW5yZ_SA1NqL$CAJ&|6wnqQqLB-9GMNyh3xmEf-skHM%7@>4;`z^h$_swr z(c7C_N0*0E7G+*6^iu~(F)brX!P%4$nOP+6bE-S>Wmm7u>aJXhipXjd47qG$TYvLi zA9(+V{~*a03s2kA{P@Wm*EYs6DyXVi+OISaK?s2!NF3A;MTz0~nL4|wgIq?P5s?=* z1`$zMjB!cgioEdN_j(IuS^6Nxm=L@%MgZ#ekW@1?(LQQNbRO`s$5$@N_q6*p(#(+T zvZ3vugTv0@VBW1pnB{O)X7AV5XzRvzP@z{ni}UBL57wTyzQC(K`t0~MX<0J{7((dx z`^B^{M5^q4)z1cbo+ri*`)T43wUTn2kUw?u@K3z?waR|UXM9BoJVqU8nae$?=1MU)qY5VAC7Ar=&{g%5*Ke|uZr^Si(I zTkrlLr6UHLPrXYXX}i zO=mCw*a4Zm+-zQ=48EI=yR6$aS2fY)A}6@m@n;u2$6wa{wElnRxpSz?*);9JyQgMm zKp>(#&!^MraNyWO2*Hwzw_n7(XeSVR2|4fLXf0VwS(dm2 zhXc30wL0ukHCbO8n1B4XfAE~AK6df|l2H!U)_Y;IXT*f*Ttm!z?%9P9 zT#}SNO!AzPUJ*bbod)>KU;OpY|MI&q88W0^tb+BPvtGaXl?|*3yS)x}HwitE`;qJ> z9KBLGn9+xf%n+(|!!2eeLTe2Xh*m!2phZ=Vi(=#0;lbIvzV`4Nj=cTH|G`V2{fM3c zCshWL0HXKG95H0InScT)O>OyJ?T}-s+|{f$O41&)s<8oZJ1<>7W8?npFTeJ`{k#8b zS}3{U_B2?RC0Tzwozy4O<^e+U_r_H~Ne|@PBlldF!GSt^@XJNe_RKYjtE&1?uv9D+ zQUEBp+IA+t_Qc|wUjOnpzTyd7!S;poCsr1=S1*_#4y-S|F_uLTwe4!rfH3L~7x66j z+&(Lc3eW_Wq(2gJ;}X8~)!Tpi-~2lIH|tVSNXt{IJT;Qvo6y+0ju%et8$Vg%2H!FcANwSuk6g< zLAivgo$s*qppdpr#EweUi+=x-pC4>f4|>@PoS+0s%(Xq`oJlh)!ufPdrCeF+{pgRr z_Bqe|o}q(kx;9KPBbjV$99mqGpb{{%eeYQSStAZZcZ7%Ut<4qyoJ)P+Bgd}Uo=i`l z+xVaU)xXZY^cGgW@vS>-HlideD-Qtuet$aNGSt==hxs~CnHvX``<}+-K(0Xcsmm@a z_do0GK<;&k3>I@7UQv;$F$M_?sYvjlPz^WSczA46d;~og}@X4_tcrski@kC1is3E8qCm zsT&`W7k+bNdto#xCSwqBmO@n;+Y-Td{OguDrQ7=|e)653oCAT5I-4cFuS&DcZB3{( z{S(dzF{J${R{z%ANpqwK1WI$9V)4^`2VK9Nb->;0+#_hc|AE^dht$PbfZ=Mx(p_Ht z_8N8`r{*K{p78d!J%9T`HA=B>jW2Ul z$g*rQyQ3*z*Kpfoa_<$nqQxcq zxDhT%ad96=({O9{d^x6^J!Hpf+;s}l`0?D4+v(HUKQDi3TleOJnpr9~pHxs#6;&cY zR3d|j1jYbyx>6A{VO0a29{NmU4}4lR@G!u8Z^V+ zBC{v)?8{M~5@%8KH^1t|Z+p%2k|`{Vl9T|IfGwg5U=f1tX8~9dO=5%h3TVJ+-L5qL zzG!*XCGN2tuN?~oRRsnHL{+OwR4;J`1wuxGAfC{XHD$pZ)bvKBn##gI|5yL!+@`K> zRH81;`rBJ2Xf+)4B$Pd8L@T05Oa?@*H4i({GQn9BVvdto7MV3*}0$?ibdj!3YYXO;sHV8$$rkj5QexaH9a)vFe<9&*AG@8y%Yq_qdMGw64=C1Pc_qz7R`ZItSX=4EZU`O}WsQLDDpI$b07N^|o04qo11rH(*-x=9O zUOcmcW;R8SHZW;=_iFy$ z_y68|Kk%{sU}-ujko_tK?L4>Y6jZFh%8 z#WaFSgp439lYOk}6%=MxV?{|+P1d`x=6~Z|ANalB|D&Q5*EcL=tPuudsVYkVL8NFO zB1Yo2SY!B|o`icrx|x&i`#8H1=H7ph)Yi{5+GT4$FVV?pKWFO14ri<#^V;-)r1*X$ zU9PdBs*Ew#IRxXq7Y+#_N?GL_8n)l^4_@`s7e4d4!%%Hi8TwIbG)#$*NJFTYy|vak z7kjG0+)CI{(SNZ^*#H(n>Au4>YaT+g^dg|Kr4MS{iEEFXTP=U*{U841pL}j>>;)56 z$4Y_0CD~*$2_ZDb;Ev!I>9;ckdm#6o?4?q!Ms`?dJD`RzYs;ctT4ZVT=mQ05{a}(7 z5ju+*b?~dvF2lBQr2+#XDOn;92r9_F$hVFyXHR|7V}JZDFG3H>u(IH!s>#!!sydIT3zyF;c znTM|I82ltjR6bk9_-&zsWExWRRd#`IglxbCg=c%+W40#)J^O z4@9JqtiR#ozUr#XT9-9{Bmj!UX!DBG!D4{)y&wGj4}SC$=hi2AfUP{FgVA`qAhOmb z<9s?C4vENG5(!Phz3$J4ST|nzPS3!BT!D1M@%Q{_wo4+`r6Oub)Y#ZMKxPm{#0TFW zWX4c2ohJRoDzAXq^^zb3Qfwlu-+sF7Zde+2ap%^Nn$9Ir?8!Dq38gLf*4&tMdB^72 z(02Fu0GPx0?9NVW2XhB72O65a=s0nmbWi=JG}l8!b$McQ%^?H;a?TlNtE$TLsd3cn zrDRM$vE%KvBMS@J!sz^+-+0b5p7=lf)Z4B<;d%x*&nbanVnS6JYd8c$6r)*M{|F2| z2F|3r>{J0zK(QN%?|7g%Pxe*6w$=iN0BVdee7*GHnxhu;L<^nS0W-oR4`~D1qs0*0qVtYr13Jk^D{rBIDb)lNcVQAQIidJeb=Av zA~owI&8~D~#||!R=h(H!zkk$j&em<`9?_lgzRqRub)O=l2!jC;>G%806Hx8-`}tOp zr2|C6Tmj8WJ1;F)QRLKu?%Dxw!KDWq<9AF#2x*$CVxH$(LXz0QU_c})Tu#T7CW}3X zJU)B-UC)2^Q~$+({}V?RjR|0Yom1qX!j@1)0I2D!9J7QMn^U}&%O79AN%I5r)_V!^twGQ5nYm+s6>c}h*&&=fqRtAKal&Q zIOp!U4Ya2^+cQB~OFX4929Z^HhBMw37)BsH=wtZpl7{Xatfe3<5)d)44^?hR`&KX% zlg$e+c-E8t;agsP^EDtFf$o!MX|qjZv2mDeoG z(lo8|0sxF9RTUNhLKK!*z9yZ6!|Wmt}tWjkN#gxmf?|IaX|LmXs z#KTUF%JJ3>M;D9fR?i>-a>a%m0QevZ7QlkG>Y*^*{aRU-|p5-fq$*fy8^=9v9Zy%(*I`h7g=djBz3of*4~AAxOZ; z^bg(a>Vrd((QLubl`CI9-uJ*25sB)|i=dse&YE98v&*g?MjK^bmkHF)CaNeBwhFKP z&Ov7L+b`aGYpt=UDpggA1Y?l7Dz~?ssh;@QNBzUMzUJXKEJ{9I?i2D9%W1zqQlTm^ zSu02(ctlh%5uVx&jWsy0E1cFjJ_cwhVGWrwfC`?x_Sh}AZN2L~ANj(Uz8)}jnyzh5 zdc8rvKQzXOgrX>%wK1O_g@_`)tX+z;a~*KZK42y00b11|B7_!pno~_Hor}xmSHRAQ z*erH7>xI|k1n*H7#RIuo5ddLkBC^(Yn@;89NtU`Neb3|H__|j;{rj%l-q^}q7$xT1 zncEx+36lbW5g`$PSidb1t52XLKr-w6({VZLH)=Ymy=7;jpw?w%j1mfh_kL~5|LSkN z^LKymquFpNFm2}*p+jSPy#XSsgv1$ZiJ94ZQm{zCBFq#kmUkWe>ar6D@*R}c3d^!A zb_?#>Lsx1TQG<27bh&;5sqAqCRr7sYNP6qEv>D1x zkRTk%z)aUh3)ilD)YOHF`{}66r)ZQ>LyRqpSR~$6)7QoFTuhqCUj*+!^Q>6kT05~n z3J4%E*iiS>1O*jrSl?6?WEN$d{k1|{c}lTR5mC*oh$n`8y85m@ivl!x08ajbBd&~ zSxXB!M1+=MtHG+&x%>Hb+oBU&Dxy}=cfT;>t!oNg+Z&-_DZ$y>+Jfn@;WXQ&GCDt` zxnJgPi?*F7?kB!^Ngp7qDY{kKp@iaF%clE5`ZWXV$4(ns44>l zGJNRp;@aBU!s4(jHV3@~g$dEv*u9ql36YpD!!gjMOW%_;a>iXIK#HUY2%3^OVGtGs zRs;l6LTx--ye~|huBo+~uS#})a}Sek=l0r?AItDdd*AT{Mx67aha$t57Y6+IxwU* z6D0-9Xc;3l7|3jRYIU%O=!{>#@k1j!CMkkqXDum(5V91 zz|Z{rd;j*oedEs4tE^5msk|Urw8j_%q(sr`Q;jxayW`@Fl~e$vJ96`Ku?5&p^rff! zV!T>=y4IIC)K%og_P-A2$Q|zordjP_1d$VKvcx*)5|a>G z1X5vzpvoW|O}YJ44qP#e7C}%nbBO^377(d7L6m#84LoEes<2)2RPQT|t=U>biqTFX zitS63If#e>$5Mex>O}nb$Ti1b`I6_ntPtU!^rRs;^h`wx5}*hj`WP17VvoO8xt#7lb-L?ny^F);@q zh?m(SuB!D3O23zy#xshIuT^!7yy!&^3Kr!iXVP$Jlm8Bmfz2Hk# z22|yM4c09tG!Eo}B&b(vl&Wf)xjHb~WEXdQ0bpMa-xa7c0+6^vD-Zj<#1beIsz?m4 z#45<>Cf_IC=0irBP9?C@8mc`(vJi7XAl5i%O`1@sa!UnBam~@;D_{Ja*Z=TS`xe4f zuRp#_5(=&?8I=%1FfI|WEGRAiJs>G47(&7Mq)_Y{(Ov_!40jDr87L|u&Nkt?pGZ(4 zqDfw)V7I6K@R6nd0N(YhpZd?g^bXrwLTjts7n@U2lVsU+I!Sw(AygH@y2*el5|M_7 zn9098b9I>kxc_PVE68PNTrg>x5`l<>z!!tdHcIU>v9l|^R3_A6KXc9+LW2q|d(4bS z=s=gkfHgQ!5 zNVK;DQ2TasoqJ;Nje$I6Uf@^X@yEaY zzTYb$gJdBO6u?f(z={hC3y8?fh*~=rQCEtH8~`sKe6m~TNUxVV=Kz42*vn*2vXAXci(9U5tM^BjXlrIO?p94g;WrPwC=e} zpag=TsDj!&L-QQp2aWYm1WYP~9w9y|#0nq)2!om=LEGCd;A5ZotDpO&-}uHIXOEq{ z`Rv*_4+fJ#f3N^VRq#ocs>EU|h-pRhX%+xc5Jc?vds&uRM@^D> zC!-F*Xxx668BEvflEfHf4;C~r!osTM%EIswH=cO= zPrk;o8&PDd2n(mmICV@nB0L^}Iiz*w!te2#jvlhh9wbX-#WGNDKUbZpHoI1M%fDjb*fgF6LFaxi#)DEc6CTr_Ze& zI=1|-cYpHN-ueFRsT53;z_z~-)FA1!@)*P*_51x0N@FZD$L*V$0f3BAL8=FGHhL}J z+*PcH<_|l##fVcQod3eC3K|}m8}rip(CEOOfQ2TG_GG)tTz0A+(< zED~Ko^MV7ptjxhRyJRUGK$t_hyxccfE%j}m{8PT?QUB9F{|WVFk>@K}M#ANIoLR$_ zr@BcYX$L6=02~TSlBLcWl~7g1ltYDxWGxy4M3GXmL{&wFSYOra z_3pg;^v3r1+G}qd=lu6yyXC}*qwjjpAAagjKDSly#@J)hPkKWEl&0meHk}jqYC3Th z%~}uS{wuq?Ob`(wiUd{8vLtREL?9Zj`Yg7gj_T^Qm|3fVPCCm}NUTV(gobd~?-?Xz zF=z~u64880;~?;H}_>P%AlO3?^_ATdO1d1n;EAfYvg zNQj0ARai<5AVeN$@$m6V@ch=)_Lh&FJo49HUH!mEKlP1U&z8YJ(%+tXMpSePtcp$h zcb==goU_QgS=|G9pvc9tH<3F)BdJ*oDFCtp1IWU{5K&cyh?u$Nik>%&T9)HWocqdQ zw6O<|%4pcP1j-(?=4;>K^d87PmoAgKstN+K0EgiqEyrsTwqN$5XTIePuN)2tp@98Je#5KWyey|)$#i0e2WLL>_S2_ZP+Y+|b_Oezi{ zWgxIwk|wASng!v-ihwFQN2(wKSodj)HMJasnY|(={oaN3vFi<&j=-OMVf8=%{ICD* z-{0CB9x{non~bNyxzt!k1QBOR$bxlUYE!)gb^W5wvqnComLC}PYRn-_1(HLZq zg%PCJ&lZqt$r(1@n z19?zMH)IxH_#npMXf*2g`#x0G#@ve-V|K$e_S1Us3e;K4wH&Xj-_O$2nKF=qaByU1 zSqH2c4pa|TR z1HJ4fXJKdjwL`hpWT_k65yf3wRglZx08^_8VI{T#MKlPEpoozj7;9+meXP%RI3*V) zZ0mgMverCxcwF{lT<*U8T3ExLB2WjgI;i7FK&W+D5s-pas3BjdY?KweMeSi&8qojk zAO6VkrF5wWT299s>(?GTCaUA{bTm9vlob&o8Bi&GMUk|pAuL0!X{ZE{(UMKnxXl9o z_DkP*?}t9}XP^CRwP_F)sgW9Ope=%0QIyEW&_-OH>KTz(CC&Pq+oyBS$4}hAN~PDz z7fXvvEMrh8%Tg7IFycHk(qcy^vuSEq6Uo%m)o|w_)J##ev#g!bm0ho!XQf@O#oCp! zV_Le~Nf(i%22c@Dp~2KOoPsE*q$pSiYG~JNHuNXE)`@ny%HjOtxnDV%w8!ONR0M%8 zS*aQ8gam+_noLkcAZ0+Lewq;hOHL+H4TwNQURl9JqBCq$SeJ{VS;5%$k)g###owcV zK#E9+j3l6pYE&pdVr<{~we>r1zV`6f&)gD(`u*i{yfql6RhbhRH9aYr(4umuaQQNL zt8U(6t^<4L{rYuF^MreUga8^rp>6L3sSB_)M)Ml`5dkzJH5)9|On>PNIJ(CSi2#6U z8(Hnd)^(sg@vt;wwO5Faxr&kz0uZ187!;IIMXi8Sb;304_4D!ipl1||g@N<=>fr=` z`d|FBCp@e#g;H4=!KLM+Wf_<;?JX9}U>z%hN@UX)BrrrO%xqAdvmx-LD3ksGt^NA# zXKr}dsoTztf91D7^tXTaRqP-3=n5Z1f+M4jGDRKn5A=Za0F80O%lQtnvUh zO9vTljPuCE()k&swubdV@GYGTSPUA{!m5 z0)p0&!I&5B#FAV3FpX&i?XE29P?Ram=1xIlpHZ5jx0;zpMj@q0i`F{t8kMN3(oAP* zw20d%c(<6jZcizl1&8a-|`9Eoj)C+=pb zDtJk?Z+8=b)%TsEq7axEdJ%*gwM0ghL4ze)>?bK|Nd}c-$802xT~p&tP5@f(llO`2 zsNTPr>LzX2ANJ?S;I3W#(&>@8?_WNf41yAKjD(^XZwm%gRR*Nkmx$0B=kn?F=;0%4 z=f2fTeL2o=I6nMmKlLNu{qPeefJ5K21m1{92nu8x!XN5(loJFA!TU0?)KB|cTbp@4 zIdSbZn?(C8qJALi5K&`(}CBD;k0MHh|vSZk>o!pqD0__%@UUIs- z##B=RF?T(C%rc6ikk&=43L@B01jo)Uc&Rh)AdhY7K5_08mtUXvwOqv|bZ?LyKcevq z1h8gUHO5pN5}R7X1b%sWnUH}5ASehS0U;^-*wZm zAAjrXpYfDOkp~rVhJb?ttCBH>=Ui@yfDBYHgjJ{#ON)#Bt*tx+K6=eHd4Tily3mJqn@g@M3atG1wp~i{W!BdxOr=FxrAVSt? z&8d4pig0mJsslV~0I8;Q1_OvHo`?@E_of@?vIYCF8;-r<)h~bHa~@qyz(P4lEh>2L z4FLcUTCRii5X~k60aXOiz^SDq?S)E12IxHmd< zer-~Eb^R0&g_T)BqtAkfrcUg1H(}L=cX~!LzC)-ELv`pN8>03)f3E<*jZYp;HU$8h zqfn3bQX7FGK%v^c!5ISm9 z0RkW!rHC`Hse83;NJ`Q%7$0i7EQ;VBHdGT(M^&-b6q6|>8ImT6J96ZRDz`-BGs^K@ zLKiWdTe0;~=1IkOc&JptFejCvLA+#}|{HNfDr$P7G3FY*hxqpmhUh zj%SMDegX-ha%n2;&tF&@Eg!oZ zmQ@v)twkfCASy8c)YfU%$?YbpV4$7wdJ#pNE1E)5>!rq^scpL5dG{tLQCDd~okcZJ z6OuM~4r!Zz#_^iHp7o7T5^1=!6m<3)WAqGnJ=foyQSR4TwLVEpI9`)}x0dzHea6;4 zQ>i0&NLR7^9|U}7vn#7<&;jE7&O+G=qQJ`K%F@DU&=+1uR5E}-Ac_q`clXD4hWg$c z3sogFB0!)C@`=MsRx3jsxUx0@z&dpymv32oATYbV3BUqaRYOVyVlY^!&foowAruy8AW^yD_@U34TR5ThY2|wTN?1V&5kzDD-t6;29=y^` z6yWaYPE5loVSNWHBA_x#ZYaO;+Lh-$=SgpP_0t@{*17dl$Cf8+Yo?cp_ldQt>b*Bf z0XqdLaG-zyD ztZP?W7!9D{3}8t*%SZym+J&9ZTEmRA^L{f&v3>=ceqTtcKuC>?i%kSb0E{9-ecLq3 z590LAdL?|P7u|PIsPXsbB%*B$U@5}vlf)``BEIp4QwRZ3MH!+x3*ap6I)LoQ_PXM# z09HUG5g~+B!ts@1--5Tm;uCA3QcyLBUfD#D(L;G=_aTCyb(AMM^51WOp0RWM1i$z;;jgZXV>ET!Gh zjCRW7yKGrq1~lj})pU8#u3Tm%I}H%Gi}ARQtOHA{v3@3?TX3( zfM_DzR#m0JV75ez0HDA=1ZM7K18Oq}QKUwH!w$POz7z4hWH9!|RF0EL#;B?&U~Je} zpFBqNIKq)NE{W#I3U#~>vEwZZ0$~GiRYf7N@o2HTC~1R$i*0^XluSIO#G(mRM9h*z zG-yyzh~#u4frW`oXY#fASy#F8yX=9|!H7{8=eQ4PNe#O1%!uB)C%VGR?PAvA&Wdd$ zk;oV$A^<8HSjr=Z77nc}_;P9!u}B0WK@Aw-xp;pU>T~I{UolWa(J&ygSker5lq821 zGCH?G)NAXUDQ>?QfmIK}n%a9;jKN_#kg8lifBwd6j~CnLwx;L*KmX6SKmIY-FJ*uL z4njgmA}mZqs6+sagc@Vb3IHJlB1n>CI2=}0HO+HTEXHGNlm61-vuop%rxt(r6JPn+ z|N4%cjq5M1ZB7N9O%nwhIHq@qeK0##Z<`#{9jN+txe=;F{8tRBH+7*DL_$>xdn8H{ z+w1q8wUcq)U}Q1YyTmG#NZA+-tNGE9Cg~ZyQkrdzqN38^%+WN*R0R-J4JxR@K@mWR ztg3)gY&jt764p@SZLLn5(Z{=M+~}kPNCg4#yd=AY9n?ED(YE8BodGq zFoI&yB0E_hrKL1Zgu#qZUfdX7OpX8Gl>w2x_Br`>nnA?DKW}l z6Qc(JP${8J#YF3`^?aIXhyX+XVlbvRn;L*vy|d%_vx5MTpqPis3|>aC#hT8qX%XoU(vc%AH`gxQ{Ufh_ z$&bA5W$1Zn!2kLRH`)! z?Vj?TwdHICpr`?e5QqqcjfxLt&!yKKJMxw7O+W%PP=_+5YdW*2-k(y2!t(gGh)a(RRuNi3qa$|plU2}Zdhc9D29ExHaTmlN=4=b3~*4f zh^FU^wHc5_LqVXZd{tGke?m7^1)XsFLqTS-R)8A1NFXBCAQ2VC_~AF*ytK5y>?3na zYoOf|XWTZZ=>5j)hB3Yb`w=;-FS@Z$TuVdM*75oNDHXkz+sC!5K| z>vdw8qZI@L7%5Cloy<~80>OhylDVb+Xf!x-{MeDBM-Ll=U}}p=L^LJ`ftk5MR5Tg( z&iO5p5*k1yY>@hO;2!`~r1IWZmG_<_k*=y}-Fdk7A|vcVl$)M=ZO$RyJPaB?jVd)B zIikU-0}_sUDtH-BC)07B7uBRFilV3jdj>MjX1y%SdJX8%N`bwzXcJSG z{)QW_8xH$rmD`wV5wV1INiR}kkx6Ixs7Xv+R4gdTC4ql}HF#Qp1khkCNM==UoFxHg z;n<-i;?ilwsh7uUXfD#a?Y7mxr zoOul~QvjeUur*l)VtT#20#R7qlK1@XM?e0lKV3d@t%BK}Y$u6J1__Z*Z7L#FSr~vc zv6N-X5`;x1qW_x{w9I$y)U+iE;X{|Qff@{_MW zbxoE4AY@rhaTZC}SU?$~&Vd@JHP0C&f~W=!ni#dM12YkCh762A0%~d|7~XAPHZEkX zKzDSsXq-VsP>zgIwK{9jJY85r9Fnpu^0ESeAbQv7bGP1p$EQE@=Xc(H=G=vKVOH!3 zv#7DwYT%~ybq`*UtKRDAYFF%iEp@F1G(2(hMZU3uC3Q)TaP-*WG)sInb}lAn6u{K5 z#=4Ge$Gt2aF!SDe%_=6bZn@=JYP4beyV%MV7?i;%fcVgJ*5^e(a{yFL%1{+6!<9oR zZjs;cQ*wQ@NmWeKL?C!F40RK4qeN|;2*px7jR5Od&H^ZkfGr|;=7U3XN7dg4hyify zl1(LP^oYV<60Yp${ z07oWN%z;JJ8B0VUY^??3^2)Dn=S%&eByh`J<%d50$>0CJA1o@E$=0?Z z1E?aL7>kH3DnJ@lIvHq+KWkE`W)@Tl6uAc0GoSzpkx@laTpTW(x$RrWkDmZPO&x{2 z8207OZ+ykeUih4)Q3k=THsPH9pV^~t^4Po2 zp8vIXyz{f4|67YoCh1pWpY?_Ts}MX38)FcW1B0qFRwdv(&bC8LGN-B(X1^%%k;N7^ zb>$Fs|7v!@?T^|adzp$Y!BJE6H3MZv+}V!5p^F>=W@(((v~Iw~grp*Anj(g>EQZ73 z%{Sld%VN;O5K3cA;(C!k$i`m1F~|^;)<{jgZTED0sk62X-NnA42m&Mx76d_50)YZZ z6#}`$5T?Y}99qoRy#>R{3IK+TDxwHzO+kfNueFP4R#J?Sq#dJoB|F&8x$1_5F9y-R zhrYn>8nN!6*Ea)_C{U7Cp-K|tz^YWKWhk~Ee(IW^eDkZ14#25qh~AfpAr35PHU44L z{;Cb17qIxnr3DdPU)>lC25G;4_Ut(zmkk$>T$61~VRa3D=lvgh@9%vKlaUuAiV8** zu_eF&=`6cW`D8@xgV1auE?!)M68BP7*x1-OdEND!tLIln>3DPXkvE_CfBcU>al@&V z<&g!y<$(HG2I4tzg4~Uav|Gq-H@q3Togwco(GWBq?;I2CoL*?7aab4rw^SLk`10)d zG=DK24#K(|HP&tlc>~N6Jd-uO)b&oCSU7xW_+xKxuq zFFct{k|eQdB9#{r>io}8Q1I~+YkWDd?45cOq|^s)*hpx%7L$#1QF!$QJbk#T4Y zO8}GXm7JE{r_f!P@cW7E)>hbghFu>;3UUE4K+$%SNK7Z3q|TBnw=RrUhDLe&!kNcE z;<_Js<7>YEi4RW^tfH`5YlE+F4*F1+3#lN27$jqGeSK{>93DElytOsnUf*6hezfp1 zDMF&jm%o0;`#<{0&wTc8@=|=6+bm;HuIoK^{T6Ni*Z$D`Abr}L0Eh--5<>OmG;>hp zn@@h?<6iyB=RM^~*P{Ygr3jgbeN|9ZGSrT!>g>F`gTEIG2e*b7Hf2@2)0K0twfnyA zGJP&}yLN;3*ifHE!h2&4D-~7nz7)kQ>jy4>;HghiAfWWqfA$5m3pN>!hW+jFrcIK; zpf{aPnSIYCRZ&t?lr~3v_+SgPbt15lc|ciJ0r}zIb#s4^d0(n35mNny#;LzrC;Wph?JHmS+^0NzdtCK~i2{V+9fGPRNx~BA zq$5{x3>g_vD5iP8-zTC;K83PUM@hC&f|dw&n0)HbzVzM?e(VoF^Oxyhatoj>uOiv*Nys|Ly({+hIN0dDuC44GNL<;z0xjjWxZ*crTSNr_7USVT}3S z$2|rq`@6sU=7sgbkXu|Bj?ZkP$1KaNwd_69Tp!6OEogkS(j1jU2T4=*kr8YWxop;C*W ziX=!i5@G&Oa}r&Frlgnd)l6s?71_StV~KZyDVLe4-6Nyz0pb^k0R<@Hi4{~(1qcul z>x9d4Iyt&LDArFOT~2@Mt#5eVGap@)u+Vb=kWa>aYs=Cv^apLvq?#rhYf2pgHI{st zE1BM4G%2e|S@lLeGL=4b!vi@*NP_uhH;#$fTNhve+)CfdG68ppZ`SByV)Eautb zyI6v|TL`ejv>^aB7T8Y_baCK%244T_mptLSPgYY{Sp!Wt)p@VFK8Wdjv$plx!*-NfJ<$>ybA+n!g|#+I`)QgG z1r=Oe=zBkzmfPR^_(#3*b+3BIJ3lxss;%|4BZpU}lVW>weJ~iPGsQGdoCB#zlXl6h zr^NhEf*se{{EGW+4Pm_}A=i2kUZC8kU zNe}=*P5k)+kqb;zsw_b+C)=xcU3YBpwJ(3c^Pc(Wp@Zq>T4vCKSQPKeEK2~fs;Uq? za}W&*9FiRaM0@Ea{@)0d8jXCF6Mm`e+aW!A?RRaLczSiaQcFojHUpaNDB5Jk+T}u>&j@7KjzaT4zjMcFYwk(vFiS8? z^kpx8_OTV&uJ1XFTo6iGhV-e`{;g`)V-ghftMe zZXAh*E-T@z1N{Bh)Y`x7SR~CblPWNPkdd2izOL7IK9s35vGfi0Out;YTmo z8;WY=zY=D4&Z(*;bfgJX*DUu3#B@!Z06r~_20W}%) z3a@vcUtKtS^wf37{@^oT`(OX<&;IFOes!>No!F&s-nnYCdSw`lGJkJqmurM-cav#WL%g0Y{OyMv7;_JWmt`Ggy7rwG`?9}!&_zIKk za2Zrs(7Mzlk*TH~kLc@x&d9TN#F!e9hF7kJ=Cr;*cVy~6Ltyr)Gmrc3M;$)~r|()l zdEzLC!WsY;M@AhmfUyXQMKQG=o18{TS&{Rx+_3wArL zO^td>GLBexDl$moZ0fn}_0!-BP|vpPeD<4lm5<{cd)at+hd+C<-zzO>6QvL!!cl;O3jIJ92n=I@vt5v{)8f z&Y4hoLX)~gL{yN7m|37@t7~!Hc-c|9XlAq1kUHijXR9kB(Ey1W=1&9czy~OgEF_2e zZdJW-X^m5uwU~pL4~HL&I3}U9({BMjlq06K5=a2?mKTea(HPl zu3Pq5@{Px{6oAWWagb%!R7DOz6a!1O>QrWSiRC<~>f++ENmI{y`oe|b zXt_6B`1-APyTPINe&`eL|L`AgO>tr6`qhnqCX?7M2_-tJbpr8fdwlIfVtQQ?lNj*F zjvw_Uj7EJ9Q%mZ|fGDdX7z9#5Q9(lwhWJo)Jm+sKk$@l~A^}DVLu*L{t~q|}Z@>Ia zHyB|Ef!RUh?(1XYpe&Z;%0?sKRL zb&aj=;yc){5Y{~%_V6;Kb)ZnYSuI6UBt~Mi3KZE#4Y1|nl0Mt0)p=+t}F@(N??p}1O_znm=Yq6$K&B}C;&yMRyW6+dAW4tq#G`L{mzZykrV&F zpa0DdeB_VsIzPGl!Wi8`>8bK2u#Ht~(E^Q~uG`sbAKhOx*Bqpt%8UD(Z8)hN7A0Yf zwE+vGMeiZYGVeVA5E&6vF^CS)#9Zxzfs~-7d5A0vV4&gfFvbv36?~dy6$b%bTwe0t zTjK}~vk+QDBLav9ly;D3(5$=416zVh9F3ZLR+QPtCN{lZ@?HP`_Wm^3mgG1O1l>I% zGV^SAzxVC6z1sH;1ylhb0D>R^?wcqXMxxZ}mU?78i>7TB>*<-X9%;;`$EoNC0kyxXdfVO3nwb&dK0hKdPo8`4Tkfm3-1q7_ zo*mpeCr_Tp%t%iU_s_rY{(G}j1G>^qltQHxMKE@x;e?dk|GU5VXP4XH3gF2E$|6gQ2o||DN-02;s)!aD@hMF*23(k5 zIln$IS#N%RX~Md1;hS$>`1k+U|M!3VOaJo(vhL#Xm7{mRdv?9sTMXVSrutc!r`?EG zVOKoud);X9$nDnF77$o#ffS-DtO#hr1VMwSfbh8kXbYzc(nvXni~vF`sEkIf zyr8w#S}RC{!AR>Q-l`DqQoMvF>78L=Eg#ky!YCq1lD1kctrVf$b@#~=CyrS=Q3#19 zO(@<;Ez8*0N%g$k-)Y)~0}J#jd(UqUDiw?*phI-#QHN9>iIDhCf@_PtwgKc)i39Of z6PE-nF_J(E+PF8uw73nzw2Gw^pa!fkavg0l0wbrH@m#br)!#UK`mUqJ;KHM)Py8SL zSO38SM`^OzS8g(&nWed2Q2TASyILj8V67L%5XE@!5fzzaYkSlmm&-?vdTd=B!XSr# z^o#%Yul^VR?N`5Z{^WyCpW7@hZchf2qBl2Jmbubklqg~XCJ_Q8(iA%wFYVW)`5?LC z`QM{Of-ni3ov*y|U6Vp#ok?3tXGO^j3RNPYnE{dNrtauq8+QNzcTPz}K~zS;G=_M4 z|GU(ua9#h&e*Q({s=z`B3PCYqaAeMVAhh0Pt&SkPb>?il-F1$cLF>eOv0g|gJ5Dvu zAf@(u)CbF&faEZlwboi|@2!Y`?2(6CnJMjrlw_F(^v=1+fE5K*{mv|^U^7NTx!k{I z$aSTG){iA12J)yF)O07}HF#pTw%l9nbrNC}M{KEz&LAvZ>j)x7lC>%EO*J@Li5kw@?j(u)R zA|h?FcK6-)E?it+M^fI4W1ezyAo@F%^(^QsNA4yi5@IiLMOl_*mSy)pa38Y^T%+13 zW=8Qb6BVZH`#UpNKeuMGU4esCfEX#Ft5`Gv+sW$E;@a{;JJsk*5XMk?jA{NoS84&M z6(pk$oZ&8vvEU{DL8NU0cE!r_!qFqkKl`VD=B1~PUwC)ZfL&;(3cQ_+i+rq zYAIC9o&B1QH{qp*1=L9WPJ90`bcr@-Ktw!|@kKE|x41ahY9(r98QH7AK!pqdjD+GD zArOhwzbt`5@^aU*W)i)eH4ncMm)*r>hSd!@!{OE3$L`=Ol;jBkL0GUZo=B|?38I5` zW2yn{Koc)_I{(@K>HqxvW1V;2**w17Nwkbc+X}VPMnui^vf;QKkH?u-MiUZwFU$g3 z1ELl37AQ@&$MARlt6%!nfAxipvAzHC51-qdY!6Bg(mQg@I_F)Prl~I{))hJ^$0@GuXg82LKY1NQ=C?L!kL42Er!qOHFe2+{Lea_2ut*>B;ffo32XI zj+$I zWF!=VO-7)A@MmV!sTN=~&Z`USo4@nB|JJb|j>q%MU36ldOOnKcXIB#L_M}%6Sk!mH zPBNuSvD93fU7{0yHxY@=;+0+gS<< zMC!OTV6#zzD$SHIW#-Oq@SW{^)jUHG)TDk?;RtZ56BXobNEiXUFmsfH76c%z1bjlg zxpDp@&pq|;zVRAKl4=Gewip8dY2%y&AR^PFS0lj#}Mt1?!55mCYD1rb{36w=dyk%odVhpqM-ZBIkP|7DZ z?Q|y-2T4{s^&7wQd*6KJmElCzPTX_hVn4}@NmNlzltSkn5=FSA5KyT9)K%Xm)loCW zTwReSL2IQg3j&vQ*)ut%OR%Z{G(6>$MJ=R>C{jzsr+aV$F=7Z`@)5-)h-d(bJ!M%- zBlb7XciIO0_@f_rYBW68>(Y3<)$O*$gLgngQpw(9=(&tc>J=!mqFO zejp0~AQON`W(J|KPOSEz5C~zelboOQPv3oN^VJL5v{)=v=MgY~p^4FBz-LY$^_N*R zUy`k@Ik+8{C-Ca*+G)KjHHFqm4Rt{Xoxv!LEo%gxLe^DiM#|`-D3T;`j-7M8R@TpR z1GX4loY(nZ{$KuuNA6i|BZ$cI!aPIiz3)#(`NSKYwmK=Xcv}Ga(wBbBrq#W;z1f~$ zv6x6k%D|WY_|5<9KmUJYIybR;0x3{RIvw;!sZrH~D@w%*fFSaeUw^0V0yD+t_WB;E zd|4o9Q@c)A^JL@9r^tvNfXCx}VQKY^x6l6K|Mcr8){Z{^^!(-peD~t!siTYD!G#MO zNuvAx;nLC)gM{LJ1w$4RRVPh6#Q&IH%_h>d=JFR&Q3)gLqak@)J-Z-A{q<1<4+?Q_ z)gPqdV=}go-=w+1q!1&9i&Kz&e@`vAW4!WNLUIlEG?d2AN1zebj$qwFZ`?j z{^$O2+G;PXF2DZfxw-k}Nj^fv)abG-wFxJCCyDu$BCKhPRb#UXH-Ehm9#fXPnb>ys zd$rtt4dt2i^f008+{@)YN8|vfa1%B|X~y zWrK-lkmT6B?LiYHS<0j0(Fad|{jGH??8O5i015}-8ASrkOP-@!Wqhej3Rjp(Lgosi zrzmlyP1^HHcyM-oesO7e(VTz#mB&vneEuhY^fRBlKLwZ!1l@Qp>##-TwIafdl0*Z# zq8y`uF$pEcv#?5aTdxo8{9^0vckD0x^1u3pU-?&)LK$Puo?q8l7j=;+on}g0d?xN} z61wSWmq>&sy7bNe|wT<-OY_bNQ`QV zy#!dbmh9C7aX@Z_YcQ&TuSDd%OJ}GqTm-HYv^1Sn`N8f!IjnE7O_kVZ* z3P+kA4*<+$^c>g}tZjD|!58^p+k(?9+LfBL6B$_`LNqF5aILc9Y7rk!PgzI4ST zFWLK6k}*<=s9UYq-#OpzE%g@lAAWuFum7!|`=hVEvaot$&|mjld=RuI?cSM!Fbs357M-?w7jfREIs||ul&Z}`rH5Dz4O~g zkKJ?Ty$gAfuN^;iaecFuWdK~3R%`8@s}|bL*?3T`BJZmH`_iKo0%WC>v)=hq6Cz2g zo%nKa{P>Ymr%nQUaXwV>1B`>kU3mceF)ddNQ!8<;>X}9iKp5%I>LZLgW56ySb+hh- z`1Fajx7T0Iy#-VrVh)Q1ftiSCx?Exqx`C}YJB?5nXC zt&Kr>^u*d$3IF4-fAjDD{a<+R!mzh`&*rG?EuI_|#UyvinBj1kBzi}SP_yF_Z{mZ2 zng}#Xh>?K>u(Zy5T3k8yM_>KsU;WSji_d-kCqDaqpIly=Tb|R@Zuhq~+wHk=88Y;- zm5-{-WvJ~|Ni}G?vpO?fbxlqYQ5 za~uSv066FnhqKnu)Q%|fC|7#ZuHrRb`KC43zu`oa0wjSlFVal=vPe^1`268Vo?Tq( zu?$&!khP4Pi$Fa8@d?v>t%K;R?`GZiVw1xGRQu=38z3TxM`rJAJHtsiy6@!bH{LkA zz3I^a0eeQJb(m@O9&p-$3lOI7O}jKgJ15T!)mPJTa5H2JZjDH@WpcFC?Y;Nbce<^~ zpZhaE@+05>k+y=#=5TecO(J&Um7sVwnI=|~a_Bf$nIWx3$cc6e9cb*q+e7$&{=fd# zZ-3z{D@X4ganau{P`9=&YK15Cc(*~DX@&pJ7 zLeVJdF;?-GAY!c(yeDKSR3v9#nP9538KmP06k?!qWF$qv!pIm}P8mD`vIq$=5ix*H zDASq%)-P^-{p(-*=F8vu?SK7yU;fHBm2NGq9CwAE6yCMFJn@2e3s0zPY(3qF$&To(z7~78 z|5hZnjb=Rn07?jbS+-K0X@4(bId(xdX*Xbk*-aGfs(p;~%(7SN{y&~~)-f;$jB^O;3AKQSP)4qr2N;=zghZnz3gik5Kqy?fzt{&4b?i3V zM>SK%N3NARYrReYKm-CJg;8o4C=3A+h?G)fNE0EELPXHYTI-#)){ck$jg5`%t-+)$ z=I0j{mQOA%A9?%CdqvI*3rp78;c!HXv{DL*P!wY5gBF%O5(Z&{$w6CtHko5~jdsuJ zfhb@Bok^f9hL1h|q2njkoGY-(l!fjWMH+8y?krRyMTpTgngpP}yA(=dl(l(+Nw=*} zuFM;LUC??VC4p3>?o8wmW{0H$0s8|HXg5N$itCVps=^d7c{8>U6m*wN9+_acNcK6>d=}Aed4}MB9Twx6`(s zy_ZgJ8I(GEVK_H`0%@p{bWjvUzfd?%l0+c@$3_-ag~JFSQUU;g=P6Lb1AvG_M1Vk_ zCn6#~b~p?8AV1usIKHfZueuW&-J>(kgQxpx27U2O5dm-_N(UY{XOv3QcG_uEVh6)X ztCf8B)wf!mx!!zYEnDZh-L5fa^Wu7zrGQuzMVh8T_xsjdts7!e>)-$Y5wY_q-n*jH zPT2a#9=U(6myJjLEENz24Iy!6%=LHNS9WJjGO3yk2?0p~Mj2Z~P~LlE6d{bp!`|Fl zIrhFB-+N;9fxC{r{LWU2iE8ymr9(7Hl8EQh+B6}N(C&~5GkaEAqfCWesj-&6<}jq@ zeUAyq20vP~h(_8u!w?i8c+X^XuhZLj^UdDT<5`;aH#ZfrD@H13)L`#uu=ri2H@q(V zuAvIE1Cc#TCLqn)8UYxi2#C2Hj>e}SIC=7}Rc(X?l>$Wxif8s(>-s6NCzJ5Ct;ern zu}J{FLCh3tv>evM-dSS|h(-43@`Y^v?zQ>X&z!Zw;Eg6zig!*V$hSl?#hLSdpdMQ& z0HBd^V`JmgBagiO-Pdrwx7cls`x|R3?alMA{n+PT`rK!pKXtr~-l7|KjA+aD; zE?+_to$8KY#zrPK-ug^Tte6BCX-6K-BV(Aojs5`coGU5GpO`BopNW|9xyZ!@!kVD0H?`5_v{mEs|!g2D5w=^q=%lSuK&mx{mLXKrtjEpf zd%Dy-YoMr^Q7J_{+UhUP&uyN6uYF{xoB7e^+fO`t{Lg&;bN8KCTuwp6m4$7kUGY9O zNs{PE&Uxut-9&fiOq#UY^IH?EGa5ViFaPU*{!737Ywg|~wdh;le6@GvRIAq-j7H+U zpcfF6B+fYmKtU3!y!wYz5{|QOeh#Z>^okgBLn7;{lNH2K@k!?APV?8XBRpN7zl_( zgr=^O;~D~p8~#fHKtPU!vmy1N0SZ-5@7v1R?d}+h{czRiA_A;6mF0MKsrAH@51B+J zlOcg)Bp=TVK?MN6z6ZZQcShmTR3UnmJtqKQwuZ%+1T zTD#}|^XE1JeA;a@h=@l-o9Bu&M3gDx!HQX@7AC;XbZ)EyQ{6KYwA(|A9M;zuMNp`6 zc@jFXo2um4z+}aCC}8wqdkT0r1QCy+PZJ1$Ibz5n@(fV~34p_=)hj^sB5|By8;mL4 zpaV}8CXGQDkOS4Ygc3r-F$Ggqcga+?eQLM<33RPiwN;5~K%ODy%VzxA6eo~slNh$8 zJpRNZD@(ni96CF0868xtntMmYs|R6RjcMFZC8Z%b6I(P$D5UTmLzWn0QfJwF*J|sL zwZ*tUx6pp_^zrX}_qB^f;asUq8glD`;Jhdiq8WXF8*bHuv~g6^C&q4+pi#+qGO}pb zR@Txx0YPf968&N{6O_?S9utW*xrT~U`l z)pS1Yl9)i|CSnn}!l?p;&kIuGLOWSYJq7kcvoP_(LJA(($ubAH7HJLQiWwAZj@`-8ny8ROV`TzX2fACL!?OU&%caSb0 zId*pA;@s*nG`c?-$zYgf-PYQ2F)2q|+ghhaXW*Gg14~5#S2_O}5gn|ym>C+o2Io@D z_VJXw696z!QHKa6R_i1(rtEwg)2{!ls%vq3n6CDsz!Cv4Bi0$Q7{_B{;mx(sug++oYVdUz$F}Sl!@(1mD1wfB76EcLEtBonfleC?(pw@br=PK3hwjNv@ zd7*nwotXRMZ>K)@zD$9f7ZnoSh!8?l7DT3?>$H=P>^fM3Brp5~?b?9rq^4kKb|wHw zTWUDkSZQ?^Ry%Kf=gWWg^FR3KKL3OB31~ZTjSR{>-c0r9C(M^~0# zc=p-x@La2fitT4=uGpSs-LXNe1kaJVEwow6dm^SK=u|!s*VZd8PPtRWpb`4^_shYR?7?1VdP@9dP&Kp^NT1G zYju7#gpQYb2T;{2fDtM5@m0)vGefxaZCPQYce>gpdx|tvVw)UryLK{VPihSD>P^)@ z&sA%6pg=^>#+b4!!xqNS*2N1C+;eh!e55^p7^70ooOwcunJ4(gv29>1SEoB zr1%WHd2}6*w5j4=D}_qsB7-GK!p>=}dvl!&=guu2IcD1n8*jeeS?$g(n90VOAO7TX z-~Wkc?pXzPz+OmULV7gb?zCEDlJ()Bq!y>?W)9mPe*WkF#TUQyjaT0~JD7mv!_M5Y zEsFZ#98jYQfM6D%P(AlJMlsR|ai+(zb5#~5`pi}g02EkKXSU_b{JpQIB+p245nbY1 zRTYDI;8;Rn6&ie}BbV4f+;9QY5Nzl0_j9Z>-l}HhL=( zeq9&|K?Eo~c_V~!+P>3FlkE68*nJyLvom{HEyaY*L=R9=TBQ>Uy2uNaCWts(KL?6? z2@KAi`+*mq`{^J3?8lxsN*>0eLATRRwGt4olM9=J&cZTvmO#K0eC-=&|N4LPcfR$? ztDU)J>wuKWI-P#MuT@q(!5c%pz8CY*4((C*ZKmDai0rM-zFKqUW>9yKz z=OjrILd{{F!og#!LvMCy2i|rp-*-TiA*kpYV+f)27882xu?Oyd;BG+cTu~ImG$Q~| zN{JxIPR4|a82`H2)sSoNu*Mf=L!c0=h5Qv%oh}AReBMoy_qNV;7mk1Uxkq39<=y@J&{U86uKl9Z69pjGjnGY=U2dPYXXg9!`N+pf?T$j9dCJ(MW zpKqyAMU$^s*ce@wMXR0Kd?LO?G9UZ+^NHcojQ~p&2TVzl0Dy303kZi?XZfVYfzBrW zt_@!MKBBW3b}$G@QV<4E5n&{V03_Z3E6wCb8paRbcjEZ!{F&{NI78t8)eyj{sjtRr z?`e(X-Q_mBq{XaU9iT~#S0Wa0UQlUkORXfE%iekY<<&O+$N%ByKlaoyJ1Dz7Kn;N2 zfi0b+-G$td2Y^ocbHDie|KOke(i>+l&MhCotXmY`be1MotYbo@6e^u~wh>k?HOu|& zltekS52)cZNNHMKLJ{wgy>~@o)QRJ(4?lEYVYdWqnrMXyDN#yU>mX<|Nz-dx|JBL0 zwV>}FN3+xjRR$3O7`@kueKDHvXzNEw(tYN!2gZN=*13sQ5`28D+E-i`TxD}HrjBJQ ztZ;dVeDo8uXocBNsY*vf5DJ9=`xYvS0u*ZU`EdK_LTbd0M*aWAkNxDI`rH%43&VCx z6j0Vqhm+C338nLs5+Q-Fz1;tMKmSX=^@TrNICgybK3%=ycH3pkiAs|t1AmHe(1R*6Lyx_0dr!=doP~FvqlYq zO=l(uksIUwHKXlP|ya-ga)C7#8nAH7h}( zdv4c`s&1JXpvE;^5QyYujVe3}AUdNJ0BdmVmg0QNmD_*jr#}1d{mJheoF8UXEOi$* zMjJX&Nqebe#gz1O`0aoF?Z5L6e&IsD#P;%f-%qTiq$OaomHGbmFl}|MwQMZ{CrLs? zB0K8&*FP0{Xoq%VY>$-$0s~8$X!d!Q!0Phcv(G$i%R#rR#>3o}9#iev2UaVrkVG{i z@>P+(fM?UiO@nb97TjvQm(Wp=iDUB3fnOVS# z@a!0_bK>}YRyHrS@T7__n^6IK_TUxhR2gQAc6@9hJ-*a>_nfz*&9*jPnZk>AWgt1` zcys!&_CyqBLD-S1yB1>vSGcU*64K*Q&SjwuWmz(w3_bYe#rE8M@0(x#!jF9VBmc=? z{!0mz+v~%7kFHp2CqV0Ct9$bf;g^5&8$bU`zxK6ny?OMWNBRYxJ-cpt^GfT%)>hK) zl@1$Z5(kCS=g}S9Cp$G0-Uw`M=(Urm0Myu5_MwMlm zB$+K;6`IxD1UG6$a$SHLQ5Sgn2D;D;EXaW5ya*$B)iTNzt}KVgmX{wmwfOG&bFZJ< z%(}~>)6m{!NHdB85^*3xfJ7wBz;!8Pe-46oXVXIeydrC@b2c?9F<2B{q0=zgJb&@U z=N|jt{zrfQ$g&=szi|54>e#!D{z!Ef&7A)BJN(an?YDmA*MIwBe?sZf+voeG!(@Jm zh>EgI(vHn7sPt;a1vQBGaIJZ02iR&DbKoQdKoUU`B4TEfC=r(=@TpIHVcxiuKsap75`K_UmtzS+mc*O#7_1QMf)@dQCyX`&$kcAm>L0i%hF!Lile&wlT z!dTVjkx33ivqQV>t+`Go#L(6(;CkKGXn6jU-}8}`mF{G++3x7A?af}VR~8OYj4`%! zNs@W*<)(=0>i0#aEI4h}n{t`gt3nY1>&h%^vn5w}<0+*im!afai=FJz`;NSGcJtNu z2HS(ebmmQ#4a!oyMn#GO?977*aKKjVTykH17M-hMk$@8K#RW{WP7Hf?TzEf8NxCii z{Ga&ICm($%&v~(%j0(YKw~|DCV?*6)4&D=(h`-8-^!WH1=ygR#z1ZS<(f z5tLD>ElQ)bW2U+UB(<>O%(blAV#1j`;5eg0d!IJj76nZdnp6ZK2RB5QN*rriwn7FF zX0H?$<#1uX{r#W$B>PEjhuv->7LYXxW2AeGhmQg{)frXwnW>u9ZUx`jUWdCQMys41 z#wITdE>$E}fgoE&2DvHS`KK_vt zC)e`vc`}%f2P;d<8y7d)?KXlcY-x<~-dA)9H$FPs_cwO6pu--0(hR}?%mk=Z$;_;i zq=TNFb!mp4{ixVXdaZl!I&xu~FKoNMWp>s8uvT%M%7VdXBM1Znma14;15x)p>AUh} zO(S7KuLMNA2s&4ixcP;-Cmz55v)}){b3O1L24hJy4hG}D_mBR6zxljK*EfNEdhsi8`$oWXb3nS zdf>j7KJp=FC#1w^0+zBY2{nRZ1_Gr}dnp3NONh__ph5b0o$dPVbPBNxd>90PB&d|~ z)>&(fF+x<9r6QAQ!}*x(=;(ZM_tCkv`BZZ*6hc}Qi;jSq9}?i(XEuqNniZrWKyTM>US|>@WbmA;e#zmT@N-1v(ooeSwiLx3~QbTNXwls|o?h51T zEGj+kdcFArnNmdE>T?pUW&yixA6F;=>f{L=3Ii}upiV&nB~B}5JAC1VC+@lXXju%r z%Uzkz_ZH5+cW!QBo*7DKlO(a;?SKJQ#mK z7g&IjM3r`gpp$l|EDAnOVfNbz#R~ zfO!x4;P_ao&RNArNU;C-y9qvuof6gijY-p36c9m!M5uY`L;?(`YLA$eAFlCk07@d! zN&OR2wcSIfYB~%6w;T;IODaO!;=zjW*N^L+y0yPshHKLS) znhT6QRL8k<6!p(HDQ=`$XW#J^iu`kU)puA!1^v3{Y&LOijo+qN+y?;hP*vDNGdKrz zrA9-gV@6ac$X1qm^X$vv_Qj=@&Y5?<`zQaz4?g$Q>Cxal!crk+Y1ZE!t*#!K6eWNt zqpf#!);N-C#5$?eM-)2^BWIKV##f9|fv~UF>&U1;mDDqMNx(cTg=5MS%aopVYl@4a%VpG;&!_`Ki69lCR?yZog|raj+u=yb(ezo7SK1A{ZO^s<87QS zIkZFDX~--nQ*U-uc4Fh@zB17Nb-<)mww@<;8`MJazw@Z@u-MbA1mjO0t5K1M*6-_b7rW z1b|YJI)`OHu;Bi1TWOkF@6dC%H`kt97+d)J|KwL*edXKly?3G2>dtkuNnRFin6-LJ zU^L2YF`S=UWai0aqP0c@?`@K3??dZlGl#gVJL1p|?ZDYC{%aNCXV-_V?h5KQqp_?!ll34T6&Xb)&-1b@V-6lXlCYG3J5-<#?a=N#BNPA@LP-sI z&L@-2pZtj*?9C_Z7vEc6>^fH}MIsV1{Yt4CYS4_%uBONS`V99*pAU)a&2Wgms;YC) zK^AAxyOstSZ1l&G6ooN{#W6dj&^a4dnln!Ab}q~x+M!L2 z>dEZACq!T?Qe+uE|LkLrJ$heR3`jYaGHMhBQv8bMq`8E=(f(`qxNoF2g|BB-9ldat zrQ2Iu3*8pkNjC+w{rQAH{nE3?7TQv58*qt6VJEg!h)S3m9_`u>IPi`Ecm~sMTcO3} zwZW(?nUZ!_r`_SW9FOx>*2~g%S(cN@q_;TV>2yk)69Ex)bjPX_4n#rd|lJRkHI=6c}-1?nYc4lBp~ zrWJ|E36M!9g%zN!;l#AMq7o}K&I?jTn{=EP&au{7Yh9M5b1wM7=nDOA&a#=%YzKc? zlRRsN4XzP>?`Gzzw{PwiDwZpylv3(aTvu0VJN6H-lY8r?@tR$Jkh{lrz4*wWaprd% z_@&OtZEXR28U6+B$nej4rxRn+q;yu3%96Cq3-5g=)m-L=d}`pcKk)HWCs(Z<6yK#WBeyT5*1r^tQi~FmTEWEYlRd( zTw@;EZEoSQT@*!@Wl54Sv(`FGv?fvHogKdT;in&X;M8b%QMl~36JQPxRQBSW6A@By z%d^Qh=ROQz4Im*BqAAifB%U}l4``$WG1byS_xxk`-McowXdLBRWXGu{qm+0H>_~wK zGYHT%q9UT}x_VEzGdo5VAcJOo**I=VPr2z~_@b$>gC2?|SjY zr;e^Ij)ogq%XB(z=bS5fum`5L6N;04(Sj{B(H*puu+% zFn;v0rysayxy^&Ki*22v?{9A|FE3kbjnWiFGVy)(=mn2P5(UHeM#b*FMnWJOgbw4f zL%UkQe&k0!y}HuP^DTg~ooN&RX75-8iF8PM0J4C8 zzvFm+wr||o9{2p^!yJ<8TU7U*F?fg#VzJo|1yD!;2}OLtljkF?RAN%^(K{p}P~@Zp zVZ_+Fdkc^4X8xE$ArvA|NPr|rA|xS&#uA%feK}mrl#Dl@IDP!%&p*-9jJ{l$?`>>s zB#CC{kOfH)sZzkZdYkclB!IvqTm@)+36~^|_p9}$C}?6(4(-rxXH!a9YXiQr)oMBC z`u%>A=;xk!{KFr5ax&g>Zq)7QPAAJJBc+rvDWPVM?6E2*@-45F+=RQa=E)%v!V1J6 zYifu{go=ca$p9(^s6pCVpzL?ZJ$&Es#~(Vq&})0|Lrlx;kc0po^ECj_>ckldpfE)i zCZ7JA`ZaFEaSfA-W^?yi_ts|*4(-q`Z$v`PLcD~q0)asQ#j^{Li_GZ9AAj_jXP=mx zZw-bU+6W>5a*`w@#7|#G?gZ8UZtL;A!&VgHSWB z3eq*pSXlo~k4T!!$(iH61S!B(UAY}+tm#bm++e?UU1&LGE4A;_W=>1P;qN8XSTV%Z zRqumfm%6UI%SVw4;iixKnp4JDrHNsdA&!wtZ7YNKKkrEr&h|* zcCVFWS`D`Q`FPT8b@M!*OeP|%6p~^EU`S~q@DW=YlS1#?W9--V$emr`T*(#R*m2US z`n#Sd42S@T?88bPSrB45fWR?>%5=ebyKR8V74kp${6jsZe)sDy_m14PWqrwtOx8BZ zcr;MTBCr8ehyct$7SSn*iZhY?5d^>o3K6aZX&}Nz06?M|a||A-fw!umAPDhG%}0=k zfN;zSA|NQN2xbvc#0P?{uw_Fde!2$=3NbS$a>}0-8{QgY2&5}iv(CqZiyomt_y&xD z%?j%AL01-w+R{`Ik+69FllJNHwsKqr{B`n@)Mz1r_%>`920AOK6 zC5?VH6rhS5rGC&rqYsy$rdf{yrBpo>vHGZDW+3G&Qg1k=nk26E#VMNEN~;-#7h z7pwLK2Kns1GuVb@0cP0ly%=B0iFtG3OC21ph9##0Tz!a?*!02suPpLEEt zX86F-g@;eA@_4hYF*Rt*yex_|O-+(0qlpLwA_JWQQp!i4QTJC#7(jiFE1vFVc7NB| zn1<`ri3hC=bDfRxfIeKjnJ62tf6N+lJeRebz;||K3*FsKxf24d0Ue6~YXd#g zy6^6zWn$KU|7!z3nK(yYF(INsR2-K4ASA#DUXYm)39A%-P+bVC%R7QJ@z4(K8Vx~N zYk^Q}EeO_GX0HtZVAjrj-Y<&cGvD{A#~yvS)6Fv78;k}?q5+_Ah0-J_+!DL>g}G+q2!&M%3jt~*0u=FtY_u%&lE)sn>ydko&1uGb&@(jGP64DWed*AO zX4D?ZBY9!Zb&I$}Rr*6Oc4&uIwIV5{fW=z}o=LzErixmLF7wGl58n5gPk*YNnbB}7 zYw1ZoGRB}*0s1chp}BDPZVy5~+^vkx>Ts<2Hz`076jo$75Iu4!!b)Jy^j>)EUPa{W zxgnQK>{DZN1*inP2O$s!kKhS0;KgFbCo1~wQk*)pL;K)a02Nqk1vyQOb0v5d$;W;B zz!NRoI};G29g4nalsk!CGv_ zj4Yy(kR(O|@oZU2@>tsZ^wA^W?O^4(D@1urHbo`FRZXkr4ZDNlLQf&AW;-V>*f-?KK~BJ1;E zC_IY@3kpyuk%p8c2?vyH{H=qOY(BI@yCud59)gH32rz-u$O-w=_ni2?Pkrq1#~$o& zoL}s<*pAA4v^d|*^E_>3q{(@!G=YMcJByg7K%Gy5JIZCZ#tuYu293q$^i@2FplGE~ zi`OEpmVvV0q3#36mdE*NN3XxSo)2BFFhxWRi8l!-0;fVqCKWgVfS@6bb!dn7K{Z6t zS}O#0xh;jDY_-kvPe1;>-}BON`(n3~o;!Qy_|et=*81CLw(hz2?tZ@?v@)!B;>74= zDl2!uOy5k7pgpbTQ-s*g2?~*rLSevxu(yPQ;0Zt>xpJ6z|H!>ZO9lNu`qp^6zqow- z!i5Wqt80@yFReooLI4&FYK%fi7&N4qSv3fMDZ-*IXJHk*#|!mQH$#DXgV2B(c4e)N`5Xnt7$g?33*9zI z;jsL~$3Fhjho1q?7ka6)<5sHk@hEGh%w{kcAfhswL6lMe;6bJ+#R~Jd`?z4&+N&O3 zt&p{*eQqW zz8oupR1tVk6=YHf8D?&VLp!uP-k3Q}Q>}HL=cCa`Db;Sbvn(SbAz8n0?&OK1!@>G! zwEnRdpa0%ZzS!$%_M?2#SLoA3BMLL$>QHCjc2E|ZQxoD!xSD|kBC8>hW?OgO|6nMzpOCu zO}B&P&IAyUP{7w=R8$-$FG7@Pl`tTeWA9uyZQZ@p8Q;6+ZT`iVU+tN;N})e?Tw0T~ z*mLX?CzL}Ec4!|k(^?lrfrx3EBBFDyC<*{>wNj*{)i!6|e*2{tp7^mJ`+>Q+WOL(P zgDy$5QfRGX@hGb1udk(l4@{2a(no!(2e8W|vY^F&btYf|P$Eo9i!z=)O9|d3){?UK zEa=u__YMc^XSVIR&2xgScG3|R=L8jrLJ$C=pc_SUQ?N0Ic4)WS0^tt;)I|PDsVr-e zW|DI?*6LDwq1&B|2l*t|S{q}$_s+A{Mm*QySA_jHux8D> zi6kt8ZtNX)d7pX^7sny(FH^ly4Wbpb0Mf#<6*fk-5>#$N`DO~sn<$O*GkOWZ_X(Amu2zKxMz}`m(E;je?X$Mn$RNZiA>ohs&nMU33wt@3Pq$WbH~;g-BLns=(aCB^}zA( z{m^4adaB%dr(VonX36rj7R(wKwRP zfM?%<%MyW9+vD{0Aa}ghGHZ8;H5m|h(!Ip_NkUWRqQGgedC;S<=W9BDlwCy6p6ks5T?RaG%xWjq7~U~ zH#|Cv`CPtgv2(cnXCb3BV5%z+WFmc@y7rDi%ZEA2g#3?1J#vfs1VT-jC z3{o)=$AcUq-s&1vq;CKmWqCY^1X7kJQ(JJ}9P}TqqQHU`4cJc1(Jp_z14msOHzY>` zbsexEfb3DB-tD#HxrGL{4iN)mTflR%GzJoXn(8YU>v}M)--$$SvpPo7ia^UEE2np zsHs;vGb=821}=AIuHah_NOU$clBTk0Ep8f~KO`KKpd?CU!layZ+R2fHwjXWS?f0I% z|JbKreB#tf%a7L=J8CXbU~@yF6*}jPF|L*wMhNVKh(Wg?a3xNK)_1F%(_X{F_s3b* zv>A5Ry>=*gbw4x}oNvZxJ3hUnn zy|oqqwbn#hkc=^?pxte4ZC{*UXlw1?JNL%ZPd)GxKlYh>PA+Cxly!YoP+MQLcY+2f z1a}%z+})u_aCa;24y9;-qD2bDDegg9+})v2+}*Xf(?aFTf4;d7_u)Qe&cix$_T=of z)>-=}#oozESI(?K+$8sYH*YJbkYvU~412hnXJyp~ks%@oxm3YJulBSC)_F!9+ z^5ThVmyxUM>i1*tjrC)GcQ#YDGF=SDc80zz`g$tZX?w|C$g>`q#jC%Y;Ghs%K}Pi% z5n5)3KIfazj#%2_hIWt*oLO(o z2C#wvG+Wk4BpSt*$wMRhZ_pypR>YVrh$#u~CgJWpirI;ehUBhDG%K>nI6gwcemTdz zKbTNeuu40+j)-t=7HTUOKB}{Lr!WV*m27zU`lR(a&9xR;56e?Ba1L6H(V|JK14y-F zRXf&5Yz3d!IMOD3JNB-JV-R;lToQu+;)S}Oa{1br(lXYKhm@HKuwppnuhD4fm=Vz- zm=Fwf0LnrM*8Kvq#S%xz6T1Ra!x37)yS|sd3NL$( z_Uk5aj*K(a*M88yBn)uH1qfd@Eq*Ak#Z_D|7UXqXh*xcSihi`joXnM$_0B1ik!czl zmtm&Ds)y8B@Js^B)0%T8#yn?K=5lcIKYu&wK+ekk`eX(D={OR?^v4^n$9fXA+=^2y zkieFIQUsKrx&=aN`J*2C>g_b>m(U%7(wf%|+hY-c5gdpE0x(L1t;piGd-n69L!TCY z_V=?{;NSf^L|`M*+*xIMP01*(ex5wV|8j`e0Wv>QJz6;s%2~{lwKjxTAhz~72~unE zHO=T$A>6Vo?IEB_OVWvs@2RtqiR|;?>pODMzXPv>C6tnrD~Jg}&ME}-T+jkyZO~wt zIyK5%VgIi}8fF~->=nm~RPAVpdZn)$$|}XV@$E`f9{jgg{vTZ{i@o3Qk6x~}wbb~H zeZ>m;EzN@8_AJwzQs^zGXake!$8lx!MA86ne#^DxS{z|c=gtt%geQd&gnh2ib|e9_ z&YLTOI>{pEU7HAUCKRxY3Anb28JgF#bgo8^UP|(|{CqZl@8wsx^&f?RL8VOS67XD1 zS3oEiB6Fq`LO)MIPq-#%!5jJv{}!FCYH8^*N4>=%5>6}+O?$Jyi9AL5BIMfNo#mqQ z+0yXKwLX7GRF-+%rb4ustOuix+PLBfQh#va%sxsSQ~&7XgOksj*s@Ch*jcR~k48V=?FVglJJHN?$_$ zSnzAgJA=*-lvzmXy_ki&>P~Rt4R8AdCaGj5Mtovq^D@ahst@D$eu#!#xb(<_ukxgG z^C%**mc2fGBK|pRjIgL^dRh+pid3-S%KtS?b%d*F@8;=ME7_cUcQ}d^4v>zJO9cTj zhVBAZ;K+HMGe-fVPHw=Z>yO-qVT<%Hqc)IDjyqmYx%ancviP}AF)#mwe#>jE=?UWG zNn|WZTsE3gM@?$~f{BC02My^xZ7B6EMO^#bRMEdyd?9h`-xe`>oH=Gx5G_glpFf9-eIemMS zLa&5tY;u^g&b**L>Yx)RNOT~1U5DRwH;Y8@2c?#rHRHyTmG7Kb-<%@G3VV@+N`? zzlH&1_|^R1-oDC2KVC{8AeJVi!~5|PNJHom>4o?l$E-#)?IQ6xqu{1|v~S*+9oLr6coe*Fs3JfY_q)U*PD*AOU|&3?0$@lbIvNlu z2Ze7e7jL+aO}G{`tcVMS9tPZEgY}6u>zu_M@}iU&{O?+c*RX$iXuikmMl z+R{rG-VQU9*Ed%ZQ?Kuj=Mr9LA-*538S}+x!78wZ@bN<;BFYmhtl-O|RlIVUbX$wd zCCI{Of$y%y>sp>Ztzcx^2twD@MX^YL0AxmrP(lVWQqh!OkDf1^*yAQA6GzfbskBTR z2R>Xsrz-XQOf#5tBW+{jI3{c&vOoh4kb`iKJ^GN?&lRYzBQqlouvV~?nUUGHESvCT zbeU`1m-hYH-DBYX5Bt18P>zJ}!}-B4GqItnD(|VG+1arBY7c!_qdEvHDFdB=BASvd zccf>w7P~h1xk{a1x2tMN;?Y3sE(&zYYJSS4Q2{x*+vl{FwvdY5=*u-)($}ggq164JvIa>1J7ZsP!cM6~3 zhri)96jkYD9osjfgOBa5hc^7w$=Wek9GFw(?v&(DRqTDtD_)ir{7l+lxKQ@KRb#Pxs1r7 z0|clgGE^X21v@a~6hyHp$0>4uSP>k?-fuZVtTd4k0gxU<)f_rP7tnSQ`g`hBsue$# zRSM^dNp_|Wr+SKOe6I>t5@;O$-A5@!o-B0#H@iJu=SpOr2kG9zT5st@0ry$xM36Sy;@$dEZl)FU>FHV(*9&wx)t{ zalO2nAam-3k*b59xviJzbEhGd> zVH4Rg%1dqToT6uwB(LGFHaw%82bQ%*dXNr?-3J(~AJL9$iaq*NaM9K#zd0!4+7T{= zSkg%mK%`i45=ux94?hg-wBgtrkbWlpELwa%Va2c9^gRC<__LTx(tBS~qtCEHCI{yf z0;7*PsRzV{NbmAlHB+@cJ%7<4p6sUGA36#h%iVC;E5~~gBS`C*a|B5xH_E$YJa03r zX%Ss|njNdj?Ya8kbgxfFiaq^D%Z&H!#my|0b-}v=!X3gSxeypwB7{koJzXl2l_1i# z)MNY0#zX|U4tbPMRCdiepWZDB)G<&kgCN@+9FdsDqa3mo@FzD7(WXEv9JI48wnnwa zh9mKC5qX3ZX;#SZdaf3TC_=){Hmx*8FP{n*nRz^TyC=CLB zRH{hL5f5HJ82EU!>4w;^GBx9We`6nf__L109b7@ zRD|l_TQ9ce8XXNQ0I!IdfEi;JMU?;~aPxE#{AaK4fpd%wiUEj;vG8HBQ!<}awfcD`@Cm*4QJ{l*c)~a9%E$RpvI#!l40AKE z^}XKnfkRL#+=SkR(T1Q)fGkr5qydQ0#3(m03O94b_|qn0rN3tic|R*&{-d*3;4n4x zC}~~$agRxLR>?@;8}h5P;5MYM<~rCGyLykJRnO zMGlr*#vx=a(p0gv_aczKB=&5{1OL|>FAx(Mbr={@DcnbOHhJ^oxGozp*J3$1a=&+$L zF+c%8Z@Wr(`8{y-<~hkq zN1mTWQ*cf3M%@MbGG5s*NV>M$LLp?;A#%U#@hrO6gm&K=p;k6`GM;H^Waf8!F!y!r zn||K!;$L^pTLI_&K0H2@>(MlH6w+1@X`AUVN&q0UPyUk<+KnPg(@R;PbZM^@yQO6S zdDh0xZ~<|-ky9*S5I;`4ka{qb95ln$*i6mE@lNs)H9vT#?HdVkf6B~5>zdN%BX}MM zJexAb4h_&e-o%UnGR!A04oXb66+3J8weKjdWsF+-^mGN^Tuhk)LaL^gK)CMTn^(b z+w+|pXef>um5jufm3?otAB~B~e3br7u&BFjv1Boto7@g6&y(b?yu~(2$)q5unPHcz zmhN6k6+{R9(pyw6Q!eyEc(+9-(jkarZZ?5XP>Z%2_J;wEBL!#YbEcQ@eI%aZhg*7T z%ExmbJC!x3vRxX0gEq5ShLJd!6%j4VMtd%-?Kqk4++8j9;6L|k?7_LE>%T9wd5{>& zby!H!8%=VOS4PT)U|?#ha!xv-e^?QJ(}l?-Y5x2D`J^WI?ze~W4X4FnXM<^0>?un1 z^hzK5NleHrIo0aZ84qHUGnH86_H)0M$Q14-eTl(wL!t!=O&1lv4yI2QEn&>ggM{rc z4m&*{-D#9nGo+|TOh%>Zv|=|uG$e1&`0(3CVZTe3~E)xRymgwFxQGyo4NBl>iiDmGD33!b=bN!0{;S-W8@!DoIEsXR$c83h@iYU1VC)B z(OpzWfv`rMw5;YC;bk+fvA@^FAGrd5W+uEp`;o@LAa0Yx3^@YGG5!kadNm6ODF=|F zNu5Ztz$%;%=A_QUS@52vz3f$`O^K8Sqq3SoJPW<9jC3%Kx)yojSb4gKlumb*CBaWOJBixyYRpUH^`AOq&v`sDgNQ`0vbfu9^Ib|eK%Voh zIkkKX*J5+^TCfc(?EL%+;(xBL7Z8&z<|aQ6zuIp~{^Jb!(R5^pAR0TP=5vN1h-Gu9pu_Fn z1f>Kkm=5(DzlOy;?NzaJ#(=rA)Yf0z^^@BlB=t{ zs~g^DHd@5Z?6dr~hx}?3u-ecgkcbY}L@JuVj&$@)mYUMp>9qyo*iZIcULmrDXlrGH zJAK-NIx%YY*mV&KkqhCA1%U$=DMN;U%vDVao|0sFkkXiAOm&Vt;r77a%d=!XPv5gI z&2n1LXDQ83=pB=g;wG0gVJI>NspWbH{XQXlcm`R%wK0ObDk^BhdwF zes7=B@|N(kMH?Tn6gV*}oJyP-9}R#_9V+C4MGf%R#EVO`n~}+r%d!5pSjRNWsI`X# zkx+&?N(5{rr7$g;z4rQ>(ET(~^ZxW4vB{z#Pp)#qP9IAS0vMHZjtH29;jal^+Q`~n zIdn1(on_cow|LwP-fWaD=E0u|i@$Ch49$}T4Gje@wJPzfp7@HXWRtb5p8KR%D2Xgm zcGW5qM}vfMV-G@K)9Pl7YVHMP%}`vu%k;m>4607q!1eVR_&E>7oMSNebtQ_Um-&U2 zh}wqEtE{ONlf%lBPR1&cQUIpojtpe4tIa*7r;v4X&2xYE?m1>o;S)O&jkUeW^?S#+ zrMX2uQs8^EqtQoN5~P0%^><*M{E(P#DQb;@lmQ_(N{nAL^h_%qrL<~DI#r{{J&ujQ zF6ZQ@9@@m*=HoJ!1P)`XV6n=r2}m9#&N-i3C~O5m>9?mkKV+MO0;p@}go5X?aQSpT z`+_4Q+y&P>-Yt@U2D=9N!#gY>W>Eq?*p zPolYb(KN{ZDUsr1k)pQFPHo%p!4<8jN~qdL6uDJQ?u5djOW0d8T7$PQ${g|oo!~tU zCN*Gai?)=PK&>tz?{651wDFbNT=1(qk|s)4G#QMYtLcVmnJWm=oD+?iuK!!@6Fs!3 z!0;#swEz~%c*kp*pPys!jZ|a3sr@Qc)^M< zhV?5@(o6ilqJjqyw2qCyID+h}p%&7!s#k1lZ+J$N_^hzXx8xIX)^!%*(xPEpGcHb+(CIc#kn0Z#T(k#B_IpoV{u2?el1kA zxf`02O)RV3O7Bx%AMEcn12PvY zg|bh_9K8&Dnt^v;f2Vr?^V^pH(QZI8$2bS4yT%ze7h1uFBb{=dMh;h+w%6^g?T?j+bCB$uy`wUJX$x ze}fmCho^~kP&$7I1`w1pvx5z>0RYw{PYl>%1UAwnaIF5$R_HV>hs%51D`D&X&GL22 zq-)R3lNhp?xH{hly2m8Dh_lH1ODo?Sf23&5wW-dAaX!E@&tmm41I73{z}n49I`#xXMU(%!W7B`}H_hu1#_xU@$^# zY1Lj7O9n3H_+z2GPLJK)+i*+y%QQfQQK&YIy_$Vk?xO1v+qOHKb82eM3f}z{ceLv< z_wTXF%YffA&kZm^p-IMey+b1BD6g(&Vdpr)2V$!B+LN>XjUTDb%_i!8!j`u#%s=VGTM2ap2GprwI$faF1QQEDF3iFha zveDG*50hh_Srx-MONFXwr;4;ErxrAMoqu{2jLfI6e^n%G20hM<+8B~jHIqLEIKgjK zJJL8gn!gQ%>X*wLo3<2KWmpi7eD`@dEwDG_BV1#*cVa6DH$VFOq$a#_uV6hGzx07d z-u`m~<&@Sfj&zr>rBYW55FuB1^tyD6XCC0xKLimW@FQg*HIadmw0eHzg*p+^O@C*5hh?1R z(UMZlKJn7Xm>qTDg1`1c61R%J2}%GEZbnm7E=2RzpITHJU0iMZJL#eTf)|5gwlSG%tK(%!zxW))5jz#pZ+~6207r#6uF&a6 zp<$J-;^|7il<67*#@c67pw(_3ZmI>idTp70yX<(JpVN>G*y{4FGWT<@o|9~Db~5d5 z@+K%`XIeik`E%}V!^6n&5vpY@LuXQyMGEy#EZC2XTMD}OW#VAsa!0PSOzoHd7m61z z+S8^v003iWg3*s*nK6pa6T4MSSdK^Qe&QHK>Se{mpBP1!V=O0U$CV{15{URUHhZ3W zH$Ixk{)4~2JIVA~yUg7hzm3s%4QoV`(u773c!MuA5I^k$|_JZa!oCHuJ zw0m^d(JZF zc+1Py%R+^hosV}COrNSa3EsZn%WZ4sWIP>;P*P%(rsvQk-Se~~w78b!XJRRCYU*aR zy@@yGoZL*l>3*ps_OsNdwONc^3Q3AQ$nVMW@|1XgQ$H2+=U?(!SAvAG7hA#br%UtL zP@L?outQ&p&vkFEdIcz{F0T25L zwh~HQ+xrIrxbg3*;oyGDp+ArXRz6Gdaa;hbAhpP_0MC}>vdi9Gj$SKf(OCQyc5Op5 z8grvOB62xt|La$;1WCVt1Na;8rI;qOu|&h{gf%0SGc3c1NT{x+mEpJOSTw0H_=06H z#_n!=7KP>O9NR_S&$5rRvK4cm&;C7J$hkKGd zE5^UY#=`?k1^PAP=v!qG9OH+Ih9?4G8PbM^)<4#-mfzSn!GBl3Qn6oZ*%IlwUlb$T z>Sz`4WJtl_FD{~X{iJKPdfp89^!7-rDOs1rwrZgq%Yrwv#1VTl#_ypnx^UZ=Kg8YZ zE4=qqEN_6`9_ynK4Emrwh-LH}6j1_6^tb ze3@idvv^Cpcn|m1xt;R*;O7*#Z{W{yxa<(x*5FR1L;k6mG#LTG_YJfmXGFrp zS0aVQyuh=cL-8|WWJ2A4R!uH*OyA#*Q*a!1?mKDJ0@tsfwS9N~yt8%-}yAd`u&u(n17Rx2m* zX&}~_*nI0*x8^GGH2A|l-~XmB>f(n_oNtP{7!UKGs@rCAd-(=mc`6i3i$iezhgLl$ zTm~$HP?iXt)+L#p@RXf)PoLw->X|POEV_gjd5PKhuF2s2N(yiUhy{EmmwPhp6U9pJ zzdBs}HvOZLR(o>!f@pmP2S?SqmzA3}Tzvcw+oy*PvUY0cUMSY*Mu1Cu%>^cec*uZ^(CZY|c z+U$~Eh5*bnk(cChj~m{*ZT9)WKMUv1eONb@MMhTGlJC#y!rYM)5|^>j_4OP-^D>$* zUgYWNC{iHoFZc}as)qckuu@+A3`sAl$^P+m)TS#RE4TwS-)4z5HlR(%*(N=&YOQXwv=t?Sa8$ zPSh$9U+3Z zs1YT-L^0YWNoa-D;lc@0N_Mc0vyj=1Y;F-^ zTw7CGHF9HG>`TJbko5UC`jIN!z4K-m`KI=?wh6GVdvr?Mh#IY}@}v-Gfuz0g<;1z+ z*URKnd3{T{O~ZvhbgZ4~3P}iLfPf(p0~GGiqk86#(nZ_HC;bu{`Q6Xe*1j~a>)Y#F z>$%PMts@21ble@e*LP#yb-1Qwyc$zkOdscTZW-f!iKpP0C2x+gL#XL;g5Sx+LmNlP ztv%#8kq#e}9a=cGK<++lQtiJy1%$Eu_=IZ%1If~n$8mDpykXebkXLVE{ZPzqtZK># z9tXn$fXC{0Kmq$$@cUzNdm}Mt-vo~8!$_Jq#**JM_LEP68Al&o@Bh3ED!qFbZ2dgp zJJl2PuuFAm)>|H#_{w{VIWT{Z4AK>EM%|3>7 zyRwE9@vB9&zNQ3gCEITDX&*C4Nug zOg`99cXazKJog~=O&2R{ZOTRMzie5d>o^L7u{b6dw4<;hc-|QeE7UhU~0v(UYZA~Nxli7ZD0MT^5f(1gSRfFb}<1m%}J;DS-qcP?cz!bX%a~6irW`X75V1VihE@vDXoY7JVL2i-iV>dUx8G2 z8&TwPeC}>`cO`stMg4z|43u3uwIs9Cp{X3}$esmdie0ZeHZ?7#jMC@hR?T7eIcR?` zQDS69OvEe2NC8=MV;{{z&``+W-up5WXUnM#l{{_zKD(aEH6O%S`0>t9T=3Ud^laxI z`WxP0GeH5s9!0;lAalN;>F)J|3*AjbH~++w0P*ZOYxl3kj>}G8OJ}$+=l9td z)IEY2eijC3dZe6`qtrpp<7Rl`f7LehW}89!+oA|*(n#!3|M<3u?je6D6ns6hD-Fgq z;O~IZM;A`2kU*7TD0ZwPL#Xf!UVQDLBza{PJD>44o^bScfw8@l4YyFma+x&lJiY5M z)z~x{7}#fAy)#nTCnxBKX>~8d;22KV!cd#ew}c!~&%6DZ1;kL~AoFFFmgbIuNG*q! zD&@~Z2GYtPw$N!j{ZrvbkkUN6NI_4dK~_)?&$llk9yIGK-hJ^GpMB3L{k~T(`MC{S z5!sv9xJUcQ{zA6ZrJYYeoCVZow~wJthmp37Q7AxF8uNLXn(o&JNu6i-d{Pc0aoLVi zAVXzbU8B&;c}hssv1SweMA7~rsl&i)Y%P2z^1kZ6st-A;BUg>x@es}DCcU8K$8w1?^C%b?on)$GbgRodl5F!1$aTR(hkH^2xd z6qqaT(BkNQu-sMlDIYmKeCJ(}t37r+s98ie!%#2G>9b`_x0rpcEM{l0@IrK>G?CF1tF$WT?Wg9~|nNB$m(co1X_hn*2Hc>%q^`@@xYAj$O+H_#US&n#mgj@w2=v zxm*0zFUC+FGXLOF*`%I~77yfZ#w%{bLY-5L_;Q$MaVZC@i}pi7^73JFHtjqCw$-RY zNU$}L-O-9NkL6V~_-%+$=`zpSItdY{E`(hrEs=np&SO&yxTd{)f;g|7J8kU9JsU}S z<(n_+b9THMSmUawnbVMxt`(z&jlK+T-W21KEVNmo=-EdAqAP90IFECq-P$3>O}MOFOnt<_K^hcDWpc!77PM3&3r zx9}Mo{^mbBe%3*7YiDliIHr`&ktn&z@II+iSoS!*(HCt@mmzq9g8pI7=YIcFWjl;n zV`qe}7BPw$xofnnVIsk@GcTHI0RSmGYlt=!hItbL%|ioZN-5G6DP|JIVsL#ALr&2i z=r#9ki_}Wf9yikvw`N2Rky#KvrH+(wZ&FgS!vtz03D2{UT`PBQ|4tsF%#3Cka)vBv%vIhWGkx>##@>|Dbf4YmrHWMyzcpD7^|Hr&QRXwT*SFGv^4P9) zQvb(ntENz~!wsv%iDCdsE3Mf}zY3o^LpG%dU~gM}?JF@$I<$G^Y#39Qt=C&`ImI-F z)I8TwxgW9ppX5_^Eci2tPsy6)2LhepwE{V+H$_*PyxbMn!@b4wvoVV{aRs)Vo%iST zmOfyAg%A*kn3t&axGG|RRh1mr8!5vD-=8*^QYH`S8Y2Mq6$+y%pp{6y5_yNjV_7Aa zoG-4=${^S1Xj$FS+`jDCM0y0z^|1pUiWHYz#X*2}L6 zo~#~!ZDkX)%iEKWmFnDQW)2~GKfz`f3IyHPb9!h4BcBgwIxzC;PX+RjcqupEwewn^ z-$!~Uw1SU(=eYR$^@cd+fWg%G+S@bN<6;bYO`Am3WJPS~Zs)$O8R;u2nc1+?TGBMf z?8dppX>}VqV1@#BH|(_6*dW#I&C`zX7VTlN5>E#4o)QnW#)rMm#%d(Y^okZK86rh4 z+zf?aL>L&Q7yesEWkZ^J!Xj23h`67k%cT@UWptSxR~d+_dg+%(XWeS}wz9|SOBU2q z=zlcVtCuaf*~UmmhHVoek#rq}G;VyMi|tj7>WSgs2(^?MT-B8QFIDVs1Ibq>l?t`# zp_6G)#nw~O*4VT?+oA@s#)jR8TG{`$xWX^OYVVCYu~HlvNjmlDu}NmPu$bBMq)b!C zvGw%+?+#T;&c%wSsX-P%0-HniG7jijR|6s%sjbnZpJ<}gC=)*IO285-$Fxn6On*O~ zJ_NtaVRJDej%->?OV1q0-u(EOClRse_926EV0sggS^%9@EJ@=XE?FhFj$=e#WKGj6 z6VVlgFacp&l$jJ6N}feAiJ=tBCSn-dFrXtHl$g!djN2J?*a60V?&qv4YzI{{ZZfXo zRo_Jh)+;{v z5fJ8_Yi9%{oX7ZHV}^Z}(zIU3A- zS@X(D8HPOyW(3i^C?Hr%vVKXRh3+}4Ic;MDOC1U2gTs=nm`A=tP`Kgo5zJ7@Mkh-{ z4->6Wxy6-w50toVMPW4^WN48TU0eq-nb=b{yl zPDli~wn~on_cQm06{rz9lSoN2e$##7ncIhIMw5DsU1Bk(Q4^LBm-R!ab62uPa(s)Y z$>;Bd-rmqd$G=nFJm=bh<1>pD5*0fgx*5~Yd03i1ZwhuRh{YoqsVl@<6lGGj7nzi5>nD_~&?a$d_I7OnYKS4C2Bp{nLw8 zmYQYZ*K`$eNllMPj zarb|CRi8?C_dzN0Sq=*PV64vwQ{D0CjAq6S+?`&gON41)fc?4mc(70iqdyhkm#@@O zXz8R3d!GEWr~A_)5j9k(hO9L-4$j)0vMz5DNS88rbg}Z-_Cq5G0M174TvDJs=TC1S zz$+QFI?KE=PEnf(K9>daT zd0GOzT}xTzrAl%U4kO0`>YkazQZOfj-$pV(2{iEe+T@dz0O-*xE1s{nb-_)gk2aZ^>T#`87TgEgl3o=jFG7Zx~RE=gj*GSZybkw?p<$ z2t(0BL&(cgQvd++*+2nZRlrwuIvsc^*88hEKn z{$b>GpDc z-n>P8isX8(`bw+8kY3+_LbjIS;KMUS{#IUkLTr#n`p@W^eb#RM%JEN2>nDV;r;4 zGUbnsSC)0z`LZD)@Zcr#kuZHJxcFMHNAP`G&B6V&TP=+YHj*oW_y02x5@qh-8%@(X zbSS+iCf3Nd@;6<}ptU=CZVA7{bl`UnY3p)uh*=BXr{@3W8%Uvq{~g!ffJ8jYcF3L? zzqJ?2S~{cj;C$}yFjb(QnE1A0dJCxu$bmQ1UNl((ocNp9?iWf+)?Dr3c|w6(x3|4^ z1#ZmUXHLNZAH3Uk3&a0xZ{rpJ&;9=43w>3j|MnP?2mk;W-pLuhv$1?uw*;1=TG70~4o66F>Y830g{Q-@W{ HScLsQzET2{ literal 0 HcmV?d00001 diff --git a/web/main/static/resources/images/zf.svg b/web/main/static/resources/images/zf.svg new file mode 100644 index 0000000..193a974 --- /dev/null +++ b/web/main/static/resources/images/zf.svg @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/web/main/static/resources/reload.html b/web/main/static/resources/reload.html new file mode 100644 index 0000000..5f99f0b --- /dev/null +++ b/web/main/static/resources/reload.html @@ -0,0 +1,24 @@ + + + + + + + + + + \ No newline at end of file diff --git a/web/main/static/resources/scripts/aiortc-client-new.js b/web/main/static/resources/scripts/aiortc-client-new.js new file mode 100644 index 0000000..ad17162 --- /dev/null +++ b/web/main/static/resources/scripts/aiortc-client-new.js @@ -0,0 +1,563 @@ +let video_list = {}; //element_id -- socket +let run_list = {}; //element_id -- runtag +let berror_state_list = {}; //element_id -- 错误信息显示 +let m_count = 0; +let connection_version = {}; // 保存每个 element_id 的版本号 +let channel_list = null; +const fourViewButton = document.getElementById('fourView'); +const nineViewButton = document.getElementById('nineView'); + +//页面即将卸载时执行 +window.addEventListener('beforeunload', function (event) { + // 关闭所有 WebSocket 连接或执行其他清理操作 + for(let key in video_list){ + const videoFrame = document.getElementById(`video-${key}`); + const event = new Event('closeVideo'); + videoFrame.dispatchEvent(event); + + delete video_list[key]; + berror_state_list[key] = false; + } +}); + +//页面加载时执行 +document.addEventListener('DOMContentLoaded', async function() { + console.log('DOM fully loaded and parsed'); + // 发送请求获取额外数据 --- 这个接口功能有点大了---暂时只是更新通道树2024-7-29 + try { + let response = await fetch('/api/channel/list'); + if (!response.ok) { + throw new Error('Network response was not ok'); + } + channel_list = await response.json(); + // 遍历输出每个元素的信息 + let area_name = "" + let html = '