From 76f04de08e4bb7aeaaaa8702d7c9bdeac47300ee Mon Sep 17 00:00:00 2001 From: Paul Abumov Date: Wed, 11 Dec 2024 20:34:22 -0500 Subject: [PATCH] Fixed auto-redirect upon Task completion in In-House provider --- .../workflows/cypress-end-to-end-tests.yml | 7 +- ...ask_with_worker_opinion__local__inhouse.py | 2 + .../webapp/package-lock.json | 4 +- .../form_composer_demo/webapp/package.json | 2 +- .../webapp/src/app_dynamic.tsx | 45 +++--- .../src/app_dynamic_remote_procedure.tsx | 49 +++--- .../webapp/src/app_simple.tsx | 143 +++++------------- .../src/app_simple_remote_procedure.tsx | 49 +++--- .../components/core_components_dynamic.tsx | 2 +- ...re_components_dynamic_remote_procedure.tsx | 4 +- .../src/components/core_components_simple.tsx | 8 +- ...ore_components_simple_remote_procedure.tsx | 4 +- .../webapp/webpack.config.js | 2 - .../webapp/webpack.config.remote_procedure.js | 2 - .../webapp/webpack.config.review.js | 2 - .../parlai_chat_task_demo/webapp/package.json | 2 +- .../parlai_chat_task_demo/webapp/src/main.js | 68 +++++---- .../webapp/webpack.config.js | 4 + .../conf/example__local__inhouse.yaml | 1 + .../run_task__local__inhouse.py | 1 + .../webapp/package.json | 2 +- .../webapp/src/app_remote_procedure.jsx | 78 +++++----- .../core_components_remote_procedure.jsx | 16 +- .../webapp/webpack.config.remote_procedure.js | 5 +- .../webapp/webpack.config.review.js | 1 - .../webapp/package-lock.json | 4 +- .../webapp/package.json | 2 +- .../webapp/src/app_remote_procedure.tsx | 51 ++++--- .../core_components_remote_procedure.tsx | 4 +- .../webapp/webpack.config.remote_procedure.js | 2 - .../webapp/webpack.config.review.js | 2 - .../conf/example__local__inhouse.yaml | 1 + ...xample_with_screening__local__inhouse.yaml | 1 + .../mnist/run_task__local__inhouse.py | 2 +- .../mnist/webapp/package.json | 2 +- .../remote_procedure/mnist/webapp/src/app.jsx | 67 ++++---- .../webapp/src/components/core_components.jsx | 17 +-- .../mnist/webapp/webpack.config.js | 5 +- .../mnist/webapp/webpack.config.review.js | 1 - .../conf/example__local__inhouse.yaml | 1 + .../run_task__local__inhouse.py | 1 + .../toxicity_detection/webapp/package.json | 2 +- .../webapp/src/app_remote_procedure.jsx | 49 +++--- .../core_components_remote_procedure.jsx | 10 +- .../webapp/webpack.config.remote_procedure.js | 5 +- .../webapp/webpack.config.review.js | 1 - .../conf/example__local__inhouse.yaml | 1 + ...le_with_authorization__local__inhouse.yaml | 1 + ...ample_with_onboarding__local__inhouse.yaml | 1 + ...xample_with_screening__local__inhouse.yaml | 1 + .../webapp/package-lock.json | 4 +- .../static_react_task/webapp/package.json | 2 +- examples/static_react_task/webapp/src/app.jsx | 52 ++++--- .../webapp/src/components/core_components.jsx | 30 ++-- .../webapp/webpack.config.js | 5 +- .../conf/example__local__inhouse.yaml | 8 +- ...ample_with_onboarding__local__inhouse.yaml | 6 +- .../run_task__local__inhouse.py | 4 + .../webapp/package.json | 2 +- .../webapp/src/app.jsx | 71 +++++---- .../webapp/src/components/core_components.jsx | 52 +++++-- .../webapp/webpack.config.js | 3 +- .../webapp/package-lock.json | 4 +- .../video_annotator_demo/webapp/package.json | 2 +- .../webapp/src/app_dynamic.tsx | 61 +++++--- .../webapp/src/app_simple.tsx | 99 +++--------- .../components/core_components_dynamic.tsx | 2 +- .../src/components/core_components_simple.tsx | 2 +- .../webapp/webpack.config.js | 2 - .../webapp/webpack.config.review.js | 1 - .../architects/router/build_router.py | 5 +- .../router/flask/mephisto_flask_blueprint.py | 2 +- .../architects/router/node/server.js | 2 +- .../form_composer/webapp/src/app.tsx | 98 +++--------- .../webapp/src/components/core_components.tsx | 4 +- .../form_composer/webapp/webpack.config.js | 2 - .../webapp/webpack.config.review.js | 2 - .../video_annotator/webapp/src/app.tsx | 100 +++--------- .../webapp/src/components/core_components.tsx | 4 +- .../video_annotator/webapp/webpack.config.js | 2 - .../webapp/webpack.config.review.js | 2 - packages/mephisto-addons/build/bundle.js | 2 +- .../build/bundle.js.LICENSE.txt | 35 ++++- packages/mephisto-addons/package.json | 4 +- .../mephisto-addons/src/apps/MephistoApp.tsx | 53 +++++++ packages/mephisto-addons/src/index.ts | 4 +- .../src/pages/InhouseTaskPage.tsx | 36 +++++ packages/mephisto-core/build/bundle.js | 2 +- packages/mephisto-core/package.json | 2 +- packages/mephisto-core/src/constants.js | 13 ++ packages/mephisto-core/src/index.js | 20 ++- yarn.lock | 35 ++++- 92 files changed, 815 insertions(+), 763 deletions(-) create mode 100644 packages/mephisto-addons/src/apps/MephistoApp.tsx create mode 100644 packages/mephisto-addons/src/pages/InhouseTaskPage.tsx create mode 100644 packages/mephisto-core/src/constants.js diff --git a/.github/workflows/cypress-end-to-end-tests.yml b/.github/workflows/cypress-end-to-end-tests.yml index 2756b39cf..287f1995a 100644 --- a/.github/workflows/cypress-end-to-end-tests.yml +++ b/.github/workflows/cypress-end-to-end-tests.yml @@ -570,10 +570,9 @@ jobs: - name: 🔪 Killing the web server run: | - sudo apt install procps -y # Installing `pkill` - sudo pkill -9 python - sudo pkill -9 node - echo "Web server killed" + kill -INT $(lsof -i -P -n | grep LISTEN | grep python | awk '{print $2}') + kill -INT $(lsof -i -P -n | grep LISTEN | grep node | awk '{print $2}') + echo "Web server was killed" - name: 🥛 Expiring units run: | diff --git a/examples/form_composer_demo/run_task_with_worker_opinion__local__inhouse.py b/examples/form_composer_demo/run_task_with_worker_opinion__local__inhouse.py index f4a6ccbca..fef6b0edc 100644 --- a/examples/form_composer_demo/run_task_with_worker_opinion__local__inhouse.py +++ b/examples/form_composer_demo/run_task_with_worker_opinion__local__inhouse.py @@ -16,10 +16,12 @@ @task_script(default_config_file="example__local__inhouse") def main(operator: Operator, cfg: DictConfig) -> None: os.environ["REACT_APP__WITH_WORKER_OPINION"] = "true" + examples.build_form_composer_simple( force_rebuild=cfg.mephisto.task.force_rebuild, post_install_script=cfg.mephisto.task.post_install_script, ) + operator.launch_task_run(cfg.mephisto) operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) diff --git a/examples/form_composer_demo/webapp/package-lock.json b/examples/form_composer_demo/webapp/package-lock.json index 6075dd0c5..f3bbbb74b 100644 --- a/examples/form_composer_demo/webapp/package-lock.json +++ b/examples/form_composer_demo/webapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "form_composer_demo", - "version": "2.0.0", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "form_composer_demo", - "version": "2.0.0", + "version": "3.0.0", "dependencies": { "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", diff --git a/examples/form_composer_demo/webapp/package.json b/examples/form_composer_demo/webapp/package.json index 9f7190fe1..6ecaf6bcd 100644 --- a/examples/form_composer_demo/webapp/package.json +++ b/examples/form_composer_demo/webapp/package.json @@ -1,6 +1,6 @@ { "name": "form_composer_demo", - "version": "2.0.0", + "version": "3.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/form_composer_demo/webapp/src/app_dynamic.tsx b/examples/form_composer_demo/webapp/src/app_dynamic.tsx index 7564c2d95..4f6f10c4b 100644 --- a/examples/form_composer_demo/webapp/src/app_dynamic.tsx +++ b/examples/form_composer_demo/webapp/src/app_dynamic.tsx @@ -4,7 +4,8 @@ * LICENSE file in the root directory of this source tree. */ -import { ErrorBoundary, useMephistoTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; import { @@ -12,36 +13,38 @@ import { LoadingScreen, } from "./components/core_components_dynamic"; -/* ================= Application Components ================= */ - -function MainApp() { +function App() { const { - isLoading, - initialTaskData, - handleSubmit, handleFatalError, + handleSubmit, + initialTaskData, + isLoading, + providerType, }: { - isLoading: boolean; - initialTaskData: ConfigTaskType; - handleSubmit: Function; handleFatalError: Function; + handleSubmit: Function; + initialTaskData: ConfigTaskType; + isLoading: boolean; + providerType: string; } = useMephistoTask(); - if (isLoading || !initialTaskData) { + if (isLoading) { return ; } return ( -
- - - -
+ + + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/form_composer_demo/webapp/src/app_dynamic_remote_procedure.tsx b/examples/form_composer_demo/webapp/src/app_dynamic_remote_procedure.tsx index c40335698..ae3e2d1c6 100644 --- a/examples/form_composer_demo/webapp/src/app_dynamic_remote_procedure.tsx +++ b/examples/form_composer_demo/webapp/src/app_dynamic_remote_procedure.tsx @@ -4,7 +4,8 @@ * LICENSE file in the root directory of this source tree. */ -import { ErrorBoundary, useMephistoRemoteProcedureTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoRemoteProcedureTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; import { @@ -12,44 +13,46 @@ import { LoadingScreen, } from "./components/core_components_dynamic_remote_procedure"; -/* ================= Application Components ================= */ - -function MainApp() { +function App() { const { - isLoading, + handleFatalError, + handleSubmit, initialTaskData, + isLoading, + providerType, remoteProcedure, - handleSubmit, - handleFatalError, }: { - isLoading: boolean; + handleFatalError: Function; + handleSubmit: Function; initialTaskData: ConfigTaskType; + isLoading: boolean; + providerType: string; remoteProcedure: RemoteProcedureCollectionType; - handleSubmit: Function; - handleFatalError: Function; } = useMephistoRemoteProcedureTask(); - if (isLoading || !initialTaskData) { + if (isLoading) { return ; } let _initialTaskData: ConfigTaskType = initialTaskData; - if (initialTaskData.hasOwnProperty("task_data")) { + if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { _initialTaskData = initialTaskData.task_data; } return ( -
- - - -
+ + + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/form_composer_demo/webapp/src/app_simple.tsx b/examples/form_composer_demo/webapp/src/app_simple.tsx index 891a415a5..71ee2f171 100644 --- a/examples/form_composer_demo/webapp/src/app_simple.tsx +++ b/examples/form_composer_demo/webapp/src/app_simple.tsx @@ -4,15 +4,10 @@ * LICENSE file in the root directory of this source tree. */ -import { WelcomePage, WorkerOpinion } from "mephisto-addons"; -import { - ErrorBoundary, - isWorkerOpinionEnabled, - useMephistoTask, -} from "mephisto-core"; +import { MephistoApp, WorkerOpinion } from "mephisto-addons"; +import { isWorkerOpinionEnabled, useMephistoTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; -import { BrowserRouter, Route, Routes } from "react-router-dom"; import { FormComposerBaseFrontend, LoadingScreen, @@ -21,93 +16,37 @@ import { let WITH_WORKER_OPINION: boolean = isWorkerOpinionEnabled(); -/* ================= Application Components ================= */ - -type HomePagePropsType = { - isLoading?: boolean; - initialTaskData: ConfigTaskType; - handleSubmit: Function; - handleFatalError: Function; - isOnboarding: boolean; - resonseSubmitted: boolean; - setResonseSubmitted: React.Dispatch>; -}; - -function HomePage({ - handleFatalError, - handleSubmit, - initialTaskData, - isOnboarding, - resonseSubmitted, - setResonseSubmitted, -}: HomePagePropsType) { - // In case of visiting home page but without any GET-parameters - if (!initialTaskData?.form) { - return ( -
-

Welcome to Mephisto

- -
- Click here to proceed to your tasks. -
-
- ); - } - - // If all GET-parameters were passed and server returned task data - return ( - <> - { - setResonseSubmitted(true); - handleSubmit(data); - }} - onError={handleFatalError} - /> - - {WITH_WORKER_OPINION && resonseSubmitted && ( -
- -
- )} - - ); -} - -function MainApp() { +function App() { const { - isLoading, - initialTaskData, + blockedExplanation, + blockedReason, handleFatalError, handleSubmit, + initialTaskData, + isLoading, isOnboarding, - blockedExplanation, - blockedReason, + providerType, }: { - isLoading: boolean; - initialTaskData: ConfigTaskType; - handleSubmit: Function; - handleFatalError: Function; - isOnboarding: boolean; blockedExplanation: string; blockedReason: string; + handleFatalError: Function; + handleSubmit: Function; + initialTaskData: ConfigTaskType; + isLoading: boolean; + isOnboarding: boolean; + providerType: string; } = useMephistoTask(); - const [resonseSubmitted, setResonseSubmitted] = React.useState( + const [responseSubmitted, setResponseSubmitted] = React.useState( false ); React.useEffect(() => { - if (resonseSubmitted) { + if (responseSubmitted) { // Scroll to the bollom of the page to reveal Worker Opinion block window.scrollTo(0, document.body.scrollHeight); } - }, [resonseSubmitted]); + }, [responseSubmitted]); if (blockedReason !== null) { return ( @@ -128,33 +67,31 @@ function MainApp() { } return ( -
- - - } /> + + { + setResponseSubmitted(true); + handleSubmit(data); + }} + onError={handleFatalError} + /> - - } + {WITH_WORKER_OPINION && responseSubmitted && ( +
+ - - -
+
+ )} + ); } -ReactDOM.render( - - - , - document.getElementById("app") -); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/form_composer_demo/webapp/src/app_simple_remote_procedure.tsx b/examples/form_composer_demo/webapp/src/app_simple_remote_procedure.tsx index 02f75cae1..63dfed5a6 100644 --- a/examples/form_composer_demo/webapp/src/app_simple_remote_procedure.tsx +++ b/examples/form_composer_demo/webapp/src/app_simple_remote_procedure.tsx @@ -4,7 +4,8 @@ * LICENSE file in the root directory of this source tree. */ -import { ErrorBoundary, useMephistoRemoteProcedureTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoRemoteProcedureTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; import { @@ -12,44 +13,46 @@ import { LoadingScreen, } from "./components/core_components_simple_remote_procedure"; -/* ================= Application Components ================= */ - -function MainApp() { +function App() { const { - isLoading, + handleFatalError, + handleSubmit, initialTaskData, + isLoading, + providerType, remoteProcedure, - handleSubmit, - handleFatalError, }: { - isLoading: boolean; + handleFatalError: Function; + handleSubmit: Function; initialTaskData: ConfigTaskType; + isLoading: boolean; + providerType: string; remoteProcedure: RemoteProcedureCollectionType; - handleSubmit: Function; - handleFatalError: Function; } = useMephistoRemoteProcedureTask(); - if (isLoading || !initialTaskData) { + if (isLoading) { return ; } let _initialTaskData: ConfigTaskType = initialTaskData; - if (initialTaskData.hasOwnProperty("task_data")) { + if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { _initialTaskData = initialTaskData.task_data; } return ( -
- - - -
+ + + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/form_composer_demo/webapp/src/components/core_components_dynamic.tsx b/examples/form_composer_demo/webapp/src/components/core_components_dynamic.tsx index 4f5f8a841..c48fdc408 100644 --- a/examples/form_composer_demo/webapp/src/components/core_components_dynamic.tsx +++ b/examples/form_composer_demo/webapp/src/components/core_components_dynamic.tsx @@ -41,7 +41,7 @@ function FormComposerBaseFrontend({ onError, finalResults = null, }: FormComposerBaseFrontendPropsType) { - let initialConfigFormData: ConfigFormType = taskData.form; + let initialConfigFormData: ConfigFormType = taskData?.form; if (!initialConfigFormData) { return
Passed form data is invalid... Recheck your task config.
; diff --git a/examples/form_composer_demo/webapp/src/components/core_components_dynamic_remote_procedure.tsx b/examples/form_composer_demo/webapp/src/components/core_components_dynamic_remote_procedure.tsx index 33ec654ef..1b411cae2 100644 --- a/examples/form_composer_demo/webapp/src/components/core_components_dynamic_remote_procedure.tsx +++ b/examples/form_composer_demo/webapp/src/components/core_components_dynamic_remote_procedure.tsx @@ -76,7 +76,7 @@ function FormComposerBaseFrontend({ setFormComposerRenderingErrors, ] = React.useState(null); - let initialConfigFormData: ConfigFormType = taskData.form; + let initialConfigFormData: ConfigFormType = taskData?.form; prepareRemoteProcedures(remoteProcedure); @@ -87,7 +87,7 @@ function FormComposerBaseFrontend({ setLoadingFormData, setFormComposerRenderingErrors ); - }, [taskData.form]); + }, [taskData?.form]); if (!initialConfigFormData) { return ; diff --git a/examples/form_composer_demo/webapp/src/components/core_components_simple.tsx b/examples/form_composer_demo/webapp/src/components/core_components_simple.tsx index 0ef10ac02..658c41741 100644 --- a/examples/form_composer_demo/webapp/src/components/core_components_simple.tsx +++ b/examples/form_composer_demo/webapp/src/components/core_components_simple.tsx @@ -73,6 +73,10 @@ type ScreeningComponentPropsType = { }; function ScreeningComponent({ taskData }: ScreeningComponentPropsType) { + if (!taskData) { + return ""; + } + return (
Screening Unit. Please, enter "{taskData.expecting_answers.name_first}" in @@ -97,7 +101,7 @@ function FormComposerBaseFrontend({ onError, finalResults = null, }: FormComposerBaseFrontendPropsType) { - let initialConfigFormData: ConfigFormType = taskData.form; + let initialConfigFormData: ConfigFormType = taskData?.form; if (!initialConfigFormData) { return
Passed form data is invalid... Recheck your task config.
; @@ -106,7 +110,7 @@ function FormComposerBaseFrontend({ return (
{/* Screening banner */} - {taskData.isScreeningUnit && } + {taskData?.isScreeningUnit && } (null); - let initialConfigFormData: ConfigFormType = taskData.form; + let initialConfigFormData: ConfigFormType = taskData?.form; prepareRemoteProcedures(remoteProcedure); @@ -74,7 +74,7 @@ function FormComposerBaseFrontend({ setLoadingFormData, setFormComposerRenderingErrors ); - }, [taskData.form]); + }, [taskData?.form]); if (!initialConfigFormData) { return ; diff --git a/examples/form_composer_demo/webapp/webpack.config.js b/examples/form_composer_demo/webapp/webpack.config.js index 0db6c9e0e..0ad1929de 100644 --- a/examples/form_composer_demo/webapp/webpack.config.js +++ b/examples/form_composer_demo/webapp/webpack.config.js @@ -34,12 +34,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../packages/mephisto-addons" diff --git a/examples/form_composer_demo/webapp/webpack.config.remote_procedure.js b/examples/form_composer_demo/webapp/webpack.config.remote_procedure.js index a3dd1eb0a..b4667eeaf 100644 --- a/examples/form_composer_demo/webapp/webpack.config.remote_procedure.js +++ b/examples/form_composer_demo/webapp/webpack.config.remote_procedure.js @@ -33,12 +33,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../packages/mephisto-addons" diff --git a/examples/form_composer_demo/webapp/webpack.config.review.js b/examples/form_composer_demo/webapp/webpack.config.review.js index 836de2b2e..20a120584 100644 --- a/examples/form_composer_demo/webapp/webpack.config.review.js +++ b/examples/form_composer_demo/webapp/webpack.config.review.js @@ -33,12 +33,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../packages/mephisto-addons" diff --git a/examples/parlai_chat_task_demo/webapp/package.json b/examples/parlai_chat_task_demo/webapp/package.json index 9159f45e3..c7a6f3a28 100644 --- a/examples/parlai_chat_task_demo/webapp/package.json +++ b/examples/parlai_chat_task_demo/webapp/package.json @@ -1,6 +1,6 @@ { "name": "parlai-mturk-task-compiler", - "version": "1.0.0", + "version": "2.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/parlai_chat_task_demo/webapp/src/main.js b/examples/parlai_chat_task_demo/webapp/src/main.js index b5e349267..895c39587 100644 --- a/examples/parlai_chat_task_demo/webapp/src/main.js +++ b/examples/parlai_chat_task_demo/webapp/src/main.js @@ -4,10 +4,10 @@ * LICENSE file in the root directory of this source tree. */ +import { MephistoApp } from "mephisto-addons"; import React from "react"; import ReactDOM from "react-dom"; import "bootstrap-chat/styles.css"; - import { ChatApp, ChatMessage, DefaultTaskDescription } from "bootstrap-chat"; function RenderChatMessage({ message, mephistoContext, appContext, idx }) { @@ -31,36 +31,44 @@ function RenderChatMessage({ message, mephistoContext, appContext, idx }) { ); } -function MainApp() { +function App() { return ( - ( - - )} - renderSidePane={({ mephistoContext: { taskConfig } }) => ( - -

This is a custom Task Description loaded from a custom bundle

-

- It has the ability to do a number of things, like directly access - the contents of task data, view the number of messages so far, and - pretty much anything you make like. We're also able to control other - components as well, as in this example we've made it so that if you - click a message, it will alert with that message idx. -

-

The regular task description content will now appear below:

-
- )} - /> + null} + hasTaskSpecificData={true} + providerType={"inhouse"} + > + ( + + )} + renderSidePane={({ mephistoContext: { taskConfig } }) => ( + +

+ This is a custom Task Description loaded from a custom bundle +

+

+ It has the ability to do a number of things, like directly access + the contents of task data, view the number of messages so far, and + pretty much anything you make like. We're also able to control + other components as well, as in this example we've made it so that + if you click a message, it will alert with that message idx. +

+

The regular task description content will now appear below:

+
+ )} + /> +
); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/parlai_chat_task_demo/webapp/webpack.config.js b/examples/parlai_chat_task_demo/webapp/webpack.config.js index 04af7e261..0fe25e9cc 100644 --- a/examples/parlai_chat_task_demo/webapp/webpack.config.js +++ b/examples/parlai_chat_task_demo/webapp/webpack.config.js @@ -20,6 +20,10 @@ module.exports = { __dirname, "../../../packages/mephisto-core" ), + "mephisto-addons": path.resolve( + __dirname, + "../../../packages/mephisto-addons" + ), }, fallback: { net: false, diff --git a/examples/remote_procedure/elementary_remote_procedure/hydra_configs/conf/example__local__inhouse.yaml b/examples/remote_procedure/elementary_remote_procedure/hydra_configs/conf/example__local__inhouse.yaml index a35b373ad..1c54c2a7b 100644 --- a/examples/remote_procedure/elementary_remote_procedure/hydra_configs/conf/example__local__inhouse.yaml +++ b/examples/remote_procedure/elementary_remote_procedure/hydra_configs/conf/example__local__inhouse.yaml @@ -32,3 +32,4 @@ mephisto: # NOTE Model-in-the-loop tasks need to be careful to configure only as many concurrent # connections as their model can handle at once max_num_concurrent_units: 40 + force_rebuild: true diff --git a/examples/remote_procedure/elementary_remote_procedure/run_task__local__inhouse.py b/examples/remote_procedure/elementary_remote_procedure/run_task__local__inhouse.py index 2edda3445..7c6a1b49d 100644 --- a/examples/remote_procedure/elementary_remote_procedure/run_task__local__inhouse.py +++ b/examples/remote_procedure/elementary_remote_procedure/run_task__local__inhouse.py @@ -49,6 +49,7 @@ def _build_tasks(num_tasks: int) -> List[dict]: { "index": x, "local_value_key": x, + "has_data": True, } ) diff --git a/examples/remote_procedure/elementary_remote_procedure/webapp/package.json b/examples/remote_procedure/elementary_remote_procedure/webapp/package.json index c4d3e1c1e..525808908 100644 --- a/examples/remote_procedure/elementary_remote_procedure/webapp/package.json +++ b/examples/remote_procedure/elementary_remote_procedure/webapp/package.json @@ -1,6 +1,6 @@ { "name": "elementary-remote-procedure", - "version": "1.0.1", + "version": "2.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/remote_procedure/elementary_remote_procedure/webapp/src/app_remote_procedure.jsx b/examples/remote_procedure/elementary_remote_procedure/webapp/src/app_remote_procedure.jsx index a60551e75..765542a20 100644 --- a/examples/remote_procedure/elementary_remote_procedure/webapp/src/app_remote_procedure.jsx +++ b/examples/remote_procedure/elementary_remote_procedure/webapp/src/app_remote_procedure.jsx @@ -4,48 +4,46 @@ * LICENSE file in the root directory of this source tree. */ +import { MephistoApp } from "mephisto-addons"; import { - ErrorBoundary, MephistoContext, + PROVIDER_TYPE, useMephistoRemoteProcedureTask, } from "mephisto-core"; import React from "react"; import ReactDOM from "react-dom"; import { - LoadingScreen, ElementaryRemoteProcedureTaskFrontend, + LoadingScreen, } from "./components/core_components_remote_procedure.jsx"; -/* ================= Application Components ================= */ - -// Generate a random id -function uuidv4() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { - var r = (Math.random() * 16) | 0, - v = c == "x" ? r : (r & 0x3) | 0x8; - return v.toString(16); - }); -} - -function RemoteProcedureApp() { - let mephistoProps = useMephistoRemoteProcedureTask({}); +function App() { + let mephistoProps = useMephistoRemoteProcedureTask(); let { - blockedReason, blockedExplanation, - taskConfig, - isPreview, - previewHtml, + blockedReason, + handleFatalError, + handleSubmit, initialTaskData, isLoading, - handleSubmit, - remoteProcedure, isOnboarding, - handleFatalError, + isPreview, + previewHtml, + providerType, + remoteProcedure, + taskConfig, } = mephistoProps; const handleRemoteCall = remoteProcedure("handle_with_model"); + const isInhouseProvider = providerType === PROVIDER_TYPE.INHOUSE; + + let _initialTaskData = initialTaskData; + if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { + _initialTaskData = initialTaskData.task_data; + } + if (isOnboarding) { // TODO You can use this as an opportunity to display anything you want for // an onboarding agent @@ -62,9 +60,17 @@ function RemoteProcedureApp() { return ; } - if (isPreview) { - if (!taskConfig.has_preview) { - return ; + if (isPreview && !isInhouseProvider) { + if (!taskConfig?.has_preview) { + return ( +
+
+
+ ); } if (previewHtml === null) { @@ -75,7 +81,11 @@ function RemoteProcedureApp() { } return ( - +
-
- ); -} - -function TaskPreviewView({ description }) { - return ( -
-
-
+ ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/elementary_remote_procedure/webapp/src/components/core_components_remote_procedure.jsx b/examples/remote_procedure/elementary_remote_procedure/webapp/src/components/core_components_remote_procedure.jsx index f46ad9fc3..327b0422b 100644 --- a/examples/remote_procedure/elementary_remote_procedure/webapp/src/components/core_components_remote_procedure.jsx +++ b/examples/remote_procedure/elementary_remote_procedure/webapp/src/components/core_components_remote_procedure.jsx @@ -6,10 +6,6 @@ import React from "react"; -function LoadingScreen() { - return Loading...; -} - function Directions({ children }) { return (
@@ -18,6 +14,10 @@ function Directions({ children }) { ); } +function LoadingScreen() { + return Loading...; +} + function Instructions() { return (
@@ -44,16 +44,16 @@ function ElementaryRemoteProcedureTaskFrontend({ }) { const inReviewState = finalResults !== null; - if (!inReviewState && !taskData) { - return ; - } - const [queryCount, setQueryCount] = React.useState(0); let canSubmit = queryCount > 3; const disabledQueryButton = inReviewState; const disabledSubmitButton = inReviewState || !canSubmit; + if (!inReviewState && !taskData) { + return ; + } + return (
{/* Final result of template example (needed only for TaskReview app) */} diff --git a/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.remote_procedure.js b/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.remote_procedure.js index fcd26efcf..a98ae5fd6 100644 --- a/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.remote_procedure.js +++ b/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.remote_procedure.js @@ -16,11 +16,14 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), + "mephisto-addons": path.resolve( + __dirname, + "../../../../packages/mephisto-addons" + ), }, fallback: { net: false, diff --git a/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.review.js b/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.review.js index 6350057f6..3d36dfb6b 100644 --- a/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.review.js +++ b/examples/remote_procedure/elementary_remote_procedure/webapp/webpack.config.review.js @@ -16,7 +16,6 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" diff --git a/examples/remote_procedure/interactive_image_generation/webapp/package-lock.json b/examples/remote_procedure/interactive_image_generation/webapp/package-lock.json index 0b72f5dce..ce207a1de 100644 --- a/examples/remote_procedure/interactive_image_generation/webapp/package-lock.json +++ b/examples/remote_procedure/interactive_image_generation/webapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "interactive_image_generation", - "version": "3.0.0", + "version": "4.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "interactive_image_generation", - "version": "3.0.0", + "version": "4.0.0", "dependencies": { "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", diff --git a/examples/remote_procedure/interactive_image_generation/webapp/package.json b/examples/remote_procedure/interactive_image_generation/webapp/package.json index 6e0701ece..3ae1d0092 100644 --- a/examples/remote_procedure/interactive_image_generation/webapp/package.json +++ b/examples/remote_procedure/interactive_image_generation/webapp/package.json @@ -1,6 +1,6 @@ { "name": "interactive_image_generation", - "version": "3.0.0", + "version": "4.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/remote_procedure/interactive_image_generation/webapp/src/app_remote_procedure.tsx b/examples/remote_procedure/interactive_image_generation/webapp/src/app_remote_procedure.tsx index 3f21be70b..2c8573b51 100644 --- a/examples/remote_procedure/interactive_image_generation/webapp/src/app_remote_procedure.tsx +++ b/examples/remote_procedure/interactive_image_generation/webapp/src/app_remote_procedure.tsx @@ -4,7 +4,8 @@ * LICENSE file in the root directory of this source tree. */ -import { ErrorBoundary, useMephistoRemoteProcedureTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoRemoteProcedureTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; import { @@ -12,47 +13,49 @@ import { LoadingScreen, } from "./components/core_components_remote_procedure"; -/* ================= Application Components ================= */ - -function MainApp() { +function App() { const { - isLoading, + handleFatalError, + handleSubmit, initialTaskData, + isLoading, + providerType, remoteProcedure, - handleSubmit, - handleFatalError, setTaskSubmitData, }: { - isLoading: boolean; + handleFatalError: Function; + handleSubmit: Function; initialTaskData: ConfigTaskType; + isLoading: boolean; + providerType: string; remoteProcedure: RemoteProcedureCollectionType; - handleSubmit: Function; - handleFatalError: Function; setTaskSubmitData: SetTaskSubmitDataType; } = useMephistoRemoteProcedureTask(); - if (isLoading || !initialTaskData) { + if (isLoading) { return ; } let _initialTaskData: ConfigTaskType = initialTaskData; - if (initialTaskData.hasOwnProperty("task_data")) { + if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { _initialTaskData = initialTaskData.task_data; } return ( -
- - - -
+ + + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/interactive_image_generation/webapp/src/components/core_components_remote_procedure.tsx b/examples/remote_procedure/interactive_image_generation/webapp/src/components/core_components_remote_procedure.tsx index 0a5443466..76dfcd6e7 100644 --- a/examples/remote_procedure/interactive_image_generation/webapp/src/components/core_components_remote_procedure.tsx +++ b/examples/remote_procedure/interactive_image_generation/webapp/src/components/core_components_remote_procedure.tsx @@ -78,7 +78,7 @@ function FormComposerBaseFrontend({ setFormComposerRenderingErrors, ] = React.useState(null); - let initialConfigFormData: ConfigFormType = taskData.form; + let initialConfigFormData: ConfigFormType = taskData?.form; prepareRemoteProcedures(remoteProcedure); @@ -89,7 +89,7 @@ function FormComposerBaseFrontend({ setLoadingFormData, setFormComposerRenderingErrors ); - }, [taskData.form]); + }, [taskData?.form]); if (!initialConfigFormData) { return ; diff --git a/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.remote_procedure.js b/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.remote_procedure.js index 749742652..a9b63e37e 100644 --- a/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.remote_procedure.js +++ b/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.remote_procedure.js @@ -17,12 +17,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../../packages/mephisto-addons" diff --git a/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.review.js b/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.review.js index 14e04425e..7ccde845d 100644 --- a/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.review.js +++ b/examples/remote_procedure/interactive_image_generation/webapp/webpack.config.review.js @@ -17,12 +17,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../../packages/mephisto-addons" diff --git a/examples/remote_procedure/mnist/hydra_configs/conf/example__local__inhouse.yaml b/examples/remote_procedure/mnist/hydra_configs/conf/example__local__inhouse.yaml index 47d7b6f67..3d98728d2 100644 --- a/examples/remote_procedure/mnist/hydra_configs/conf/example__local__inhouse.yaml +++ b/examples/remote_procedure/mnist/hydra_configs/conf/example__local__inhouse.yaml @@ -31,3 +31,4 @@ mephisto: task_tags: "mnist,drawing,models,correction" # We expect to handle 25 people using the MNIST model at once max_num_concurrent_units: 25 + force_rebuild: true diff --git a/examples/remote_procedure/mnist/hydra_configs/conf/example_with_screening__local__inhouse.yaml b/examples/remote_procedure/mnist/hydra_configs/conf/example_with_screening__local__inhouse.yaml index 7befb9bea..c3a1d6075 100644 --- a/examples/remote_procedure/mnist/hydra_configs/conf/example_with_screening__local__inhouse.yaml +++ b/examples/remote_procedure/mnist/hydra_configs/conf/example_with_screening__local__inhouse.yaml @@ -33,3 +33,4 @@ mephisto: # We expect to handle 25 people using the MNIST model at once max_num_concurrent_units: 25 allowed_concurrent: 1 + force_rebuild: true diff --git a/examples/remote_procedure/mnist/run_task__local__inhouse.py b/examples/remote_procedure/mnist/run_task__local__inhouse.py index a4c8f6191..37b2bbe71 100644 --- a/examples/remote_procedure/mnist/run_task__local__inhouse.py +++ b/examples/remote_procedure/mnist/run_task__local__inhouse.py @@ -99,7 +99,7 @@ def main(operator: Operator, cfg: DictConfig) -> None: post_install_script=cfg.mephisto.task.post_install_script, ) - tasks: List[Dict[str, Any]] = [{"isScreeningUnit": False}] * cfg.num_tasks + tasks: List[Dict[str, Any]] = [{"isScreeningUnit": False, "has_data": True}] * cfg.num_tasks is_using_screening_units = cfg.mephisto.blueprint["use_screening_task"] function_registry = { diff --git a/examples/remote_procedure/mnist/webapp/package.json b/examples/remote_procedure/mnist/webapp/package.json index 522d8da3a..e9b47e242 100644 --- a/examples/remote_procedure/mnist/webapp/package.json +++ b/examples/remote_procedure/mnist/webapp/package.json @@ -1,6 +1,6 @@ { "name": "remote-procedure-mnist-example", - "version": "1.0.1", + "version": "2.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/remote_procedure/mnist/webapp/src/app.jsx b/examples/remote_procedure/mnist/webapp/src/app.jsx index 6bb3bd994..9cdae0735 100644 --- a/examples/remote_procedure/mnist/webapp/src/app.jsx +++ b/examples/remote_procedure/mnist/webapp/src/app.jsx @@ -4,50 +4,45 @@ * LICENSE file in the root directory of this source tree. */ +import { MephistoApp } from "mephisto-addons"; +import { + MephistoContext, + PROVIDER_TYPE, + useMephistoRemoteProcedureTask, +} from "mephisto-core"; import React from "react"; import ReactDOM from "react-dom"; import { - BaseFrontend, - LoadingScreen, Instructions, + LoadingScreen, + MnistTaskFrontend, } from "./components/core_components.jsx"; -import { - MephistoContext, - useMephistoRemoteProcedureTask, - ErrorBoundary, -} from "mephisto-core"; - -/* ================= Application Components ================= */ - -// Generate a random id -function uuidv4() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { - var r = (Math.random() * 16) | 0, - v = c == "x" ? r : (r & 0x3) | 0x8; - return v.toString(16); - }); -} - -function RemoteProcedureApp() { +function App() { let mephistoProps = useMephistoRemoteProcedureTask({}); let { blockedReason, blockedExplanation, - taskConfig, isPreview, - previewHtml, isLoading, handleSubmit, remoteProcedure, isOnboarding, handleFatalError, initialTaskData, + providerType, } = mephistoProps; const classifyDigit = remoteProcedure("classify_digit"); + const isInhouseProvider = providerType === PROVIDER_TYPE.INHOUSE; + + let _initialTaskData = initialTaskData; + if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { + _initialTaskData = initialTaskData.task_data; + } + if (isOnboarding) { // TODO You can use this as an opportunity to display anything you want for // an onboarding agent @@ -61,35 +56,27 @@ function RemoteProcedureApp() { if (isLoading) { return ; } - if (isPreview) { + if (isPreview && !isInhouseProvider) { return ; } return ( - +
-
-
- ); -} - -function TaskPreviewView({ description }) { - return ( -
-
-
+ ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx b/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx index 91ecb2915..1ab715bc5 100644 --- a/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx +++ b/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx @@ -7,10 +7,6 @@ import React, { Fragment } from "react"; import CanvasDraw from "react-canvas-draw"; -function LoadingScreen() { - return Loading...; -} - function Directions({ children }) { return (
@@ -23,6 +19,10 @@ function Directions({ children }) { ); } +function LoadingScreen() { + return Loading...; +} + function AnnotationCanvas({ onUpdate, classifyDigit, index }) { const [currentAnnotation, setCurrentAnnotation] = React.useState(null); const [trueAnnotation, setTrueAnnotation] = React.useState(""); @@ -139,7 +139,7 @@ function Instructions({ taskData }) { ); } -function TaskFrontend({ +function MnistTaskFrontend({ classifyDigit, finalResults = null, handleSubmit, @@ -281,9 +281,4 @@ function ReviewFrontend({ initialTaskData, reviewData }) { ); } -export { - LoadingScreen, - TaskFrontend as BaseFrontend, - ReviewFrontend, - Instructions, -}; +export { Instructions, LoadingScreen, MnistTaskFrontend, ReviewFrontend }; diff --git a/examples/remote_procedure/mnist/webapp/webpack.config.js b/examples/remote_procedure/mnist/webapp/webpack.config.js index 1958271ed..9161c460c 100644 --- a/examples/remote_procedure/mnist/webapp/webpack.config.js +++ b/examples/remote_procedure/mnist/webapp/webpack.config.js @@ -16,11 +16,14 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), + "mephisto-addons": path.resolve( + __dirname, + "../../../../packages/mephisto-addons" + ), }, fallback: { net: false, diff --git a/examples/remote_procedure/mnist/webapp/webpack.config.review.js b/examples/remote_procedure/mnist/webapp/webpack.config.review.js index d70ed6768..a6caea9fb 100644 --- a/examples/remote_procedure/mnist/webapp/webpack.config.review.js +++ b/examples/remote_procedure/mnist/webapp/webpack.config.review.js @@ -16,7 +16,6 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" diff --git a/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example__local__inhouse.yaml b/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example__local__inhouse.yaml index f954dc269..0eb89d93c 100644 --- a/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example__local__inhouse.yaml +++ b/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example__local__inhouse.yaml @@ -31,3 +31,4 @@ mephisto: task_tags: "detoxify,input,toxic,text" # We expect to handle 25 people using the Toxicity Detection model at once max_num_concurrent_units: 25 + force_rebuild: true diff --git a/examples/remote_procedure/toxicity_detection/run_task__local__inhouse.py b/examples/remote_procedure/toxicity_detection/run_task__local__inhouse.py index 40ede5bde..464064e1f 100644 --- a/examples/remote_procedure/toxicity_detection/run_task__local__inhouse.py +++ b/examples/remote_procedure/toxicity_detection/run_task__local__inhouse.py @@ -36,6 +36,7 @@ def _build_tasks(num_tasks: int) -> List[dict]: { "index": x, "local_value_key": x, + "has_data": True, } ) diff --git a/examples/remote_procedure/toxicity_detection/webapp/package.json b/examples/remote_procedure/toxicity_detection/webapp/package.json index e8d6781f4..aa4192ce6 100644 --- a/examples/remote_procedure/toxicity_detection/webapp/package.json +++ b/examples/remote_procedure/toxicity_detection/webapp/package.json @@ -1,6 +1,6 @@ { "name": "remote-procedure-toxicity-detection-example", - "version": "1.0.1", + "version": "2.0.0", "description": "", "main": "webpack.config.remote_procedure.js", "scripts": { diff --git a/examples/remote_procedure/toxicity_detection/webapp/src/app_remote_procedure.jsx b/examples/remote_procedure/toxicity_detection/webapp/src/app_remote_procedure.jsx index 7af4f6ee5..e4076fe98 100644 --- a/examples/remote_procedure/toxicity_detection/webapp/src/app_remote_procedure.jsx +++ b/examples/remote_procedure/toxicity_detection/webapp/src/app_remote_procedure.jsx @@ -4,36 +4,45 @@ * LICENSE file in the root directory of this source tree. */ +import { MephistoApp } from "mephisto-addons"; +import { + MephistoContext, + PROVIDER_TYPE, + useMephistoRemoteProcedureTask, +} from "mephisto-core"; import React from "react"; import ReactDOM from "react-dom"; import { - ToxicityTaskFrontend, - LoadingScreen, Instructions, + LoadingScreen, + ToxicityTaskFrontend, } from "./components/core_components_remote_procedure.jsx"; -import { - MephistoContext, - useMephistoRemoteProcedureTask, - ErrorBoundary, -} from "mephisto-core"; - -function RemoteProcedureApp() { +function App() { let mephistoProps = useMephistoRemoteProcedureTask({}); let { - blockedReason, blockedExplanation, - isPreview, - isLoading, + blockedReason, + handleFatalError, handleSubmit, - remoteProcedure, + initialTaskData, + isLoading, isOnboarding, - handleFatalError, + isPreview, + providerType, + remoteProcedure, } = mephistoProps; const handleToxicityCalculation = remoteProcedure("determine_toxicity"); + const isInhouseProvider = providerType === PROVIDER_TYPE.INHOUSE; + + let _initialTaskData = initialTaskData; + if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { + _initialTaskData = initialTaskData.task_data; + } + if (isOnboarding) { return

This task doesn't currently have an onboarding example set

; } @@ -43,12 +52,16 @@ function RemoteProcedureApp() { if (isLoading) { return ; } - if (isPreview) { + if (isPreview && !isInhouseProvider) { return ; } return ( - +
-
+ ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components_remote_procedure.jsx b/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components_remote_procedure.jsx index f4d86b0b7..413554bb3 100644 --- a/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components_remote_procedure.jsx +++ b/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components_remote_procedure.jsx @@ -6,10 +6,6 @@ import React, { Fragment, useState } from "react"; -function LoadingScreen() { - return Loading...; -} - function Directions({ children }) { return (
@@ -18,6 +14,10 @@ function Directions({ children }) { ); } +function LoadingScreen() { + return Loading...; +} + function Instructions() { return (
@@ -148,4 +148,4 @@ function ToxicityTaskFrontend({ ); } -export { LoadingScreen, ToxicityTaskFrontend, Instructions }; +export { Instructions, LoadingScreen, ToxicityTaskFrontend }; diff --git a/examples/remote_procedure/toxicity_detection/webapp/webpack.config.remote_procedure.js b/examples/remote_procedure/toxicity_detection/webapp/webpack.config.remote_procedure.js index fcd26efcf..a98ae5fd6 100644 --- a/examples/remote_procedure/toxicity_detection/webapp/webpack.config.remote_procedure.js +++ b/examples/remote_procedure/toxicity_detection/webapp/webpack.config.remote_procedure.js @@ -16,11 +16,14 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), + "mephisto-addons": path.resolve( + __dirname, + "../../../../packages/mephisto-addons" + ), }, fallback: { net: false, diff --git a/examples/remote_procedure/toxicity_detection/webapp/webpack.config.review.js b/examples/remote_procedure/toxicity_detection/webapp/webpack.config.review.js index 6350057f6..3d36dfb6b 100644 --- a/examples/remote_procedure/toxicity_detection/webapp/webpack.config.review.js +++ b/examples/remote_procedure/toxicity_detection/webapp/webpack.config.review.js @@ -16,7 +16,6 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" diff --git a/examples/static_react_task/hydra_configs/conf/example__local__inhouse.yaml b/examples/static_react_task/hydra_configs/conf/example__local__inhouse.yaml index 58a962abc..b5036dbe3 100644 --- a/examples/static_react_task/hydra_configs/conf/example__local__inhouse.yaml +++ b/examples/static_react_task/hydra_configs/conf/example__local__inhouse.yaml @@ -26,3 +26,4 @@ mephisto: task_tags: "test,simple,button" # We expect to be able to handle 300 concurrent tasks without issue max_num_concurrent_units: 300 + force_rebuild: true diff --git a/examples/static_react_task/hydra_configs/conf/example_with_authorization__local__inhouse.yaml b/examples/static_react_task/hydra_configs/conf/example_with_authorization__local__inhouse.yaml index 4bbd2a243..51b1c4649 100644 --- a/examples/static_react_task/hydra_configs/conf/example_with_authorization__local__inhouse.yaml +++ b/examples/static_react_task/hydra_configs/conf/example_with_authorization__local__inhouse.yaml @@ -29,3 +29,4 @@ mephisto: # We expect to be able to handle 300 concurrent tasks without issue max_num_concurrent_units: 300 allowed_concurrent: 1 + force_rebuild: true diff --git a/examples/static_react_task/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml b/examples/static_react_task/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml index 30c272110..7a9e8c724 100644 --- a/examples/static_react_task/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml +++ b/examples/static_react_task/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml @@ -25,3 +25,4 @@ mephisto: task_tags: "test,simple,button" # We expect to be able to handle 300 concurrent tasks without issue max_num_concurrent_units: 300 + force_rebuild: true diff --git a/examples/static_react_task/hydra_configs/conf/example_with_screening__local__inhouse.yaml b/examples/static_react_task/hydra_configs/conf/example_with_screening__local__inhouse.yaml index 6f8dd9f53..ffb71ece9 100644 --- a/examples/static_react_task/hydra_configs/conf/example_with_screening__local__inhouse.yaml +++ b/examples/static_react_task/hydra_configs/conf/example_with_screening__local__inhouse.yaml @@ -29,3 +29,4 @@ mephisto: # We expect to be able to handle 300 concurrent tasks without issue max_num_concurrent_units: 300 allowed_concurrent: 1 + force_rebuild: true diff --git a/examples/static_react_task/webapp/package-lock.json b/examples/static_react_task/webapp/package-lock.json index 2c5c8c822..773cb0696 100644 --- a/examples/static_react_task/webapp/package-lock.json +++ b/examples/static_react_task/webapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "static_react_task", - "version": "1.0.1", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "static_react_task", - "version": "1.0.1", + "version": "2.0.0", "dependencies": { "bootstrap": "^4.6.2", "react": "^18.2.0", diff --git a/examples/static_react_task/webapp/package.json b/examples/static_react_task/webapp/package.json index 63a7498b6..4cc249ef5 100644 --- a/examples/static_react_task/webapp/package.json +++ b/examples/static_react_task/webapp/package.json @@ -1,6 +1,6 @@ { "name": "static_react_task", - "version": "1.0.1", + "version": "2.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/static_react_task/webapp/src/app.jsx b/examples/static_react_task/webapp/src/app.jsx index c7596cc5c..91d6ca7ee 100644 --- a/examples/static_react_task/webapp/src/app.jsx +++ b/examples/static_react_task/webapp/src/app.jsx @@ -4,7 +4,8 @@ * LICENSE file in the root directory of this source tree. */ -import { ErrorBoundary, useMephistoTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoTask, PROVIDER_TYPE } from "mephisto-core"; import React from "react"; import ReactDOM from "react-dom"; import { @@ -14,20 +15,21 @@ import { StaticReactTaskFrontend, } from "./components/core_components.jsx"; -/* ================= Application Components ================= */ - -function MainApp() { +function App() { const { - blockedReason, blockedExplanation, - isPreview, - isLoading, - initialTaskData, - handleSubmit, + blockedReason, handleFatalError, + handleSubmit, + initialTaskData, + isLoading, isOnboarding, + isPreview, + providerType, } = useMephistoTask(); + const isInhouseProvider = providerType === PROVIDER_TYPE.INHOUSE; + if (blockedReason !== null) { return (
@@ -38,30 +40,34 @@ function MainApp() { ); } - if (isPreview) { + if (isPreview && !isInhouseProvider) { return ; } - if (isLoading || !initialTaskData) { + + if (isLoading) { return ; } + if (isOnboarding) { return ; } return ( -
- - + + - - -
+ + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/static_react_task/webapp/src/components/core_components.jsx b/examples/static_react_task/webapp/src/components/core_components.jsx index fe800231a..78ebd72f6 100644 --- a/examples/static_react_task/webapp/src/components/core_components.jsx +++ b/examples/static_react_task/webapp/src/components/core_components.jsx @@ -6,6 +6,14 @@ import React, { useState } from "react"; +function Directions({ children }) { + return ( +
+
{children}
+
+ ); +} + function OnboardingComponent({ onSubmit }) { return (
@@ -57,21 +65,17 @@ function LoadingScreen() { return Loading...; } -function Directions({ children }) { - return ( -
-
{children}
-
- ); -} - function StaticReactTaskFrontend({ taskData, isOnboarding, onSubmit, onError, }) { - const [resonseSubmitted, setResonseSubmitted] = useState(false); + const [responseSubmitted, setResponseSubmitted] = useState(false); + + if (!taskData) { + return ""; + } return (
@@ -85,13 +89,13 @@ function StaticReactTaskFrontend({ {taskData.text} - {!resonseSubmitted && ( + {!responseSubmitted && (
)} - {resonseSubmitted && ( + {responseSubmitted && (
Thank you for your response!
)}
diff --git a/examples/static_react_task/webapp/webpack.config.js b/examples/static_react_task/webapp/webpack.config.js index 9c03405a0..0fe25e9cc 100644 --- a/examples/static_react_task/webapp/webpack.config.js +++ b/examples/static_react_task/webapp/webpack.config.js @@ -16,11 +16,14 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit metadata with files "mephisto-core": path.resolve( __dirname, "../../../packages/mephisto-core" ), + "mephisto-addons": path.resolve( + __dirname, + "../../../packages/mephisto-addons" + ), }, fallback: { net: false, diff --git a/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example__local__inhouse.yaml b/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example__local__inhouse.yaml index 15e57792e..e261d4fc3 100644 --- a/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example__local__inhouse.yaml +++ b/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example__local__inhouse.yaml @@ -8,20 +8,22 @@ defaults: - /mephisto/blueprint: static_react_task - /mephisto/architect: local - /mephisto/provider: inhouse + mephisto: blueprint: task_source: ${task_dir}/webapp/build/bundle.js - link_task_source: true + link_task_source: false extra_source_dir: ${task_dir}/webapp/src/static units_per_assignment: 1 log_level: "debug" provider: ui_base_url: "http://localhost:3001" task: - task_name: react-static-task-with-tips + task_name: react-static-task-with-worker-opinion task_title: "Rating a sentence as good or bad. There is a tips button that can help when completing this task." task_description: "In this task, you'll be given a sentence. It is your job to rate it as either good or bad. Look at the tips to help." task_reward: 0.05 - task_tags: "test,simple,button,tips" + task_tags: "test,simple,button,worker_opinion" # We expect to be able to handle 300 concurrent tasks without issue max_num_concurrent_units: 300 + force_rebuild: true diff --git a/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml b/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml index 7a9e19e29..7b6616e1c 100644 --- a/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml +++ b/examples/static_react_task_with_worker_opinion/hydra_configs/conf/example_with_onboarding__local__inhouse.yaml @@ -8,6 +8,7 @@ defaults: - /mephisto/blueprint: static_react_task - /mephisto/architect: local - /mephisto/provider: inhouse + mephisto: blueprint: task_source: ${task_dir}/webapp/build/bundle.js @@ -18,10 +19,11 @@ mephisto: provider: ui_base_url: "http://localhost:3001" task: - task_name: react-static-task-with-tips + task_name: react-static-task-with-worker-opinion task_title: "Rating a sentence as good or bad. There is a tips button that can help when completing this task." task_description: "In this task, you'll be given a sentence. It is your job to rate it as either good or bad. Look at the tips for help." task_reward: 0.05 - task_tags: "test,simple,button,tips" + task_tags: "test,simple,button,worker_opinion" # We expect to be able to handle 300 concurrent tasks without issue max_num_concurrent_units: 300 + force_rebuild: true diff --git a/examples/static_react_task_with_worker_opinion/run_task__local__inhouse.py b/examples/static_react_task_with_worker_opinion/run_task__local__inhouse.py index dd9201473..3eae9e553 100644 --- a/examples/static_react_task_with_worker_opinion/run_task__local__inhouse.py +++ b/examples/static_react_task_with_worker_opinion/run_task__local__inhouse.py @@ -4,6 +4,8 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. +import os + from omegaconf import DictConfig from mephisto.abstractions.blueprints.abstract.static_task.static_blueprint import ( @@ -20,6 +22,8 @@ def _onboarding_always_valid(onboarding_data: dict) -> bool: @task_script(default_config_file="example__local__inhouse") def main(operator: Operator, cfg: DictConfig) -> None: + os.environ["REACT_APP__WITH_WORKER_OPINION"] = "true" + examples.build_static_react_task_with_worker_opinion( force_rebuild=cfg.mephisto.task.force_rebuild, post_install_script=cfg.mephisto.task.post_install_script, diff --git a/examples/static_react_task_with_worker_opinion/webapp/package.json b/examples/static_react_task_with_worker_opinion/webapp/package.json index 795f92182..d37a93994 100644 --- a/examples/static_react_task_with_worker_opinion/webapp/package.json +++ b/examples/static_react_task_with_worker_opinion/webapp/package.json @@ -1,6 +1,6 @@ { "name": "static_react_task_with_worker_opinion", - "version": "1.0.1", + "version": "2.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/static_react_task_with_worker_opinion/webapp/src/app.jsx b/examples/static_react_task_with_worker_opinion/webapp/src/app.jsx index 1c3a8d93f..44d83be40 100644 --- a/examples/static_react_task_with_worker_opinion/webapp/src/app.jsx +++ b/examples/static_react_task_with_worker_opinion/webapp/src/app.jsx @@ -4,29 +4,32 @@ * LICENSE file in the root directory of this source tree. */ +import { MephistoApp } from "mephisto-addons"; +import { PROVIDER_TYPE, useMephistoTask } from "mephisto-core"; import React from "react"; import ReactDOM from "react-dom"; import { - BaseFrontend, - OnboardingComponent, + Instructions, LoadingScreen, + OnboardingComponent, + StaticReactTaskFrontend, } from "./components/core_components.jsx"; -import { useMephistoTask, ErrorBoundary } from "mephisto-core"; - -/* ================= Application Components ================= */ -function MainApp() { +function App() { const { - blockedReason, blockedExplanation, - isPreview, - isLoading, - initialTaskData, - handleSubmit, + blockedReason, handleFatalError, + handleSubmit, + initialTaskData, + isLoading, isOnboarding, + isPreview, + providerType, } = useMephistoTask(); + const isInhouseProvider = providerType === PROVIDER_TYPE.INHOUSE; + if (blockedReason !== null) { return (
@@ -37,38 +40,34 @@ function MainApp() { ); } - if (isPreview) { - return ( -
-
-

- This is an incredibly simple React task working with Mephisto! -

-
- Inside you'll be asked to rate a given sentence as good or bad. -
-
-
- ); + if (isPreview && !isInhouseProvider) { + return ; } - if (isLoading || !initialTaskData) { + + if (isLoading) { return ; } + if (isOnboarding) { return ; } + return ( -
- - - -
+ + + + + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/static_react_task_with_worker_opinion/webapp/src/components/core_components.jsx b/examples/static_react_task_with_worker_opinion/webapp/src/components/core_components.jsx index 88bfeadd4..41b690579 100644 --- a/examples/static_react_task_with_worker_opinion/webapp/src/components/core_components.jsx +++ b/examples/static_react_task_with_worker_opinion/webapp/src/components/core_components.jsx @@ -4,9 +4,20 @@ * LICENSE file in the root directory of this source tree. */ +import { isWorkerOpinionEnabled } from "mephisto-core"; import React, { useState } from "react"; import { WorkerOpinion } from "mephisto-addons"; +let WITH_WORKER_OPINION = isWorkerOpinionEnabled(); + +function Directions({ children }) { + return ( +
+
{children}
+
+ ); +} + function OnboardingComponent({ onSubmit }) { return (
@@ -30,16 +41,32 @@ function LoadingScreen() { return Loading...; } -function Directions({ children }) { +function Instructions() { return ( -
-
{children}
+
+
+

+ This is an incredibly simple React task working with Mephisto! +

+
+ Inside you'll be asked to rate a given sentence as good or bad. +
+
); } -function SimpleFrontend({ taskData, isOnboarding, onSubmit, onError }) { - const [resonseSubmitted, setResonseSubmitted] = useState(false); +function StaticReactTaskFrontend({ + taskData, + isOnboarding, + onSubmit, + onError, +}) { + const [responseSubmitted, setResponseSubmitted] = useState(false); + + if (!taskData) { + return ""; + } return (
@@ -59,13 +86,13 @@ function SimpleFrontend({ taskData, isOnboarding, onSubmit, onError }) { {taskData.text} - {!resonseSubmitted && ( + {!responseSubmitted && (
)} - {resonseSubmitted && ( + {WITH_WORKER_OPINION && responseSubmitted && ( <>
Thank you for your response!
@@ -103,4 +130,9 @@ function SimpleFrontend({ taskData, isOnboarding, onSubmit, onError }) { ); } -export { LoadingScreen, SimpleFrontend as BaseFrontend, OnboardingComponent }; +export { + Instructions, + LoadingScreen, + OnboardingComponent, + StaticReactTaskFrontend, +}; diff --git a/examples/static_react_task_with_worker_opinion/webapp/webpack.config.js b/examples/static_react_task_with_worker_opinion/webapp/webpack.config.js index 7d3ea33ae..0f4c93c53 100644 --- a/examples/static_react_task_with_worker_opinion/webapp/webpack.config.js +++ b/examples/static_react_task_with_worker_opinion/webapp/webpack.config.js @@ -16,12 +16,10 @@ module.exports = { resolve: { alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit metadata with files "mephisto-core": path.resolve( __dirname, "../../../packages/mephisto-core" ), - // Use local library with code that can submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../packages/mephisto-addons" @@ -55,4 +53,5 @@ module.exports = { }, ], }, + plugins: [new webpack.EnvironmentPlugin({ ...process.env })], }; diff --git a/examples/video_annotator_demo/webapp/package-lock.json b/examples/video_annotator_demo/webapp/package-lock.json index 9d2a3bd72..f3712b8da 100644 --- a/examples/video_annotator_demo/webapp/package-lock.json +++ b/examples/video_annotator_demo/webapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "video_annotator_demo", - "version": "2.0.0", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "video_annotator_demo", - "version": "2.0.0", + "version": "3.0.0", "dependencies": { "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", diff --git a/examples/video_annotator_demo/webapp/package.json b/examples/video_annotator_demo/webapp/package.json index 2cb2735c6..b4fa3a55c 100644 --- a/examples/video_annotator_demo/webapp/package.json +++ b/examples/video_annotator_demo/webapp/package.json @@ -1,6 +1,6 @@ { "name": "video_annotator_demo", - "version": "2.0.0", + "version": "3.0.0", "description": "", "main": "webpack.config.js", "scripts": { diff --git a/examples/video_annotator_demo/webapp/src/app_dynamic.tsx b/examples/video_annotator_demo/webapp/src/app_dynamic.tsx index c65352b14..0ef243507 100644 --- a/examples/video_annotator_demo/webapp/src/app_dynamic.tsx +++ b/examples/video_annotator_demo/webapp/src/app_dynamic.tsx @@ -4,44 +4,61 @@ * LICENSE file in the root directory of this source tree. */ +import { MephistoApp } from "mephisto-addons"; +import { useMephistoTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; import { - VideoAnnotatorBaseFrontend, LoadingScreen, + VideoAnnotatorBaseFrontend, } from "./components/core_components_dynamic"; -import { useMephistoTask, ErrorBoundary } from "mephisto-core"; - -/* ================= Application Components ================= */ -function MainApp() { +function App() { const { - isLoading, - initialTaskData, - handleSubmit, + blockedExplanation, + blockedReason, handleFatalError, + handleSubmit, + initialTaskData, + isLoading, + providerType, }: { - isLoading: boolean; - initialTaskData: ConfigAnnotatorType; - handleSubmit: Function; + blockedExplanation: string; + blockedReason: string; handleFatalError: Function; + handleSubmit: Function; + initialTaskData: ConfigAnnotatorType; + isLoading: boolean; + providerType: string; } = useMephistoTask(); - if (isLoading || !initialTaskData) { + if (blockedReason !== null) { + return ( +
+
+

{blockedExplanation}

+
+
+ ); + } + + if (isLoading) { return ; } return ( -
- - - -
+ + + ); } -ReactDOM.render(, document.getElementById("app")); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/video_annotator_demo/webapp/src/app_simple.tsx b/examples/video_annotator_demo/webapp/src/app_simple.tsx index 29c91a7d0..8a8741606 100644 --- a/examples/video_annotator_demo/webapp/src/app_simple.tsx +++ b/examples/video_annotator_demo/webapp/src/app_simple.tsx @@ -4,69 +4,32 @@ * LICENSE file in the root directory of this source tree. */ -import { WelcomePage } from "mephisto-addons"; -import { ErrorBoundary, useMephistoTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; -import { BrowserRouter, Route, Routes } from "react-router-dom"; import { LoadingScreen, VideoAnnotatorBaseFrontend, } from "./components/core_components_simple"; -/* ================= Application Components ================= */ - -type HomePagePropsType = { - initialTaskData: ConfigAnnotatorType; - handleSubmit: Function; - handleFatalError: Function; -}; - -function HomePage({ - initialTaskData, - handleSubmit, - handleFatalError, -}: HomePagePropsType) { - // In case of visiting home page but without any GET-parameters - if (!initialTaskData?.annotator) { - return ( -
-

Welcome to Mephisto

- -
- Click here to proceed to your tasks. -
-
- ); - } - - // If all GET-parameters were passed and server returned task data - return ( - <> - - - ); -} - -function MainApp() { +function App() { const { - isLoading, - initialTaskData, - handleFatalError, - handleSubmit, blockedExplanation, blockedReason, + handleFatalError, + handleSubmit, + initialTaskData, + isLoading, + providerType, }: { - isLoading: boolean; - initialTaskData: ConfigAnnotatorType; - handleSubmit: Function; - handleFatalError: Function; blockedExplanation: string; blockedReason: string; + handleFatalError: Function; + handleSubmit: Function; + initialTaskData: ConfigAnnotatorType; + isLoading: boolean; + providerType: string; } = useMephistoTask(); if (blockedReason !== null) { @@ -84,30 +47,18 @@ function MainApp() { } return ( -
- - - } /> - - - } - /> - - -
+ + + ); } -ReactDOM.render( - - - , - document.getElementById("app") -); +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/video_annotator_demo/webapp/src/components/core_components_dynamic.tsx b/examples/video_annotator_demo/webapp/src/components/core_components_dynamic.tsx index 0a0d9c45b..19cddffa3 100644 --- a/examples/video_annotator_demo/webapp/src/components/core_components_dynamic.tsx +++ b/examples/video_annotator_demo/webapp/src/components/core_components_dynamic.tsx @@ -41,7 +41,7 @@ function VideoAnnotatorBaseFrontend({ onError, finalResults = null, }: VideoAnnotatorBaseFrontendPropsType) { - const initialConfigAnnotatorData: ConfigAnnotatorType = taskData.annotator; + const initialConfigAnnotatorData: ConfigAnnotatorType = taskData?.annotator; if (!initialConfigAnnotatorData) { return ( diff --git a/examples/video_annotator_demo/webapp/src/components/core_components_simple.tsx b/examples/video_annotator_demo/webapp/src/components/core_components_simple.tsx index 38a348a57..d03cb644f 100644 --- a/examples/video_annotator_demo/webapp/src/components/core_components_simple.tsx +++ b/examples/video_annotator_demo/webapp/src/components/core_components_simple.tsx @@ -40,7 +40,7 @@ function VideoAnnotatorBaseFrontend({ onError, finalResults = null, }: VideoAnnotatorBaseFrontendPropsType) { - const initialConfigAnnotatorData: ConfigAnnotatorType = taskData.annotator; + const initialConfigAnnotatorData: ConfigAnnotatorType = taskData?.annotator; if (!initialConfigAnnotatorData) { return ( diff --git a/examples/video_annotator_demo/webapp/webpack.config.js b/examples/video_annotator_demo/webapp/webpack.config.js index 0db6c9e0e..0ad1929de 100644 --- a/examples/video_annotator_demo/webapp/webpack.config.js +++ b/examples/video_annotator_demo/webapp/webpack.config.js @@ -34,12 +34,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../packages/mephisto-addons" diff --git a/examples/video_annotator_demo/webapp/webpack.config.review.js b/examples/video_annotator_demo/webapp/webpack.config.review.js index 1ac6e7465..8cfe18e1a 100644 --- a/examples/video_annotator_demo/webapp/webpack.config.review.js +++ b/examples/video_annotator_demo/webapp/webpack.config.review.js @@ -33,7 +33,6 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../packages/mephisto-addons" diff --git a/mephisto/abstractions/architects/router/build_router.py b/mephisto/abstractions/architects/router/build_router.py index d44a76160..feb8049c2 100644 --- a/mephisto/abstractions/architects/router/build_router.py +++ b/mephisto/abstractions/architects/router/build_router.py @@ -25,7 +25,7 @@ FLASK_SERVER_SOURCE_ROOT = os.path.join(ROUTER_ROOT_DIR, "flask") CROWD_SOURCE_PATH = "static/wrap_crowd_source.js" TASK_CONFIG_PATH = "static/task_config.json" -CURR_MEPHISTO_CORE_PACKAGE_VERSION = "1.5.1" +CURR_MEPHISTO_CORE_PACKAGE_VERSION = "1.5.4" logger = get_logger(name=__name__) @@ -105,7 +105,7 @@ def build_router( logger.debug(f"Copying '{server_source_directory_path}' -> '{local_server_directory_path}'") shutil.copytree(server_source_directory_path, local_server_directory_path) - # Copy the required wrap crowd source path + # Copy the required wrap crowdsource path local_crowd_source_path = os.path.join(local_server_directory_path, CROWD_SOURCE_PATH) logger.debug(f"{local_crowd_source_path=}") @@ -122,6 +122,7 @@ def build_router( with open(local_task_config_path, "w+") as task_fp: frontend_args = blueprint.get_frontend_args() frontend_args["mephisto_core_version"] = CURR_MEPHISTO_CORE_PACKAGE_VERSION + frontend_args["provider_type"] = crowd_provider.PROVIDER_TYPE json.dump(frontend_args, task_fp) diff --git a/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.py b/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.py index 40ac9a45f..0130c6281 100644 --- a/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.py +++ b/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.py @@ -29,7 +29,7 @@ # Constants -CURR_MEPHISTO_CORE_PACKAGE_VERSION = "1.5.1" +CURR_MEPHISTO_CORE_PACKAGE_VERSION = "1.5.4" PACKET_TYPE_ALIVE = "alive" PACKET_TYPE_SUBMIT_ONBOARDING = "submit_onboarding" diff --git a/mephisto/abstractions/architects/router/node/server.js b/mephisto/abstractions/architects/router/node/server.js index e9486fc22..6b7f96e63 100644 --- a/mephisto/abstractions/architects/router/node/server.js +++ b/mephisto/abstractions/architects/router/node/server.js @@ -7,7 +7,7 @@ "use strict"; const DEBUG = false; -const CURR_MEPHISTO_CORE_PACKAGE_VERSION = "1.5.1"; +const CURR_MEPHISTO_CORE_PACKAGE_VERSION = "1.5.4"; // TODO add some testing to launch this server and communicate with it diff --git a/mephisto/generators/form_composer/webapp/src/app.tsx b/mephisto/generators/form_composer/webapp/src/app.tsx index 3a1352946..babc19d38 100644 --- a/mephisto/generators/form_composer/webapp/src/app.tsx +++ b/mephisto/generators/form_composer/webapp/src/app.tsx @@ -4,68 +4,30 @@ * LICENSE file in the root directory of this source tree. */ -import { WelcomePage } from "mephisto-addons"; -import { ErrorBoundary, useMephistoRemoteProcedureTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoRemoteProcedureTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; -import { BrowserRouter, Route, Routes } from "react-router-dom"; import { FormComposerBaseFrontend, LoadingScreen, } from "./components/core_components"; -/* ================= Application Components ================= */ - -type HomePagePropsType = { - handleFatalError: Function; - handleSubmit: Function; - initialTaskData: ConfigTaskType; - remoteProcedure: RemoteProcedureCollectionType; -}; - -function HomePage({ - handleFatalError, - handleSubmit, - initialTaskData, - remoteProcedure, -}: HomePagePropsType) { - // In case of visiting home page but without any GET-parameters - if (!initialTaskData?.form) { - return ( -
-

Welcome to Mephisto

- -
- Click here to proceed to your tasks. -
-
- ); - } - - // If all GET-parameters were passed and server returned task data - return ( - - ); -} - -function MainApp() { +function App() { const { - isLoading, + handleFatalError, + handleSubmit, initialTaskData, + isLoading, + providerType, remoteProcedure, - handleSubmit, - handleFatalError, }: { - isLoading: boolean; + handleFatalError: Function; + handleSubmit: Function; initialTaskData: ConfigTaskType; + isLoading: boolean; + providerType: string; remoteProcedure: RemoteProcedureCollectionType; - handleSubmit: Function; - handleFatalError: Function; } = useMephistoRemoteProcedureTask(); if (isLoading) { @@ -78,31 +40,19 @@ function MainApp() { } return ( -
- - - } /> - - - } - /> - - -
+ + + ); } -ReactDOM.render( - - - , - document.getElementById("app") -); +ReactDOM.render(, document.getElementById("app")); diff --git a/mephisto/generators/form_composer/webapp/src/components/core_components.tsx b/mephisto/generators/form_composer/webapp/src/components/core_components.tsx index 74476f7fe..90d50e4db 100644 --- a/mephisto/generators/form_composer/webapp/src/components/core_components.tsx +++ b/mephisto/generators/form_composer/webapp/src/components/core_components.tsx @@ -75,7 +75,7 @@ function FormComposerBaseFrontend({ const [formData, setFormData] = React.useState(null); const inReviewState: boolean = ![undefined, null].includes(finalResults); - const initialConfigFormData: ConfigFormType = taskData.form; + const initialConfigFormData: ConfigFormType = taskData?.form; if (!inReviewState) { prepareRemoteProcedures(remoteProcedure); @@ -94,7 +94,7 @@ function FormComposerBaseFrontend({ setRenderingErrors ); } - }, [taskData.form]); + }, [taskData?.form]); if (!initialConfigFormData) { return ; diff --git a/mephisto/generators/form_composer/webapp/webpack.config.js b/mephisto/generators/form_composer/webapp/webpack.config.js index 89cc16b32..736257178 100644 --- a/mephisto/generators/form_composer/webapp/webpack.config.js +++ b/mephisto/generators/form_composer/webapp/webpack.config.js @@ -17,12 +17,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../../packages/mephisto-addons" diff --git a/mephisto/generators/form_composer/webapp/webpack.config.review.js b/mephisto/generators/form_composer/webapp/webpack.config.review.js index 5ce1a4956..7fbac7f02 100644 --- a/mephisto/generators/form_composer/webapp/webpack.config.review.js +++ b/mephisto/generators/form_composer/webapp/webpack.config.review.js @@ -17,12 +17,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../../packages/mephisto-addons" diff --git a/mephisto/generators/video_annotator/webapp/src/app.tsx b/mephisto/generators/video_annotator/webapp/src/app.tsx index f9604a947..c37357439 100644 --- a/mephisto/generators/video_annotator/webapp/src/app.tsx +++ b/mephisto/generators/video_annotator/webapp/src/app.tsx @@ -4,105 +4,55 @@ * LICENSE file in the root directory of this source tree. */ -import { WelcomePage } from "mephisto-addons"; -import { ErrorBoundary, useMephistoRemoteProcedureTask } from "mephisto-core"; +import { MephistoApp } from "mephisto-addons"; +import { useMephistoRemoteProcedureTask } from "mephisto-core"; import * as React from "react"; import * as ReactDOM from "react-dom"; -import { BrowserRouter, Route, Routes } from "react-router-dom"; import { LoadingScreen, VideoAnnotatorBaseFrontend, } from "./components/core_components"; -/* ================= Application Components ================= */ - -type HomePagePropsType = { - handleFatalError: Function; - handleSubmit: Function; - initialTaskData: ConfigAnnotatorType; - remoteProcedure: RemoteProcedureCollectionType; -}; - -function HomePage({ - handleFatalError, - handleSubmit, - initialTaskData, - remoteProcedure, -}: HomePagePropsType) { - // In case of visiting home page but without any GET-parameters - if (!initialTaskData?.annotator) { - return ( -
-

Welcome to Mephisto

- -
- Click here to proceed to your tasks. -
-
- ); - } - - // If all GET-parameters were passed and server returned task data - return ( - - ); -} - -function MainApp() { +function App() { const { - isLoading, + handleFatalError, + handleSubmit, initialTaskData, + isLoading, + providerType, remoteProcedure, - handleSubmit, - handleFatalError, }: { + handleFatalError: Function; + handleSubmit: Function; + initialTaskData: ConfigTaskType; isLoading: boolean; - initialTaskData: ConfigAnnotatorType; + providerType: string; remoteProcedure: RemoteProcedureCollectionType; - handleSubmit: Function; - handleFatalError: Function; } = useMephistoRemoteProcedureTask(); if (isLoading) { return ; } - let _initialTaskData: ConfigAnnotatorType = initialTaskData; + let _initialTaskData: ConfigTaskType = initialTaskData; if (initialTaskData && initialTaskData.hasOwnProperty("task_data")) { _initialTaskData = initialTaskData.task_data; } return ( -
- - - } /> - - - } - /> - - -
+ + + ); } -ReactDOM.render( - - - , - document.getElementById("app") -); +ReactDOM.render(, document.getElementById("app")); diff --git a/mephisto/generators/video_annotator/webapp/src/components/core_components.tsx b/mephisto/generators/video_annotator/webapp/src/components/core_components.tsx index ffb7d8eb3..cda1323d7 100644 --- a/mephisto/generators/video_annotator/webapp/src/components/core_components.tsx +++ b/mephisto/generators/video_annotator/webapp/src/components/core_components.tsx @@ -77,7 +77,7 @@ function VideoAnnotatorBaseFrontend({ ); const inReviewState: boolean = ![undefined, null].includes(finalResults); - const initialConfigAnnotatorData: ConfigAnnotatorType = taskData.annotator; + const initialConfigAnnotatorData: ConfigAnnotatorType = taskData?.annotator; if (!inReviewState) { prepareRemoteProcedures(remoteProcedure); @@ -96,7 +96,7 @@ function VideoAnnotatorBaseFrontend({ setRenderingErrors ); } - }, [taskData.annotator]); + }, [taskData?.annotator]); if (!initialConfigAnnotatorData) { return ; diff --git a/mephisto/generators/video_annotator/webapp/webpack.config.js b/mephisto/generators/video_annotator/webapp/webpack.config.js index 89cc16b32..736257178 100644 --- a/mephisto/generators/video_annotator/webapp/webpack.config.js +++ b/mephisto/generators/video_annotator/webapp/webpack.config.js @@ -17,12 +17,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../../packages/mephisto-addons" diff --git a/mephisto/generators/video_annotator/webapp/webpack.config.review.js b/mephisto/generators/video_annotator/webapp/webpack.config.review.js index 5ce1a4956..7fbac7f02 100644 --- a/mephisto/generators/video_annotator/webapp/webpack.config.review.js +++ b/mephisto/generators/video_annotator/webapp/webpack.config.review.js @@ -17,12 +17,10 @@ module.exports = { extensions: [".tsx", ".ts", ".js", ".jsx"], alias: { react: path.resolve("./node_modules/react"), - // Use local library with code that can submit FormData "mephisto-core": path.resolve( __dirname, "../../../../packages/mephisto-core" ), - // Use local library with code that can use FormComposer and submit Worker Opinion "mephisto-addons": path.resolve( __dirname, "../../../../packages/mephisto-addons" diff --git a/packages/mephisto-addons/build/bundle.js b/packages/mephisto-addons/build/bundle.js index 7828089dc..bf945f0cd 100644 --- a/packages/mephisto-addons/build/bundle.js +++ b/packages/mephisto-addons/build/bundle.js @@ -1,2 +1,2 @@ /*! For license information please see bundle.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports["mephisto-addons"]=t(require("react")):e["mephisto-addons"]=t(e.react)}(self,(__WEBPACK_EXTERNAL_MODULE__8156__=>(()=>{var __webpack_modules__={3517:(e,t,n)=>{"use strict";var r=n(5048);e.exports=function(e,t){return void 0===t&&(t=!1),function(n,i,o){if(n)e(n);else if(i.statusCode>=400&&i.statusCode<=599){var a=o;if(t)if(r.TextDecoder){var s=(void 0===(l=i.headers&&i.headers["content-type"])&&(l=""),l.toLowerCase().split(";").reduce((function(e,t){var n=t.split("="),r=n[0],i=n[1];return"charset"===r.trim()?i.trim():e}),"utf-8"));try{a=new TextDecoder(s).decode(o)}catch(e){}}else a=String.fromCharCode.apply(null,new Uint8Array(o));e({cause:a})}else e(null,o);var l}}},6372:(e,t,n)=>{"use strict";var r=n(5048),i=n(1267),o=n(9748),a=n(5388),s=n(6222);function l(e,t,n){var r=e;return o(t)?(n=t,"string"==typeof e&&(r={uri:e})):r=i({},t,{uri:e}),r.callback=n,r}function c(e,t,n){return u(t=l(e,t,n))}function u(e){if(void 0===e.callback)throw new Error("callback argument missing");if(e.requestType&&c.requestInterceptorsStorage.getIsEnabled()){var t={uri:e.uri||e.url,headers:e.headers||{},body:e.body,metadata:e.metadata||{},retry:e.retry,timeout:e.timeout},n=c.requestInterceptorsStorage.execute(e.requestType,t);e.uri=n.uri,e.headers=n.headers,e.body=n.body,e.metadata=n.metadata,e.retry=n.retry,e.timeout=n.timeout}var r=!1,i=function(t,n,i){r||(r=!0,e.callback(t,n,i))};function o(){var e=void 0;if(e=p.response?p.response:p.responseText||function(e){try{if("document"===e.responseType)return e.responseXML;var t=e.responseXML&&"parsererror"===e.responseXML.documentElement.nodeName;if(""===e.responseType&&!t)return e.responseXML}catch(e){}return null}(p),y)try{e=JSON.parse(e)}catch(e){}return e}function a(t){if(clearTimeout(h),clearTimeout(e.retryTimeout),t instanceof Error||(t=new Error(""+(t||"Unknown XMLHttpRequest Error"))),t.statusCode=0,d||!c.retryManager.getIsEnabled()||!e.retry||!e.retry.shouldRetry()){if(e.requestType&&c.responseInterceptorsStorage.getIsEnabled()){var n={headers:_.headers||{},body:_.body,responseUrl:p.responseURL,responseType:p.responseType},r=c.responseInterceptorsStorage.execute(e.requestType,n);_.body=r.body,_.headers=r.headers}return i(t,_)}e.retryTimeout=setTimeout((function(){e.retry.moveToNextAttempt(),e.xhr=p,u(e)}),e.retry.getCurrentFuzzedDelay())}function s(){if(!d){var t;clearTimeout(h),clearTimeout(e.retryTimeout),t=e.useXDR&&void 0===p.status?200:1223===p.status?204:p.status;var n=_,r=null;if(0!==t?(n={body:o(),statusCode:t,method:m,headers:{},url:f,rawRequest:p},p.getAllResponseHeaders&&(n.headers=function(e){var t={};return e?(e.trim().split("\n").forEach((function(e){var n=e.indexOf(":"),r=e.slice(0,n).trim().toLowerCase(),i=e.slice(n+1).trim();void 0===t[r]?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]})),t):t}(p.getAllResponseHeaders()))):r=new Error("Internal XMLHttpRequest Error"),e.requestType&&c.responseInterceptorsStorage.getIsEnabled()){var a={headers:n.headers||{},body:n.body,responseUrl:p.responseURL,responseType:p.responseType},s=c.responseInterceptorsStorage.execute(e.requestType,a);n.body=s.body,n.headers=s.headers}return i(r,n,n.body)}}var l,d,p=e.xhr||null;p||(p=e.cors||e.useXDR?new c.XDomainRequest:new c.XMLHttpRequest);var h,f=p.url=e.uri||e.url,m=p.method=e.method||"GET",g=e.body||e.data,b=p.headers=e.headers||{},v=!!e.sync,y=!1,_={body:void 0,headers:{},statusCode:0,method:m,url:f,rawRequest:p};if("json"in e&&!1!==e.json&&(y=!0,b.accept||b.Accept||(b.Accept="application/json"),"GET"!==m&&"HEAD"!==m&&(b["content-type"]||b["Content-Type"]||(b["Content-Type"]="application/json"),g=JSON.stringify(!0===e.json?g:e.json))),p.onreadystatechange=function(){4!==p.readyState||c.responseInterceptorsStorage.getIsEnabled()||setTimeout(s,0)},p.onload=s,p.onerror=a,p.onprogress=function(){},p.onabort=function(){d=!0,clearTimeout(e.retryTimeout)},p.ontimeout=a,p.open(m,f,!v,e.username,e.password),v||(p.withCredentials=!!e.withCredentials),!v&&e.timeout>0&&(h=setTimeout((function(){if(!d){d=!0,p.abort("timeout");var e=new Error("XMLHttpRequest timeout");e.code="ETIMEDOUT",a(e)}}),e.timeout)),p.setRequestHeader)for(l in b)b.hasOwnProperty(l)&&p.setRequestHeader(l,b[l]);else if(e.headers&&!function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}(e.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in e&&(p.responseType=e.responseType),"beforeSend"in e&&"function"==typeof e.beforeSend&&e.beforeSend(p),p.send(g||null),p}c.httpHandler=n(3517),c.requestInterceptorsStorage=new a,c.responseInterceptorsStorage=new a,c.retryManager=new s,e.exports=c,e.exports.default=c,c.XMLHttpRequest=r.XMLHttpRequest||function(){},c.XDomainRequest="withCredentials"in new c.XMLHttpRequest?c.XMLHttpRequest:r.XDomainRequest,function(e,t){for(var n=0;n{"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(this.getForType(e));!(r=i()).done;){var o=r.value;try{n=o(n)}catch(e){}}return n},e}();e.exports=n},6222:e=>{"use strict";var t=function(){function e(){this.maxAttempts_=1,this.delayFactor_=.1,this.fuzzFactor_=.1,this.initialDelay_=1e3,this.enabled_=!1}var t=e.prototype;return t.getIsEnabled=function(){return this.enabled_},t.enable=function(){this.enabled_=!0},t.disable=function(){this.enabled_=!1},t.reset=function(){this.maxAttempts_=1,this.delayFactor_=.1,this.fuzzFactor_=.1,this.initialDelay_=1e3,this.enabled_=!1},t.getMaxAttempts=function(){return this.maxAttempts_},t.setMaxAttempts=function(e){this.maxAttempts_=e},t.getDelayFactor=function(){return this.delayFactor_},t.setDelayFactor=function(e){this.delayFactor_=e},t.getFuzzFactor=function(){return this.fuzzFactor_},t.setFuzzFactor=function(e){this.fuzzFactor_=e},t.getInitialDelay=function(){return this.initialDelay_},t.setInitialDelay=function(e){this.initialDelay_=e},t.createRetry=function(e){var t=void 0===e?{}:e,r=t.maxAttempts,i=t.delayFactor,o=t.fuzzFactor,a=t.initialDelay;return new n({maxAttempts:r||this.maxAttempts_,delayFactor:i||this.delayFactor_,fuzzFactor:o||this.fuzzFactor_,initialDelay:a||this.initialDelay_})},e}(),n=function(){function e(e){this.maxAttempts_=e.maxAttempts,this.delayFactor_=e.delayFactor,this.fuzzFactor_=e.fuzzFactor,this.currentDelay_=e.initialDelay,this.currentAttempt_=1}var t=e.prototype;return t.moveToNextAttempt=function(){this.currentAttempt_++;var e=this.currentDelay_*this.delayFactor_;this.currentDelay_=this.currentDelay_+e},t.shouldRetry=function(){return this.currentAttempt_{"use strict";function n(e,t){return void 0===t&&(t=Object),t&&"function"==typeof t.freeze?t.freeze(e):e}var r=n({HTML:"text/html",isHTML:function(e){return e===r.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),i=n({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===i.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});t.assign=function(e,t){if(null===e||"object"!=typeof e)throw new TypeError("target is not an object");for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},t.find=function(e,t,n){if(void 0===n&&(n=Array.prototype),e&&"function"==typeof n.find)return n.find.call(e,t);for(var r=0;r{var r=n(8073),i=n(4907),o=n(7650),a=n(5904),s=i.DOMImplementation,l=r.NAMESPACE,c=a.ParseError,u=a.XMLReader;function d(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function p(e){this.options=e||{locator:{}}}function h(){this.cdata=!1}function f(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function m(e){if(e)return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}function g(e,t,n){return"string"==typeof e?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+"":e}function b(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}p.prototype.parseFromString=function(e,t){var n=this.options,r=new u,i=n.domBuilder||new h,a=n.errorHandler,s=n.locator,c=n.xmlns||{},p=/\/x?html?$/.test(t),f=p?o.HTML_ENTITIES:o.XML_ENTITIES;s&&i.setDocumentLocator(s),r.errorHandler=function(e,t,n){if(!e){if(t instanceof h)return t;e=t}var r={},i=e instanceof Function;function o(t){var o=e[t];!o&&i&&(o=2==e.length?function(n){e(t,n)}:e),r[t]=o&&function(e){o("[xmldom "+t+"]\t"+e+m(n))}||function(){}}return n=n||{},o("warning"),o("error"),o("fatalError"),r}(a,i,s),r.domBuilder=n.domBuilder||i,p&&(c[""]=l.HTML),c.xml=c.xml||l.XML;var g=n.normalizeLineEndings||d;return e&&"string"==typeof e?r.parse(g(e),c,f):r.errorHandler.error("invalid doc source"),i.doc},h.prototype={startDocument:function(){this.doc=(new s).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var i=this.doc,o=i.createElementNS(e,n||t),a=r.length;b(this,o),this.currentElement=o,this.locator&&f(this.locator,o);for(var s=0;s{var r=n(8073),i=r.find,o=r.NAMESPACE;function a(e){return""!==e}function s(e,t){return e.hasOwnProperty(t)||(e[t]=!0),e}function l(e){if(!e)return[];var t=function(e){return e?e.split(/[\t\n\f\r ]+/).filter(a):[]}(e);return Object.keys(t.reduce(s,{}))}function c(e,t){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}function u(e,t){var n=e.prototype;if(!(n instanceof t)){function r(){}r.prototype=t.prototype,c(n,r=new r),e.prototype=n=r}n.constructor!=e&&("function"!=typeof e&&console.error("unknown Class:"+e),n.constructor=e)}var d={},p=d.ELEMENT_NODE=1,h=d.ATTRIBUTE_NODE=2,f=d.TEXT_NODE=3,m=d.CDATA_SECTION_NODE=4,g=d.ENTITY_REFERENCE_NODE=5,b=d.ENTITY_NODE=6,v=d.PROCESSING_INSTRUCTION_NODE=7,y=d.COMMENT_NODE=8,_=d.DOCUMENT_NODE=9,w=d.DOCUMENT_TYPE_NODE=10,x=d.DOCUMENT_FRAGMENT_NODE=11,T=d.NOTATION_NODE=12,S={},k={},E=(S.INDEX_SIZE_ERR=(k[1]="Index size error",1),S.DOMSTRING_SIZE_ERR=(k[2]="DOMString size error",2),S.HIERARCHY_REQUEST_ERR=(k[3]="Hierarchy request error",3)),C=(S.WRONG_DOCUMENT_ERR=(k[4]="Wrong document",4),S.INVALID_CHARACTER_ERR=(k[5]="Invalid character",5),S.NO_DATA_ALLOWED_ERR=(k[6]="No data allowed",6),S.NO_MODIFICATION_ALLOWED_ERR=(k[7]="No modification allowed",7),S.NOT_FOUND_ERR=(k[8]="Not found",8)),A=(S.NOT_SUPPORTED_ERR=(k[9]="Not supported",9),S.INUSE_ATTRIBUTE_ERR=(k[10]="Attribute in use",10));function I(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,k[e]),this.message=k[e],Error.captureStackTrace&&Error.captureStackTrace(this,I);return n.code=e,t&&(this.message=this.message+": "+t),n}function O(){}function j(e,t){this._node=e,this._refresh=t,P(this)}function P(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!==t){var n=e._refresh(e._node);if(ve(e,"length",n.length),!e.$$length||n.length=0))throw new I(C,new Error(e.tagName+"@"+n));for(var i=t.length-1;r"==e&&">")||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";"}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(B(e,t))return!0}while(e=e.nextSibling)}function z(){this.ownerDocument=this}function q(e,t,n,r){e&&e._inc++,n.namespaceURI===o.XMLNS&&delete t._nsMap[n.prefix?n.localName:""]}function H(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{for(var i=t.firstChild,o=0;i;)r[o++]=i,i=i.nextSibling;r.length=o,delete r[r.length]}}}function $(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,H(e.ownerDocument,e),t}function V(e){return e&&e.nodeType===F.DOCUMENT_TYPE_NODE}function W(e){return e&&e.nodeType===F.ELEMENT_NODE}function G(e){return e&&e.nodeType===F.TEXT_NODE}function X(e,t){var n=e.childNodes||[];if(i(n,W)||V(t))return!1;var r=i(n,V);return!(t&&r&&n.indexOf(r)>n.indexOf(t))}function Y(e,t){var n=e.childNodes||[];if(i(n,(function(e){return W(e)&&e!==t})))return!1;var r=i(n,V);return!(t&&r&&n.indexOf(r)>n.indexOf(t))}function K(e,t,n){var r=e.childNodes||[],o=t.childNodes||[];if(t.nodeType===F.DOCUMENT_FRAGMENT_NODE){var a=o.filter(W);if(a.length>1||i(o,G))throw new I(E,"More than one element or text in fragment");if(1===a.length&&!X(e,n))throw new I(E,"Element in fragment can not be inserted before doctype")}if(W(t)&&!X(e,n))throw new I(E,"Only one element can be added and only after doctype");if(V(t)){if(i(r,V))throw new I(E,"Only one doctype is allowed");var s=i(r,W);if(n&&r.indexOf(s)1||i(o,G))throw new I(E,"More than one element or text in fragment");if(1===a.length&&!Y(e,n))throw new I(E,"Element in fragment can not be inserted before doctype")}if(W(t)&&!Y(e,n))throw new I(E,"Only one element can be added and only after doctype");if(V(t)){if(i(r,(function(e){return V(e)&&e!==n})))throw new I(E,"Only one doctype is allowed");var s=i(r,W);if(n&&r.indexOf(s)=0;T--)if(""===(S=i[T]).prefix&&S.namespace===e.namespaceURI){d=S.namespace;break}if(d!==e.namespaceURI)for(T=i.length-1;T>=0;T--){var S;if((S=i[T]).namespace===e.namespaceURI){S.prefix&&(u=S.prefix+":"+c);break}}}t.push("<",u);for(var k=0;k"),n&&/^script$/i.test(c))for(;l;)l.data?t.push(l.data):me(l,t,n,r,i.slice()),l=l.nextSibling;else for(;l;)me(l,t,n,r,i.slice()),l=l.nextSibling;t.push("")}else t.push("/>");return;case _:case x:for(l=e.firstChild;l;)me(l,t,n,r,i.slice()),l=l.nextSibling;return;case h:return fe(t,e.name,e.value);case f:return t.push(e.data.replace(/[<&>]/g,U));case m:return t.push("");case y:return t.push("\x3c!--",e.data,"--\x3e");case w:var I=e.publicId,O=e.systemId;if(t.push("");else if(O&&"."!=O)t.push(" SYSTEM ",O,">");else{var j=e.internalSubset;j&&t.push(" [",j,"]"),t.push(">")}return;case v:return t.push("");case g:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function ge(e,t,n){var r;switch(t.nodeType){case p:(r=t.cloneNode(!1)).ownerDocument=e;case x:break;case h:n=!0}if(r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null,n)for(var i=t.firstChild;i;)r.appendChild(ge(e,i,n)),i=i.nextSibling;return r}function be(e,t,n){var r=new t.constructor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=t[i];"object"!=typeof o&&o!=r[i]&&(r[i]=o)}switch(t.childNodes&&(r.childNodes=new O),r.ownerDocument=e,r.nodeType){case p:var a=t.attributes,s=r.attributes=new D,l=a.length;s._ownerElement=r;for(var c=0;c=0&&e0},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n)for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)&&n[r]===e)return r;t=t.nodeType==h?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&Object.prototype.hasOwnProperty.call(n,e))return n[e];t=t.nodeType==h?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},c(d,F),c(d,F.prototype),z.prototype={nodeName:"#document",nodeType:_,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==x){for(var n=e.firstChild;n;){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return Z(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===p&&(this.documentElement=e),e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),$(this,e)},replaceChild:function(e,t){Z(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),W(e)&&(this.documentElement=e)},importNode:function(e,t){return ge(this,e,t)},getElementById:function(e){var t=null;return B(this.documentElement,(function(n){if(n.nodeType==p&&n.getAttribute("id")==e)return t=n,!0})),t},getElementsByClassName:function(e){var t=l(e);return new j(this,(function(n){var r=[];return t.length>0&&B(n.documentElement,(function(i){if(i!==n&&i.nodeType===p){var o=i.getAttribute("class");if(o){var a=e===o;if(!a){var s=l(o);a=t.every((c=s,function(e){return c&&-1!==c.indexOf(e)}))}a&&r.push(i)}}var c})),r}))},createElement:function(e){var t=new J;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new O,(t.attributes=new D)._ownerElement=t,t},createDocumentFragment:function(){var e=new ce;return e.ownerDocument=this,e.childNodes=new O,e},createTextNode:function(e){var t=new ne;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new re;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new ie;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new ue;return n.ownerDocument=this,n.tagName=n.nodeName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new ee;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new le;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new J,r=t.split(":"),i=n.attributes=new D;return n.childNodes=new O,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,2==r.length?(n.prefix=r[0],n.localName=r[1]):n.localName=t,i._ownerElement=n,n},createAttributeNS:function(e,t){var n=new ee,r=t.split(":");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,2==r.length?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},u(z,F),J.prototype={nodeType:p,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===x?this.insertBefore(e,null):function(e,t){return t.parentNode&&t.parentNode.removeChild(t),t.parentNode=e,t.previousSibling=e.lastChild,t.nextSibling=null,t.previousSibling?t.previousSibling.nextSibling=t:e.firstChild=t,e.lastChild=t,H(e.ownerDocument,e,t),t}(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||""},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=""+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new j(this,(function(t){var n=[];return B(t,(function(r){r===t||r.nodeType!=p||"*"!==e&&r.tagName!=e||n.push(r)})),n}))},getElementsByTagNameNS:function(e,t){return new j(this,(function(n){var r=[];return B(n,(function(i){i===n||i.nodeType!==p||"*"!==e&&i.namespaceURI!==e||"*"!==t&&i.localName!=t||r.push(i)})),r}))}},z.prototype.getElementsByTagName=J.prototype.getElementsByTagName,z.prototype.getElementsByTagNameNS=J.prototype.getElementsByTagNameNS,u(J,F),ee.prototype.nodeType=h,u(ee,F),te.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(k[E])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,n){n=this.data.substring(0,e)+n+this.data.substring(e+t),this.nodeValue=this.data=n,this.length=n.length}},u(te,F),ne.prototype={nodeName:"#text",nodeType:f,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},u(ne,te),re.prototype={nodeName:"#comment",nodeType:y},u(re,te),ie.prototype={nodeName:"#cdata-section",nodeType:m},u(ie,te),oe.prototype.nodeType=w,u(oe,F),ae.prototype.nodeType=T,u(ae,F),se.prototype.nodeType=b,u(se,F),le.prototype.nodeType=g,u(le,F),ce.prototype.nodeName="#document-fragment",ce.prototype.nodeType=x,u(ce,F),ue.prototype.nodeType=v,u(ue,F),de.prototype.serializeToString=function(e,t,n){return pe.call(e,t,n)},F.prototype.toString=pe;try{if(Object.defineProperty){function ye(e){switch(e.nodeType){case p:case x:var t=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&t.push(ye(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}Object.defineProperty(j.prototype,"length",{get:function(){return P(this),this.$$length}}),Object.defineProperty(F.prototype,"textContent",{get:function(){return ye(this)},set:function(e){switch(this.nodeType){case p:case x:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),ve=function(e,t,n){e["$$"+t]=n}}}catch(_e){}t.DocumentType=oe,t.DOMException=I,t.DOMImplementation=M,t.Element=J,t.Node=F,t.NodeList=O,t.XMLSerializer=de},7650:(e,t,n)=>{"use strict";var r=n(8073).freeze;t.XML_ENTITIES=r({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),t.HTML_ENTITIES=r({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),t.entityMap=t.HTML_ENTITIES},9291:(e,t,n)=>{var r=n(4907);r.DOMImplementation,r.XMLSerializer,t.DOMParser=n(7218).DOMParser},5904:(e,t,n)=>{var r=n(8073).NAMESPACE,i=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,o=new RegExp("[\\-\\.0-9"+i.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),a=new RegExp("^"+i.source+o.source+"*(?::"+i.source+o.source+"*)?$");function s(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,s)}function l(){}function c(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function u(e,t,n,i,o,a){function s(e,t,r){n.attributeNames.hasOwnProperty(e)&&a.fatalError("Attribute "+e+" redefined"),n.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,o),r)}for(var l,c=++t,u=0;;){var d=e.charAt(c);switch(d){case"=":if(1===u)l=e.slice(t,c),u=3;else{if(2!==u)throw new Error("attribute equal must after attrName");u=3}break;case"'":case'"':if(3===u||1===u){if(1===u&&(a.warning('attribute value must after "="'),l=e.slice(t,c)),t=c+1,!((c=e.indexOf(d,t))>0))throw new Error("attribute value no end '"+d+"' match");s(l,p=e.slice(t,c),t-1),u=5}else{if(4!=u)throw new Error('attribute value must after "="');s(l,p=e.slice(t,c),t),a.warning('attribute "'+l+'" missed start quot('+d+")!!"),t=c+1,u=5}break;case"/":switch(u){case 0:n.setTagName(e.slice(t,c));case 5:case 6:case 7:u=7,n.closed=!0;case 4:case 1:break;case 2:n.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return a.error("unexpected end of input"),0==u&&n.setTagName(e.slice(t,c)),c;case">":switch(u){case 0:n.setTagName(e.slice(t,c));case 5:case 6:case 7:break;case 4:case 1:"/"===(p=e.slice(t,c)).slice(-1)&&(n.closed=!0,p=p.slice(0,-1));case 2:2===u&&(p=l),4==u?(a.warning('attribute "'+p+'" missed quot(")!'),s(l,p,t)):(r.isHTML(i[""])&&p.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+p+'" missed value!! "'+p+'" instead!!'),s(p,p,t));break;case 3:throw new Error("attribute value missed!!")}return c;case"€":d=" ";default:if(d<=" ")switch(u){case 0:n.setTagName(e.slice(t,c)),u=6;break;case 1:l=e.slice(t,c),u=2;break;case 4:var p=e.slice(t,c);a.warning('attribute "'+p+'" missed quot(")!!'),s(l,p,t);case 5:u=6}else switch(u){case 2:n.tagName,r.isHTML(i[""])&&l.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+l+'" missed value!! "'+l+'" instead2!!'),s(l,l,t),t=c,u=1;break;case 5:a.warning('attribute space is required"'+l+'"!!');case 6:u=1,t=c;break;case 3:u=4,t=c;break;case 7:throw new Error("elements closed character '/' and '>' must be connected to")}}c++}}function d(e,t,n){for(var i=e.tagName,o=null,a=e.length;a--;){var s=e[a],l=s.qName,c=s.value;if((h=l.indexOf(":"))>0)var u=s.prefix=l.slice(0,h),d=l.slice(h+1),p="xmlns"===u&&d;else d=l,u=null,p="xmlns"===l&&"";s.localName=d,!1!==p&&(null==o&&(o={},f(n,n={})),n[p]=o[p]=c,s.uri=r.XMLNS,t.startPrefixMapping(p,c))}for(a=e.length;a--;)(u=(s=e[a]).prefix)&&("xml"===u&&(s.uri=r.XML),"xmlns"!==u&&(s.uri=n[u||""]));var h;(h=i.indexOf(":"))>0?(u=e.prefix=i.slice(0,h),d=e.localName=i.slice(h+1)):(u=null,d=e.localName=i);var m=e.uri=n[u||""];if(t.startElement(m,d,i,e),!e.closed)return e.currentNSMap=n,e.localNSMap=o,!0;if(t.endElement(m,d,i),o)for(u in o)Object.prototype.hasOwnProperty.call(o,u)&&t.endPrefixMapping(u)}function p(e,t,n,r,i){if(/^(?:script|textarea)$/i.test(n)){var o=e.indexOf("",t),a=e.substring(t+1,o);if(/[&<]/.test(a))return/^script$/i.test(n)?(i.characters(a,0,a.length),o):(a=a.replace(/&#?\w+;/g,r),i.characters(a,0,a.length),o)}return t+1}function h(e,t,n,r){var i=r[n];return null==i&&((i=e.lastIndexOf(""))t?(n.comment(e,t+4,i-t-4),i+3):(r.error("Unclosed comment"),-1):-1;if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return n.startCDATA(),n.characters(e,t+9,i-t-9),n.endCDATA(),i+3}var o=function(e,t){var n,r=[],i=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(i.lastIndex=t,i.exec(e);n=i.exec(e);)if(r.push(n),n[1])return r}(e,t),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var s=o[1][0],l=!1,c=!1;a>3&&(/^public$/i.test(o[2][0])?(l=o[3][0],c=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(c=o[3][0]));var u=o[a-1];return n.startDTD(s,l,c),n.endDTD(),u.index+u[0].length}return-1}function g(e,t,n){var r=e.indexOf("?>",t);if(r){var i=e.substring(t,r).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);return i?(i[0].length,n.processingInstruction(i[1],i[2]),r+2):-1}return-1}function b(){this.attributeNames={}}s.prototype=new Error,s.prototype.name=s.name,l.prototype={parse:function(e,t,n){var i=this.domBuilder;i.startDocument(),f(t,t={}),function(e,t,n,i,o){function a(e){var t=e.slice(1,-1);return Object.hasOwnProperty.call(n,t)?n[t]:"#"===t.charAt(0)?function(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}(parseInt(t.substr(1).replace("x","0x"))):(o.error("entity not found:"+e),e)}function l(t){if(t>S){var n=e.substring(S,t).replace(/&#?\w+;/g,a);w&&f(S),i.characters(n,0,t-S),S=t}}function f(t,n){for(;t>=y&&(n=_.exec(e));)v=n.index,y=v+n[0].length,w.lineNumber++;w.columnNumber=t-v+1}for(var v=0,y=0,_=/.*(?:\r\n?|\n)|.*$/g,w=i.locator,x=[{currentNSMap:t}],T={},S=0;;){try{var k=e.indexOf("<",S);if(k<0){if(!e.substr(S).match(/^\s*$/)){var E=i.doc,C=E.createTextNode(e.substr(S));E.appendChild(C),i.currentElement=C}return}switch(k>S&&l(k),e.charAt(k+1)){case"/":var A=e.indexOf(">",k+3),I=e.substring(k+2,A).replace(/[ \t\n\r]+$/g,""),O=x.pop();A<0?(I=e.substring(k+2).replace(/[\s<].*/,""),o.error("end tag name: "+I+" is not complete:"+O.tagName),A=k+1+I.length):I.match(/\sS?S=A:l(Math.max(k,S)+1)}}(e,t,n,i,this.errorHandler),i.endDocument()}},b.prototype={setTagName:function(e){if(!a.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,n){if(!a.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},t.XMLReader=l,t.ParseError=s},8759:(e,t,n)=>{var r,i,o,a;function s(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function l(e,t){return p(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(e,t)||u(e,t)||c()}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&n[1]||""},e.getSecondMatch=function(e,t){var n=t.match(e);return n&&n.length>1&&n[2]||""},e.matchAndReturnConst=function(e,t,n){if(e.test(t))return n},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,n,r){void 0===r&&(r=!1);var i=e.getVersionPrecision(t),o=e.getVersionPrecision(n),a=Math.max(i,o),s=0,l=e.map([t,n],(function(t){var n=a-e.getVersionPrecision(t),r=t+new Array(n+1).join(".0");return e.map(r.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(r&&(s=a-Math.min(i,o)),a-=1;a>=s;){if(l[0][a]>l[1][a])return 1;if(l[0][a]===l[1][a]){if(a===s)return 0;a-=1}else if(l[0][a]1?i-1:0),a=1;a0){var a=Object.keys(n),l=s.default.find(a,(function(e){return t.isOS(e)}));if(l){var c=this.satisfies(n[l]);if(void 0!==c)return c}var u=s.default.find(a,(function(e){return t.isPlatform(e)}));if(u){var d=this.satisfies(n[u]);if(void 0!==d)return d}}if(o>0){var p=Object.keys(i),h=s.default.find(p,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var n=this.getBrowserName().toLowerCase(),r=e.toLowerCase(),i=s.default.getBrowserTypeByAlias(r);return t&&i&&(r=i.toLowerCase()),r===n},t.compareVersion=function(e){var t=[0],n=e,r=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(n=e.substr(1),"="===e[1]?(r=!0,n=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?n=e.substr(1):"~"===e[0]&&(r=!0,n=e.substr(1)),t.indexOf(s.default.compareVersions(i,n,r))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=c,e.exports=t.default},92:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},n=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},n=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},n=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},n=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},n=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},n=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},n=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},n=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},n=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},n=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},n=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},n=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},n=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},n=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},n=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return n&&(t.version=n),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},n=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},n=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},n=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},n=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},n=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},n=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},n=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},n=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},n=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},n=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},n=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},n=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:function(e){var t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe:function(e){var t={name:"Android Browser"},n=i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},n=i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},n=i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=n(18),a=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:o.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),n=i.default.getWindowsVersionName(t);return{name:o.OS_MAP.Windows,version:t,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:o.OS_MAP.iOS},n=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return n&&(t.version=n),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),n=i.default.getMacOSVersionName(t),r={name:o.OS_MAP.MacOS,version:t};return n&&(r.versionName=n),r}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),n=i.default.getAndroidVersionName(t),r={name:o.OS_MAP.Android,version:t};return n&&(r.versionName=n),r}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),n={name:o.OS_MAP.WebOS};return t&&t.length&&(n.version=t),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:o.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=n(18),a=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",n={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(n.model=t),n}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),n=e.test(/like (ipod|iphone)/i);return t&&!n},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=n(18),a=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:o.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:o.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:o.ENGINE_MAP.Trident},n=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:o.ENGINE_MAP.Presto},n=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:function(e){var t=e.test(/gecko/i),n=e.test(/like gecko/i);return t&&!n},describe:function(e){var t={name:o.ENGINE_MAP.Gecko},n=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:o.ENGINE_MAP.WebKit},n=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}}];t.default=a,e.exports=t.default}})},156:function(t){"use strict";t.exports=e},14:function(e,t,n){"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}var i,o=Object.prototype.toString,a=Object.getPrototypeOf,h=(i=Object.create(null),function(e){var t=o.call(e);return i[t]||(i[t]=t.slice(8,-1).toLowerCase())}),m=function(e){return e=e.toLowerCase(),function(t){return h(t)===e}},b=function(e){return function(t){return _(t)===e}},y=Array.isArray,w=b("undefined"),x=m("ArrayBuffer"),T=b("string"),S=b("function"),k=b("number"),E=function(e){return null!==e&&"object"==_(e)},C=function(e){if("object"!==h(e))return!1;var t=a(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},A=m("Date"),I=m("File"),O=m("Blob"),j=m("FileList"),P=m("URLSearchParams");function D(e,t){var n,r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.allOwnKeys,a=void 0!==o&&o;if(null!=e)if("object"!=_(e)&&(e=[e]),y(e))for(n=0,r=e.length;n0;)if(t===(n=r[i]).toLowerCase())return n;return null}var L,R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,M=function(e){return!w(e)&&e!==R},F=(L="undefined"!=typeof Uint8Array&&a(Uint8Array),function(e){return L&&e instanceof L}),U=m("HTMLFormElement"),B=function(e){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),z=m("RegExp"),q=function(e,t){var n=Object.getOwnPropertyDescriptors(e),r={};D(n,(function(n,i){var o;!1!==(o=t(n,i,e))&&(r[i]=o||n)})),Object.defineProperties(e,r)},H="abcdefghijklmnopqrstuvwxyz",$="0123456789",V={DIGIT:$,ALPHA:H,ALPHA_DIGIT:H+H.toUpperCase()+$},W=m("AsyncFunction"),G={isArray:y,isArrayBuffer:x,isBuffer:function(e){return null!==e&&!w(e)&&null!==e.constructor&&!w(e.constructor)&&S(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||S(e.append)&&("formdata"===(t=h(e))||"object"===t&&S(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&x(e.buffer)},isString:T,isNumber:k,isBoolean:function(e){return!0===e||!1===e},isObject:E,isPlainObject:C,isUndefined:w,isDate:A,isFile:I,isBlob:O,isRegExp:z,isFunction:S,isStream:function(e){return E(e)&&S(e.pipe)},isURLSearchParams:P,isTypedArray:F,isFileList:j,forEach:D,merge:function e(){for(var t=M(this)&&this||{},n=t.caseless,r={},i=function(t,i){var o=n&&N(r,i)||i;C(r[o])&&C(t)?r[o]=e(r[o],t):C(t)?r[o]=e({},t):y(t)?r[o]=t.slice():r[o]=t},o=0,a=arguments.length;o3&&void 0!==arguments[3]?arguments[3]:{},o=i.allOwnKeys;return D(t,(function(t,i){n&&S(t)?e[i]=r(t,n):e[i]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,n,r){e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:function(e,t,n,r){var i,o,s,l={};if(t=t||{},null==e)return t;do{for(o=(i=Object.getOwnPropertyNames(e)).length;o-- >0;)s=i[o],r&&!r(s,e,t)||l[s]||(t[s]=e[s],l[s]=!0);e=!1!==n&&a(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:h,kindOfTest:m,endsWith:function(e,t,n){e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return-1!==r&&r===n},toArray:function(e){if(!e)return null;if(y(e))return e;var t=e.length;if(!k(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n},forEachEntry:function(e,t){for(var n,r=(e&&e[Symbol.iterator]).call(e);(n=r.next())&&!n.done;){var i=n.value;t.call(e,i[0],i[1])}},matchAll:function(e,t){for(var n,r=[];null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:U,hasOwnProperty:B,hasOwnProp:B,reduceDescriptors:q,freezeMethods:function(e){q(e,(function(t,n){if(S(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=e[n];S(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:function(e,t){var n={},r=function(e){e.forEach((function(e){n[e]=!0}))};return y(e)?r(e):r(String(e).split(t)),n},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(e,t){return e=+e,Number.isFinite(e)?e:t},findKey:N,global:R,isContextDefined:M,ALPHABET:V,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V.ALPHA_DIGIT,n="",r=t.length;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&S(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(n,r){if(E(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[r]=n;var i=y(n)?[]:{};return D(n,(function(t,n){var o=e(t,r+1);!w(o)&&(i[n]=o)})),t[r]=void 0,i}}return n}(e,0)},isAsyncFn:W,isThenable:function(e){return e&&(E(e)||S(e))&&S(e.then)&&S(e.catch)}};function X(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}G.inherits(X,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var Y=X.prototype,K={};function Q(e){return G.isPlainObject(e)||G.isArray(e)}function Z(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function J(e,t,n){return e?e.concat(t).map((function(e,t){return e=Z(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){K[e]={value:e}})),Object.defineProperties(X,K),Object.defineProperty(Y,"isAxiosError",{value:!0}),X.from=function(e,t,n,r,i,o){var a=Object.create(Y);return G.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),X.call(a,e.message,t,n,r,i),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};var ee=G.toFlatObject(G,{},null,(function(e){return/^is[A-Z]/.test(e)}));function te(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var r=(n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!G.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(i))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(G.isDate(e))return e.toISOString();if(!s&&G.isBlob(e))throw new X("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(e)||G.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){var s=e;if(e&&!i&&"object"==_(e))if(G.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(G.isArray(e)&&function(e){return G.isArray(e)&&!e.some(Q)}(e)||(G.isFileList(e)||G.endsWith(n,"[]"))&&(s=G.toArray(e)))return n=Z(n),s.forEach((function(e,r){!G.isUndefined(e)&&null!==e&&t.append(!0===a?J([n],r,o):null===a?n:n+"[]",l(e))})),!1;return!!Q(e)||(t.append(J(i,n,o),l(e)),!1)}var u=[],d=Object.assign(ee,{defaultVisitor:c,convertValue:l,isVisitable:Q});if(!G.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!G.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),G.forEach(n,(function(n,o){!0===(!(G.isUndefined(n)||null===n)&&i.call(t,n,G.isString(o)?o.trim():o,r,d))&&e(n,r?r.concat(o):[o])})),u.pop()}}(e),t}function ne(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function re(e,t){this._pairs=[],e&&te(e,this,t)}var ie=re.prototype;function oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ae(e,t,n){if(!t)return e;var r,i=n&&n.encode||oe,o=n&&n.serialize;if(r=o?o(t,n):G.isURLSearchParams(t)?t.toString():new re(t,n).toString(i)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}ie.append=function(e,t){this._pairs.push([e,t])},ie.toString=function(e){var t=e?function(t){return e.call(this,t,ne)}:ne;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var se,le=function(){function e(){g(this,e),this.handlers=[]}return v(e,[{key:"use",value:function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){G.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),ce={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ue={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:re,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},de="undefined"!=typeof window&&"undefined"!=typeof document,pe=(se="undefined"!=typeof navigator&&navigator.product,de&&["ReactNative","NativeScript","NS"].indexOf(se)<0),he="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,fe=f(f({},Object.freeze({__proto__:null,hasBrowserEnv:de,hasStandardBrowserWebWorkerEnv:he,hasStandardBrowserEnv:pe})),ue);function me(e){function t(e,n,r,i){var o=e[i++],a=Number.isFinite(+o),s=i>=e.length;return o=!o&&G.isArray(r)?r.length:o,s?(G.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&G.isObject(r[o])||(r[o]=[]),t(e,n,r[o],i)&&G.isArray(r[o])&&(r[o]=function(e){var t,n,r={},i=Object.keys(e),o=i.length;for(t=0;t-1,o=G.isObject(e);if(o&&G.isHTMLForm(e)&&(e=new FormData(e)),G.isFormData(e))return i&&i?JSON.stringify(me(e)):e;if(G.isArrayBuffer(e)||G.isBuffer(e)||G.isStream(e)||G.isFile(e)||G.isBlob(e))return e;if(G.isArrayBufferView(e))return e.buffer;if(G.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new fe.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return fe.isNode&&G.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((n=G.isFileList(e))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return te(n?{"files[]":e}:e,a&&new a,this.formSerializer)}}return o||i?(t.setContentType("application/json",!1),function(e,t,n){if(G.isString(e))try{return(0,JSON.parse)(e),G.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||ge.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&G.isString(e)&&(n&&!this.responseType||r)){var i=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(i){if("SyntaxError"===e.name)throw X.from(e,X.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:fe.classes.FormData,Blob:fe.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],(function(e){ge.headers[e]={}}));var be=ge,ve=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ye=Symbol("internals");function _e(e){return e&&String(e).trim().toLowerCase()}function we(e){return!1===e||null==e?e:G.isArray(e)?e.map(we):String(e)}function xe(e,t,n,r,i){return G.isFunction(r)?r.call(this,t,n):(i&&(t=n),G.isString(t)?G.isString(r)?-1!==t.indexOf(r):G.isRegExp(r)?r.test(t):void 0:void 0)}var Te=function(e,t){function n(e){g(this,n),e&&this.set(e)}return v(n,[{key:"set",value:function(e,t,n){var r=this;function i(e,t,n){var i=_e(t);if(!i)throw new Error("header name must be a non-empty string");var o=G.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||t]=we(e))}var o=function(e,t){return G.forEach(e,(function(e,n){return i(e,n,t)}))};return G.isPlainObject(e)||e instanceof this.constructor?o(e,t):G.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?o(function(e){var t,n,r,i={};return e&&e.split("\n").forEach((function(e){r=e.indexOf(":"),t=e.substring(0,r).trim().toLowerCase(),n=e.substring(r+1).trim(),!t||i[t]&&ve[t]||("set-cookie"===t?i[t]?i[t].push(n):i[t]=[n]:i[t]=i[t]?i[t]+", "+n:n)})),i}(e),t):null!=e&&i(t,e,n),this}},{key:"get",value:function(e,t){if(e=_e(e)){var n=G.findKey(this,e);if(n){var r=this[n];if(!t)return r;if(!0===t)return function(e){for(var t,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=r.exec(e);)n[t[1]]=t[2];return n}(r);if(G.isFunction(t))return t.call(this,r,n);if(G.isRegExp(t))return t.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=_e(e)){var n=G.findKey(this,e);return!(!n||void 0===this[n]||t&&!xe(0,this[n],n,t))}return!1}},{key:"delete",value:function(e,t){var n=this,r=!1;function i(e){if(e=_e(e)){var i=G.findKey(n,e);!i||t&&!xe(0,n[i],i,t)||(delete n[i],r=!0)}}return G.isArray(e)?e.forEach(i):i(e),r}},{key:"clear",value:function(e){for(var t=Object.keys(this),n=t.length,r=!1;n--;){var i=t[n];e&&!xe(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}},{key:"normalize",value:function(e){var t=this,n={};return G.forEach(this,(function(r,i){var o=G.findKey(n,i);if(o)return t[o]=we(r),void delete t[i];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n}))}(i):String(i).trim();a!==i&&delete t[i],t[a]=we(r),n[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r1?n-1:0),i=1;i1?"since :\n"+s.map(De).join("\n"):" "+De(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function Re(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ce(null,e)}function Me(e){return Re(e),e.headers=Se.from(e.headers),e.data=ke.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Le(e.adapter||be.adapter)(e).then((function(t){return Re(e),t.data=ke.call(e,e.transformResponse,t),t.headers=Se.from(t.headers),t}),(function(t){return Ee(t)||(Re(e),t&&t.response&&(t.response.data=ke.call(e,e.transformResponse,t.response),t.response.headers=Se.from(t.response.headers))),Promise.reject(t)}))}var Fe=function(e){return e instanceof Se?e.toJSON():e};function Ue(e,t){t=t||{};var n={};function r(e,t,n){return G.isPlainObject(e)&&G.isPlainObject(t)?G.merge.call({caseless:n},e,t):G.isPlainObject(t)?G.merge({},t):G.isArray(t)?t.slice():t}function i(e,t,n){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function o(e,t){if(!G.isUndefined(t))return r(void 0,t)}function a(e,t){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,o){return o in t?r(n,i):o in e?r(void 0,n):void 0}var l={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:function(e,t){return i(Fe(e),Fe(t),!0)}};return G.forEach(Object.keys(Object.assign({},e,t)),(function(r){var o=l[r]||i,a=o(e[r],t[r],r);G.isUndefined(a)&&o!==s||(n[r]=a)})),n}var Be={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){Be[e]=function(n){return _(n)===e||"a"+(t<1?"n ":" ")+e}}));var ze={};Be.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.1] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,i,o){if(!1===e)throw new X(r(i," has been removed"+(t?" in "+t:"")),X.ERR_DEPRECATED);return t&&!ze[i]&&(ze[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,o)}};var qe={assertOptions:function(e,t,n){if("object"!=_(e))throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(e),i=r.length;i-- >0;){var o=r[i],a=t[o];if(a){var s=e[o],l=void 0===s||a(s,o,e);if(!0!==l)throw new X("option "+o+" must be "+l,X.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}},validators:Be},He=qe.validators,$e=function(){function e(t){g(this,e),this.defaults=t,this.interceptors={request:new le,response:new le}}return v(e,[{key:"request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var n=t=Ue(this.defaults,t),r=n.transitional,i=n.paramsSerializer,o=n.headers;void 0!==r&&qe.assertOptions(r,{silentJSONParsing:He.transitional(He.boolean),forcedJSONParsing:He.transitional(He.boolean),clarifyTimeoutError:He.transitional(He.boolean)},!1),null!=i&&(G.isFunction(i)?t.paramsSerializer={serialize:i}:qe.assertOptions(i,{encode:He.function,serialize:He.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=o&&G.merge(o.common,o[t.method]);o&&G.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete o[e]})),t.headers=Se.concat(a,o);var s=[],l=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(l=l&&e.synchronous,s.unshift(e.fulfilled,e.rejected))}));var c,u=[];this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));var d,p=0;if(!l){var h=[Me.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,u),d=h.length,c=Promise.resolve(t);p0;)r._listeners[t](e);r._listeners=null}})),this.promise.then=function(e){var t,n=new Promise((function(e){r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},t((function(e,t,i){r.reason||(r.reason=new Ce(e,t,i),n(r.reason))}))}return v(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}(),Ge=We,Xe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Xe).forEach((function(e){var t=l(e,2),n=t[0],r=t[1];Xe[r]=n}));var Ye=Xe,Ke=function e(t){var n=new Ve(t),i=r(Ve.prototype.request,n);return G.extend(i,Ve.prototype,n,{allOwnKeys:!0}),G.extend(i,n,null,{allOwnKeys:!0}),i.create=function(n){return e(Ue(t,n))},i}(be);Ke.Axios=Ve,Ke.CanceledError=Ce,Ke.CancelToken=Ge,Ke.isCancel=Ee,Ke.VERSION="1.6.1",Ke.toFormData=te,Ke.AxiosError=X,Ke.Cancel=Ke.CanceledError,Ke.all=function(e){return Promise.all(e)},Ke.spread=function(e){return function(t){return e.apply(null,t)}},Ke.isAxiosError=function(e){return G.isObject(e)&&!0===e.isAxiosError},Ke.mergeConfig=Ue,Ke.AxiosHeaders=Se,Ke.formToJSON=function(e){return me(G.isHTMLForm(e)?new FormData(e):e)},Ke.getAdapter=Le,Ke.HttpStatusCode=Ye,Ke.default=Ke,e.exports=Ke}},n={};function r(e){var i=n[e];if(void 0!==i)return i.exports;var o=n[e]={exports:{}};return t[e].call(o.exports,o,o.exports,r),o.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==("undefined"==typeof globalThis?"undefined":_(globalThis)))return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==("undefined"==typeof window?"undefined":_(window)))return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return function(){"use strict";r.r(i),r.d(i,{AGENT_STATUS:function(){return se},CONNECTION_STATUS:function(){return Y},ErrorBoundary:function(){return D},MephistoContext:function(){return F},STATUS_TO_TEXT_MAP:function(){return le},axiosInstance:function(){return g},doesSupportWebsockets:function(){return S},getBlockedExplanation:function(){return P},getNowTimeSec:function(){return L},getNowUtcSec:function(){return R},getTaskConfig:function(){return k},isMobile:function(){return x},isWorkerOpinionEnabled:function(){return M},libVersion:function(){return N},postCompleteOnboarding:function(){return A},postCompleteTask:function(){return I},postData:function(){return y},postErrorLog:function(){return j},postMetadata:function(){return O},postMultipartData:function(){return w},postProviderRequest:function(){return E},requestAgent:function(){return C},useMephistoLiveTask:function(){return ce},useMephistoRemoteProcedureTask:function(){return be},useMephistoSocket:function(){return J},useMephistoTask:function(){return Se}});var e=r(156),t=r.n(e),n=r(160),o=r.n(n);function a(e){return a="function"==typeof Symbol&&"symbol"==_(Symbol.iterator)?function(e){return _(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_(e)},a(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},l(e,t)}function c(e,t){if(t&&("object"===a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return u(e)}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return g({url:e,method:"POST",headers:{"Content-Type":"application/json"},data:t}).then((function(e){return e.data}))}function w(e,t){return g({url:e,method:"POST",headers:{"Content-Type":"multipart/form-data"},data:t}).then((function(e){return e.data}))}function x(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}g.interceptors.request.use((function(e){var t=function(){try{return getProviderURLParams?"function"==typeof getProviderURLParams?getProviderURLParams():getProviderURLParams:null}catch(e){if(e instanceof ReferenceError)return null;throw e}}();return t?(e.params=h(h({},e.params),t),e):e}));var T=o().getParser(window.navigator.userAgent);function S(){return T.satisfies({"internet explorer":">=10",chrome:">=16",firefox:">=11",opera:">=12.1",safari:">=7","android browser":">=3"})}function k(){return g("/task_config.json",{params:{mephisto_core_version:N}}).then((function(e){var t=e.data;return t.mephisto_core_version!==N&&console.warn("Version mismatch detected! Local `mephisto-core` package is on version "+N+" but the server expected version "+t.mephisto_core_version+". Please ensure you are using the package version expected by the Mephisto backend."),e.data}))}function E(e,t){return y(new URL(window.location.origin+e).toString(),{provider_data:t,client_timestamp:L()})}function C(){return E("/request_agent",getAgentRegistration())}function A(e,t){return E("/submit_onboarding",{USED_AGENT_ID:e,onboarding_data:t})}function I(e,t,n,r){var i=L();if(n){var o=t;return o.append("USED_AGENT_ID",e),o.append("client_timestamp",i),o.append("is_auto_submitted",r),w(v,o).then((function(e){return handleSubmitToProvider(o.get("final_string_data")||o.get("final_data")),e})).then((function(e){console.log("Submitted")}))}return y(v,{USED_AGENT_ID:e,final_data:t,client_timestamp:i,is_auto_submitted:r}).then((function(e){return handleSubmitToProvider(t),e})).then((function(e){console.log("Submitted")}))}function O(e,t,n){var r=L();if(n){var i=t;return i.set("USED_AGENT_ID",e),i.set("metadata",t.get("data")),i.set("client_timestamp",r),w(b,i).then((function(e){return console.log("Metadata submitted"),e}))}return y(b,{USED_AGENT_ID:e,metadata:t,client_timestamp:r}).then((function(e){return console.log("Metadata submitted"),e}))}function j(e,t){return y("/log_error",{USED_AGENT_ID:e,error_data:t,client_timestamp:L()}).then((function(e){}))}function P(e){var t={no_mobile:"Sorry, this task cannot be completed on mobile devices. Please use a computer.",no_websockets:"Sorry, your browser does not support the required version of websockets for this task. Please upgrade to a modern browser."};return e in t?t[e]:"Sorry, you are not able to work on this task. (code: ".concat(e,")")}var D=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&l(e,t)}(p,e);var n,r,i,o,a=(i=p,o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=d(i);if(o){var n=d(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return c(this,e)});function p(){var e;s(this,p);for(var t=arguments.length,n=new Array(t),r=0;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t&&console.log(e)}function Z(e,t){return null==e?t:e}function J(e){var n=e.onConnectionStatusChange,r=e.onLiveUpdate,i=e.onStatusUpdate,o=e.config,a=void 0===o?{}:o,s={heartbeat_id:null,socket_terminated:!1,setting_socket:!1,heartbeats_without_response:0,last_mephisto_ping:Date.now()},l=t().useReducer((function(e,t){return B(B({},e),t)}),s),c=q(l,2),u=c[0],d=c[1],p=t().useRef(),h=t().useRef(new K),f=t().useRef(),m=t().useRef([]);function g(){if(!u.socket_terminated&&h.current.size()>0&&Date.now()>h.current.peek()[1]){var e=q(h.current.pop(),2),t=e[0],n=e[1];b(t)||h.current.push(t,n)}}function b(e){if(0===p.current.readyState)return!1;if(p.current.readyState>1)return Q("Socket not in ready state, restarting if possible",2),v(),!1;try{return p.current.send(JSON.stringify(e.packet)),void 0!==e.callback&&e.callback(e.packet),!0}catch(e){return v(),!1}}function v(){setTimeout((function(){try{p.current.close()}catch(e){Q("Server had error "+e+" when closing after an error",1)}f.current.setupWebsocket()}),0)}function y(e,t,n){var r=Date.now();void 0===t.update_id&&(t.update_id="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})));var i={packet:{packet_type:e,subject_id:u.agentId,data:t,client_timestamp:L()},callback:n};h.current.push(i,r)}function _(){if(!u.setting_socket&&!u.socket_terminated){d({setting_socket:!0}),window.setTimeout((function(){return d({setting_socket:!1})}),4e3);var e=window.location,t=("https:"===e.protocol?"wss://":"ws://")+e.hostname+":"+e.port;p.current=new WebSocket(t),p.current.onmessage=function(e){!function(e){if("client_bound_live_update"===e.packet_type){var t=m.current;if(t.includes(e.data.update_id))return void Q("Skipping existing update_id "+e.data.update_id,3);m.current=[].concat(function(e){if(Array.isArray(e))return $(e)}(n=t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||H(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[e.data.update_id]),r(e.data)}else"update_status"===e.packet_type?i(e.data):e.packet_type===X&&d({last_mephisto_ping:e.data.last_mephisto_ping,heartbeats_without_response:0});var n}(JSON.parse(e.data))},p.current.onopen=function(){if(Q("Server connected.",2),f.current.enqueuePacket("alive",{},(function(){n(Y.CONNECTED)})),window.setTimeout((function(){1===p.current.readyState||u.socket_terminated||n(Y.FAILED)}),1e4),window.setTimeout((function(){return f.current.sendHeartbeat()}),500),null==u.heartbeat_id){var e=window.setInterval((function(){return f.current.heartbeatThread()}),Z(a.heartbeatTime,6e3));d({heartbeat_id:e})}d({setting_socket:!1})},p.current.onerror=function(e){v()},p.current.onclose=function(){Q("Server closing.",3),n(Y.DISCONNECTED)}}}function w(){return u.socket_terminated?(window.clearInterval(u.heartbeat_id),void d({heartbeat_id:null})):(u.heartbeats_without_response===Z(a.refreshSocketMissedResponses,5)&&(n(Y.RECONNECTING_ROUTER),v()),u.heartbeats_without_response>=Z(a.routerDeadTimeout,10)&&(n(Y.DISCONNECTED_ROUTER),f.current.closeSocket()),Date.now()-u.last_mephisto_ping>Z(a.connectionDeadMephistoPing,2e4)?(f.current.closeSocket(),i({status:"mephisto disconnect"}),n(Y.DISCONNECTED_SERVER),window.clearInterval(u.heartbeat_id),void d({heartbeat_id:null})):void f.current.sendHeartbeat())}function x(){b({packet:{packet_type:X,subject_id:u.agentId,client_timestamp:L()}}),d({heartbeats_without_response:u.heartbeats_without_response+1})}function T(){u.socket_terminated?Q("Socket already closed",2):(Q("Socket closing",3),p.current.close(),d({socket_terminated:!0}))}return t().useEffect((function(){f.current={sendingThread:g,heartbeatThread:w,closeSocket:T,setupWebsocket:_,enqueuePacket:y,sendHeartbeat:x}})),{connect:function(e){n(Y.INITIALIZING),f.current.setupWebsocket(),f.current.sendingThread();var t=window.setInterval((function(){return f.current.sendingThread()}),Z(a.sendThreadRefresh,100));d({agentId:e,messageSenderThreadId:t})},destroy:function(){return f.current.closeSocket()},sendLiveUpdate:function(e){return new Promise((function(t){f.current.enqueuePacket("mephisto_bound_live_update",e,(function(e){t(e.data)}))}))}}}function ee(e){return ee="function"==typeof Symbol&&"symbol"==_(Symbol.iterator)?function(e){return _(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_(e)},ee(e)}function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ne(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}(d.past_live_updates);try{for(t.s();!(e=t.n()).done;)p(e.value)}catch(e){t.e(e)}finally{t.f()}}}),[d]);var h=c({onConnectionStatusChange:function(e){i(e)},onStatusUpdate:function(t){var n=t.status;s(n),(null==e?void 0:e.onStatusUpdate)&&(null==e||e.onStatusUpdate({status:n}))},onLiveUpdate:p});return S()||(u.blockedReason="no_websockets"),ne(ne(ne({},u),h),{},{connectionStatus:r,agentStatus:a})};function ue(e){return ue="function"==typeof Symbol&&"symbol"==_(Symbol.iterator)?function(e){return _(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_(e)},ue(e)}var de=["connect","destroy","sendLiveUpdate","agentId"];function pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(c,de),m={connect:u,destroy:d,sendLiveUpdate:p};t().useEffect((function(){h&&(console.log("connecting..."),u(h),s(h))}),[h]);var g=t().useCallback((function(e){var t=e.targetEvent,n=e.args,r=e.callback,i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),o={request_id:i,target:t,args:JSON.stringify(n)};return p(o).then((function(e){void 0!==r&&(e.callback=r,e.args=n,l.current[i]=e)})),i}),[h]);return he(he({},f),{},{agentId:a,remoteProcedure:function(e){var t=function(t){return new Promise((function(n,i){void 0!==r?i({disconnected:!0,reason:r}):g({targetEvent:e,args:t,callback:n})}))};return t.invoke=t,t},disconnectIssueText:r,_fullSocketProps:m})};function ve(e){return ve="function"==typeof Symbol&&"symbol"==_(Symbol.iterator)?function(e){return _(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":_(e)},ve(e)}function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _e(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?arguments[1]:void 0,a=o?Number(o):0;a!=a&&(a=0);var s=Math.min(Math.max(a,0),n);if(i+s>n)return!1;for(var c=-1;++c]+>/g,"")),r&&(l=k(l)),l=l.toUpperCase(),o="contains"===n?l.indexOf(t)>=0:l.startsWith(t)))break}return o}function _(e){return parseInt(e,10)||0}e.fn.triggerNative=function(e){var t,n=this[0];n.dispatchEvent?(v?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),n.dispatchEvent(t)):n.fireEvent?((t=document.createEventObject()).eventType=e,n.fireEvent("on"+e,t)):this.trigger(e)};var w={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},x=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,T=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]","g");function S(e){return w[e]}function k(e){return(e=e.toString())&&e.replace(x,S).replace(T,"")}var E,C,A,I,O,j=(E={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},C=function(e){return E[e]},A="(?:"+Object.keys(E).join("|")+")",I=RegExp(A),O=RegExp(A,"g"),function(e){return e=null==e?"":""+e,I.test(e)?e.replace(O,C):e}),P={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},D=27,N=13,L=32,R=9,M=38,F=40,U={success:!1,major:"3"};try{U.full=(e.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),U.major=U.full[0],U.success=!0}catch(e){}var B=0,z=".bs.select",q={DISABLED:"disabled",DIVIDER:"divider",SHOW:"open",DROPUP:"dropup",MENU:"dropdown-menu",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"btn-default",POPOVERHEADER:"popover-title",ICONBASE:"glyphicon",TICKICON:"glyphicon-ok"},H={MENU:"."+q.MENU},$={div:document.createElement("div"),span:document.createElement("span"),i:document.createElement("i"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode(" "),fragment:document.createDocumentFragment()};$.noResults=$.li.cloneNode(!1),$.noResults.className="no-results",$.a.setAttribute("role","option"),$.a.className="dropdown-item",$.subtext.className="text-muted",$.text=$.span.cloneNode(!1),$.text.className="text",$.checkMark=$.span.cloneNode(!1);var V=new RegExp(M+"|"+F),W=new RegExp("^"+R+"$|"+D),G={li:function(e,t,n){var r=$.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?r.appendChild(e):r.innerHTML=e),void 0!==t&&""!==t&&(r.className=t),null!=n&&r.classList.add("optgroup-"+n),r},a:function(e,t,n){var r=$.a.cloneNode(!0);return e&&(11===e.nodeType?r.appendChild(e):r.insertAdjacentHTML("beforeend",e)),void 0!==t&&""!==t&&r.classList.add.apply(r.classList,t.split(/\s+/)),n&&r.setAttribute("style",n),r},text:function(e,t){var n,r,i=$.text.cloneNode(!1);if(e.content)i.innerHTML=e.content;else{if(i.textContent=e.text,e.icon){var o=$.whitespace.cloneNode(!1);(r=(!0===t?$.i:$.span).cloneNode(!1)).className=this.options.iconBase+" "+e.icon,$.fragment.appendChild(r),$.fragment.appendChild(o)}e.subtext&&((n=$.subtext.cloneNode(!1)).textContent=e.subtext,i.appendChild(n))}if(!0===t)for(;i.childNodes.length>0;)$.fragment.appendChild(i.childNodes[0]);else $.fragment.appendChild(i);return $.fragment},label:function(e){var t,n,r=$.text.cloneNode(!1);if(r.innerHTML=e.display,e.icon){var i=$.whitespace.cloneNode(!1);(n=$.span.cloneNode(!1)).className=this.options.iconBase+" "+e.icon,$.fragment.appendChild(n),$.fragment.appendChild(i)}return e.subtext&&((t=$.subtext.cloneNode(!1)).textContent=e.subtext,r.appendChild(t)),$.fragment.appendChild(r),$.fragment}};function X(e,t){e.length||($.noResults.innerHTML=this.options.noneResultsText.replace("{0}",'"'+j(t)+'"'),this.$menuInner[0].firstChild.appendChild($.noResults))}var Y=function(t,n){var r=this;g.useDefault||(e.valHooks.select.set=g._set,g.useDefault=!0),this.$element=e(t),this.$newElement=null,this.$button=null,this.$menu=null,this.options=n,this.selectpicker={main:{},search:{},current:{},view:{},isSearching:!1,keydown:{keyHistory:"",resetKeyHistory:{start:function(){return setTimeout((function(){r.selectpicker.keydown.keyHistory=""}),800)}}}},this.sizeInfo={},null===this.options.title&&(this.options.title=this.$element.attr("title"));var i=this.options.windowPadding;"number"==typeof i&&(this.options.windowPadding=[i,i,i,i]),this.val=Y.prototype.val,this.render=Y.prototype.render,this.refresh=Y.prototype.refresh,this.setStyle=Y.prototype.setStyle,this.selectAll=Y.prototype.selectAll,this.deselectAll=Y.prototype.deselectAll,this.destroy=Y.prototype.destroy,this.remove=Y.prototype.remove,this.show=Y.prototype.show,this.hide=Y.prototype.hide,this.init()};function K(n){var r,i=arguments,o=n;if([].shift.apply(i),!U.success){try{U.full=(e.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split(".")}catch(e){Y.BootstrapVersion?U.full=Y.BootstrapVersion.split(" ")[0].split("."):(U.full=[U.major,"0","0"],console.warn("There was an issue retrieving Bootstrap's version. Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.",e))}U.major=U.full[0],U.success=!0}if("4"===U.major){var a=[];Y.DEFAULTS.style===q.BUTTONCLASS&&a.push({name:"style",className:"BUTTONCLASS"}),Y.DEFAULTS.iconBase===q.ICONBASE&&a.push({name:"iconBase",className:"ICONBASE"}),Y.DEFAULTS.tickIcon===q.TICKICON&&a.push({name:"tickIcon",className:"TICKICON"}),q.DIVIDER="dropdown-divider",q.SHOW="show",q.BUTTONCLASS="btn-light",q.POPOVERHEADER="popover-header",q.ICONBASE="",q.TICKICON="bs-ok-default";for(var s=0;s'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600,display:!1,sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role","tabindex","style",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]}},Y.prototype={constructor:Y,init:function(){var e=this,t=this.$element.attr("id"),n=this.$element[0],r=n.form;B++,this.selectId="bs-select-"+B,n.classList.add("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),n.classList.contains("show-tick")&&(this.options.showTick=!0),this.$newElement=this.createDropdown(),this.buildData(),this.$element.after(this.$newElement).prependTo(this.$newElement),r&&null===n.form&&(r.id||(r.id="form-"+this.selectId),n.setAttribute("form",r.id)),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(H.MENU),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),n.classList.remove("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu[0].classList.add(q.MENURIGHT),void 0!==t&&this.$button.attr("data-id",t),this.checkDisabled(),this.clickListener(),this.options.liveSearch?(this.liveSearchListener(),this.focusedParent=this.$searchbox[0]):this.focusedParent=this.$menuInner[0],this.setStyle(),this.render(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide"+z,(function(){if(e.isVirtual()){var t=e.$menuInner[0],n=t.firstChild.cloneNode(!1);t.replaceChild(n,t.firstChild),t.scrollTop=0}})),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(t){e.$element.trigger("hide"+z,t)},"hidden.bs.dropdown":function(t){e.$element.trigger("hidden"+z,t)},"show.bs.dropdown":function(t){e.$element.trigger("show"+z,t)},"shown.bs.dropdown":function(t){e.$element.trigger("shown"+z,t)}}),n.hasAttribute("required")&&this.$element.on("invalid"+z,(function(){e.$button[0].classList.add("bs-invalid"),e.$element.on("shown"+z+".invalid",(function(){e.$element.val(e.$element.val()).off("shown"+z+".invalid")})).on("rendered"+z,(function(){this.validity.valid&&e.$button[0].classList.remove("bs-invalid"),e.$element.off("rendered"+z)})),e.$button.on("blur"+z,(function(){e.$element.trigger("focus").trigger("blur"),e.$button.off("blur"+z)}))})),setTimeout((function(){e.buildList(),e.$element.trigger("loaded"+z)}))},createDropdown:function(){var t=this.multiple||this.options.showTick?" show-tick":"",n=this.multiple?' aria-multiselectable="true"':"",r="",i=this.autofocus?" autofocus":"";U.major<4&&this.$element.parent().hasClass("input-group")&&(r=" input-group-btn");var o,a="",s="",l="",c="";return this.options.header&&(a='
'+this.options.header+"
"),this.options.liveSearch&&(s=''),this.multiple&&this.options.actionsBox&&(l='
"),this.multiple&&this.options.doneButton&&(c='
"),o='",e(o)},setPositionData:function(){this.selectpicker.view.canHighlight=[],this.selectpicker.view.size=0,this.selectpicker.view.firstHighlightIndex=!1;for(var e=0;e=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(t,n,r){var i,o,s=this,l=0,c=[];if(this.selectpicker.isSearching=t,this.selectpicker.current=t?this.selectpicker.search:this.selectpicker.main,this.setPositionData(),n)if(r)l=this.$menuInner[0].scrollTop;else if(!s.multiple){var u=s.$element[0],d=(u.options[u.selectedIndex]||{}).liIndex;if("number"==typeof d&&!1!==s.options.size){var p=s.selectpicker.main.data[d],h=p&&p.position;h&&(l=h-(s.sizeInfo.menuInnerHeight+s.sizeInfo.liHeight)/2)}}function f(e,n){var r,l,u,d,p,h,f,m,g,b,v=s.selectpicker.current.elements.length,y=[],_=!0,w=s.isVirtual();s.selectpicker.view.scrollTop=e,r=Math.ceil(s.sizeInfo.menuInnerHeight/s.sizeInfo.liHeight*1.5),l=Math.round(v/r)||1;for(var x=0;xv-1?0:s.selectpicker.current.data[v-1].position-s.selectpicker.current.data[s.selectpicker.view.position1-1].position,E.firstChild.style.marginTop=S+"px",E.firstChild.style.marginBottom=k+"px"):(E.firstChild.style.marginTop=0,E.firstChild.style.marginBottom=0),E.firstChild.appendChild(C),!0===w&&s.sizeInfo.hasScrollBar){var L=E.firstChild.offsetWidth;if(n&&Ls.sizeInfo.selectWidth)E.firstChild.style.minWidth=s.sizeInfo.menuInnerInnerWidth+"px";else if(L>s.sizeInfo.menuInnerInnerWidth){s.$menu[0].style.minWidth=0;var R=E.firstChild.offsetWidth;R>s.sizeInfo.menuInnerInnerWidth&&(s.sizeInfo.menuInnerInnerWidth=R,E.firstChild.style.minWidth=s.sizeInfo.menuInnerInnerWidth+"px"),s.$menu[0].style.minWidth=""}}}if(s.prevActiveIndex=s.activeIndex,s.options.liveSearch){if(t&&n){var M,F=0;s.selectpicker.view.canHighlight[F]||(F=1+s.selectpicker.view.canHighlight.slice(1).indexOf(!0)),M=s.selectpicker.view.visibleElements[F],s.defocusItem(s.selectpicker.view.currentActive),s.activeIndex=(s.selectpicker.current.data[F]||{}).index,s.focusItem(M)}}else s.$menuInner.trigger("focus")}f(l,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",(function(e,t){s.noScroll||f(this.scrollTop,t),s.noScroll=!1})),e(window).off("resize"+z+"."+this.selectId+".createView").on("resize"+z+"."+this.selectId+".createView",(function(){s.$newElement.hasClass(q.SHOW)&&f(s.$menuInner[0].scrollTop)}))},focusItem:function(e,t,n){if(e){t=t||this.selectpicker.main.data[this.activeIndex];var r=e.firstChild;r&&(r.setAttribute("aria-setsize",this.selectpicker.view.size),r.setAttribute("aria-posinset",t.posinset),!0!==n&&(this.focusedParent.setAttribute("aria-activedescendant",r.id),e.classList.add("active"),r.classList.add("active")))}},defocusItem:function(e){e&&(e.classList.remove("active"),e.firstChild&&e.firstChild.classList.remove("active"))},setPlaceholder:function(){var e=this,t=!1;if(this.options.title&&!this.multiple){this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option")),t=!0;var n=this.$element[0],r=!1,i=!this.selectpicker.view.titleOption.parentNode,o=n.selectedIndex,a=n.options[o],s=window.performance&&window.performance.getEntriesByType("navigation"),l=s&&s.length?"back_forward"!==s[0].type:2!==window.performance.navigation.type;i&&(this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",r=!a||0===o&&!1===a.defaultSelected&&void 0===this.$element.data("selected")),(i||0!==this.selectpicker.view.titleOption.index)&&n.insertBefore(this.selectpicker.view.titleOption,n.firstChild),r&&l?n.selectedIndex=0:"complete"!==document.readyState&&window.addEventListener("pageshow",(function(){e.selectpicker.view.displayedValue!==n.value&&e.render()}))}return t},buildData:function(){var e=':not([hidden]):not([data-hidden="true"])',t=[],n=0,r=this.setPlaceholder()?1:0;this.options.hideDisabled&&(e+=":not(:disabled)");var i=this.$element[0].querySelectorAll("select > *"+e);function o(e){var n=t[t.length-1];n&&"divider"===n.type&&(n.optID||e.optID)||((e=e||{}).type="divider",t.push(e))}function a(e,n){if((n=n||{}).divider="true"===e.getAttribute("data-divider"),n.divider)o({optID:n.optID});else{var r=t.length,i=e.style.cssText,a=i?j(i):"",s=(e.className||"")+(n.optgroupClass||"");n.optID&&(s="opt "+s),n.optionClass=s.trim(),n.inlineStyle=a,n.text=e.textContent,n.content=e.getAttribute("data-content"),n.tokens=e.getAttribute("data-tokens"),n.subtext=e.getAttribute("data-subtext"),n.icon=e.getAttribute("data-icon"),e.liIndex=r,n.display=n.content||n.text,n.type="option",n.index=r,n.option=e,n.selected=!!e.selected,n.disabled=n.disabled||!!e.disabled,t.push(n)}}function s(i,s){var l=s[i],c=!(i-1r&&(r=o,e.selectpicker.view.widestOption=n[n.length-1])}!e.options.showTick&&!e.multiple||$.checkMark.parentNode||($.checkMark.className=this.options.iconBase+" "+e.options.tickIcon+" check-mark",$.a.appendChild($.checkMark));for(var o=t.length,a=0;a li")},render:function(){var e,t,n=this,r=this.$element[0],i=this.setPlaceholder()&&0===r.selectedIndex,o=f(r,this.options.hideDisabled),s=o.length,l=this.$button[0],c=l.querySelector(".filter-option-inner-inner"),u=document.createTextNode(this.options.multipleSeparator),d=$.fragment.cloneNode(!1),p=!1;if(l.classList.toggle("bs-placeholder",n.multiple?!s:!m(r,o)),n.multiple||1!==o.length||(n.selectpicker.view.displayedValue=m(r,o)),"static"===this.options.selectedTextFormat)d=G.text.call(this,{text:this.options.title},!0);else if((e=this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")&&s>1)&&(e=(t=this.options.selectedTextFormat.split(">")).length>1&&s>t[1]||1===t.length&&s>=2),!1===e){if(!i){for(var h=0;h0&&d.appendChild(u.cloneNode(!1)),g.title?v.text=g.title:b&&(b.content&&n.options.showContent?(v.content=b.content.toString(),p=!0):(n.options.showIcon&&(v.icon=b.icon),n.options.showSubtext&&!n.multiple&&b.subtext&&(v.subtext=" "+b.subtext),v.text=g.textContent.trim())),d.appendChild(G.text.call(this,v,!0))}s>49&&d.appendChild(document.createTextNode("..."))}}else{var y=':not([hidden]):not([data-hidden="true"]):not([data-divider="true"])';this.options.hideDisabled&&(y+=":not(:disabled)");var _=this.$element[0].querySelectorAll("select > option"+y+", optgroup"+y+" option"+y).length,w="function"==typeof this.options.countSelectedText?this.options.countSelectedText(s,_):this.options.countSelectedText;d=G.text.call(this,{text:w.replace("{0}",s.toString()).replace("{1}",_.toString())},!0)}if(null==this.options.title&&(this.options.title=this.$element.attr("title")),d.childNodes.length||(d=G.text.call(this,{text:void 0!==this.options.title?this.options.title:this.options.noneSelectedText},!0)),l.title=d.textContent.replace(/<[^>]*>?/g,"").trim(),this.options.sanitize&&p&&a([d],n.options.whiteList,n.options.sanitizeFn),c.innerHTML="",c.appendChild(d),U.major<4&&this.$newElement[0].classList.contains("bs3-has-addon")){var x=l.querySelector(".filter-expand"),T=c.cloneNode(!0);T.className="filter-expand",x?l.replaceChild(T,x):l.appendChild(T)}this.$element.trigger("rendered"+z)},setStyle:function(e,t){var n,r=this.$button[0],i=this.$newElement[0],o=this.options.style.trim();this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,"")),U.major<4&&(i.classList.add("bs3"),i.parentNode.classList&&i.parentNode.classList.contains("input-group")&&(i.previousElementSibling||i.nextElementSibling)&&(i.previousElementSibling||i.nextElementSibling).classList.contains("input-group-addon")&&i.classList.add("bs3-has-addon")),n=e?e.trim():o,"add"==t?n&&r.classList.add.apply(r.classList,n.split(" ")):"remove"==t?n&&r.classList.remove.apply(r.classList,n.split(" ")):(o&&r.classList.remove.apply(r.classList,o.split(" ")),n&&r.classList.add.apply(r.classList,n.split(" ")))},liHeight:function(t){if(t||!1!==this.options.size&&!Object.keys(this.sizeInfo).length){var n,r=$.div.cloneNode(!1),i=$.div.cloneNode(!1),o=$.div.cloneNode(!1),a=document.createElement("ul"),s=$.li.cloneNode(!1),l=$.li.cloneNode(!1),c=$.a.cloneNode(!1),u=$.span.cloneNode(!1),d=this.options.header&&this.$menu.find("."+q.POPOVERHEADER).length>0?this.$menu.find("."+q.POPOVERHEADER)[0].cloneNode(!0):null,p=this.options.liveSearch?$.div.cloneNode(!1):null,h=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,f=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null,m=this.$element.find("option")[0];if(this.sizeInfo.selectWidth=this.$newElement[0].offsetWidth,u.className="text",c.className="dropdown-item "+(m?m.className:""),r.className=this.$menu[0].parentNode.className+" "+q.SHOW,r.style.width=0,"auto"===this.options.width&&(i.style.minWidth=0),i.className=q.MENU+" "+q.SHOW,o.className="inner "+q.SHOW,a.className=q.MENU+" inner "+("4"===U.major?q.SHOW:""),s.className=q.DIVIDER,l.className="dropdown-header",u.appendChild(document.createTextNode("​")),this.selectpicker.current.data.length)for(var g=0;gthis.sizeInfo.menuExtras.vert&&s+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot,!0===this.selectpicker.isSearching&&(l=this.selectpicker.dropup),this.$newElement.toggleClass(q.DROPUP,l),this.selectpicker.dropup=l),"auto"===this.options.size)i=this.selectpicker.current.elements.length>3?3*this.sizeInfo.liHeight+this.sizeInfo.menuExtras.vert-2:0,n=this.sizeInfo.selectOffsetBot-this.sizeInfo.menuExtras.vert,r=i+d+p+h+f,a=Math.max(i-g.vert,0),this.$newElement.hasClass(q.DROPUP)&&(n=this.sizeInfo.selectOffsetTop-this.sizeInfo.menuExtras.vert),o=n,t=n-d-p-h-f-g.vert;else if(this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size){for(var v=0;vthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth),"auto"===this.options.dropdownAlignRight&&this.$menu.toggleClass(q.MENURIGHT,this.sizeInfo.selectOffsetLeft>this.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.options.size&&r.off("resize"+z+"."+this.selectId+".setMenuSize scroll"+z+"."+this.selectId+".setMenuSize")}this.createView(!1,!0,t)},setWidth:function(){var e=this;"auto"===this.options.width?requestAnimationFrame((function(){e.$menu.css("min-width","0"),e.$element.on("loaded"+z,(function(){e.liHeight(),e.setMenuSize();var t=e.$newElement.clone().appendTo("body"),n=t.css("width","auto").children("button").outerWidth();t.remove(),e.sizeInfo.selectWidth=Math.max(e.sizeInfo.totalMenuWidth,n),e.$newElement.css("width",e.sizeInfo.selectWidth+"px")}))})):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement[0].classList.remove("fit-width")},selectPosition:function(){this.$bsContainer=e('
');var t,n,r,i=this,o=e(this.options.container),a=function(a){var s={},l=i.options.display||!!e.fn.dropdown.Constructor.Default&&e.fn.dropdown.Constructor.Default.display;i.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(q.DROPUP,a.hasClass(q.DROPUP)),t=a.offset(),o.is("body")?n={top:0,left:0}:((n=o.offset()).top+=parseInt(o.css("borderTopWidth"))-o.scrollTop(),n.left+=parseInt(o.css("borderLeftWidth"))-o.scrollLeft()),r=a.hasClass(q.DROPUP)?0:a[0].offsetHeight,(U.major<4||"static"===l)&&(s.top=t.top-n.top+r,s.left=t.left-n.left),s.width=a[0].offsetWidth,i.$bsContainer.css(s)};this.$button.on("click.bs.dropdown.data-api",(function(){i.isDisabled()||(a(i.$newElement),i.$bsContainer.appendTo(i.options.container).toggleClass(q.SHOW,!i.$button.hasClass(q.SHOW)).append(i.$menu))})),e(window).off("resize"+z+"."+this.selectId+" scroll"+z+"."+this.selectId).on("resize"+z+"."+this.selectId+" scroll"+z+"."+this.selectId,(function(){i.$newElement.hasClass(q.SHOW)&&a(i.$newElement)})),this.$element.on("hide"+z,(function(){i.$menu.data("height",i.$menu.height()),i.$bsContainer.detach()}))},setOptionStatus:function(e){var t=this;if(t.noScroll=!1,t.selectpicker.view.visibleElements&&t.selectpicker.view.visibleElements.length)for(var n=0;n3&&!t.dropdown&&(t.dropdown=t.$button.data("bs.dropdown"),t.dropdown._menu=t.$menu[0])})),this.$button.on("click.bs.dropdown.data-api",(function(){t.$newElement.hasClass(q.SHOW)||t.setSize()})),this.$element.on("shown"+z,(function(){t.$menuInner[0].scrollTop!==t.selectpicker.view.scrollTop&&(t.$menuInner[0].scrollTop=t.selectpicker.view.scrollTop),U.major>3?requestAnimationFrame(i):r()})),this.$menuInner.on("mouseenter","li a",(function(e){var n=this.parentElement,r=t.isVirtual()?t.selectpicker.view.position0:0,i=Array.prototype.indexOf.call(n.parentElement.children,n),o=t.selectpicker.current.data[i+r];t.focusItem(n,o,!0)})),this.$menuInner.on("click","li a",(function(n,r){var i=e(this),o=t.$element[0],a=t.isVirtual()?t.selectpicker.view.position0:0,s=t.selectpicker.current.data[i.parent().index()+a],l=s.index,c=m(o),u=o.selectedIndex,d=o.options[u],p=!0;if(t.multiple&&1!==t.options.maxOptions&&n.stopPropagation(),n.preventDefault(),!t.isDisabled()&&!i.parent().hasClass(q.DISABLED)){var h=s.option,g=e(h),v=h.selected,y=g.parent("optgroup"),_=y.find("option"),w=t.options.maxOptions,x=y.data("maxOptions")||!1;if(l===t.activeIndex&&(r=!0),r||(t.prevActiveIndex=t.activeIndex,t.activeIndex=void 0),t.multiple){if(h.selected=!v,t.setSelected(l,!v),t.focusedParent.focus(),!1!==w||!1!==x){var T=w
');A[2]&&(I=I.replace("{var}",A[2][w>1?0:1]),O=O.replace("{var}",A[2][x>1?0:1])),h.selected=!1,t.$menu.append(j),w&&T&&(j.append(e("
"+I+"
")),p=!1,t.$element.trigger("maxReached"+z)),x&&S&&(j.append(e("
"+O+"
")),p=!1,t.$element.trigger("maxReachedGrp"+z)),setTimeout((function(){t.setSelected(l,!1)}),10),j[0].classList.add("fadeOut"),setTimeout((function(){j.remove()}),1050)}}}else d&&(d.selected=!1),h.selected=!0,t.setSelected(l,!0);!t.multiple||t.multiple&&1===t.options.maxOptions?t.$button.trigger("focus"):t.options.liveSearch&&t.$searchbox.trigger("focus"),p&&(t.multiple||u!==o.selectedIndex)&&(b=[h.index,g.prop("selected"),c],t.$element.triggerNative("change"))}})),this.$menu.on("click","li."+q.DISABLED+" a, ."+q.POPOVERHEADER+", ."+q.POPOVERHEADER+" :not(.close)",(function(n){n.currentTarget==this&&(n.preventDefault(),n.stopPropagation(),t.options.liveSearch&&!e(n.target).hasClass("close")?t.$searchbox.trigger("focus"):t.$button.trigger("focus"))})),this.$menuInner.on("click",".divider, .dropdown-header",(function(e){e.preventDefault(),e.stopPropagation(),t.options.liveSearch?t.$searchbox.trigger("focus"):t.$button.trigger("focus")})),this.$menu.on("click","."+q.POPOVERHEADER+" .close",(function(){t.$button.trigger("click")})),this.$searchbox.on("click",(function(e){e.stopPropagation()})),this.$menu.on("click",".actions-btn",(function(n){t.options.liveSearch?t.$searchbox.trigger("focus"):t.$button.trigger("focus"),n.preventDefault(),n.stopPropagation(),e(this).hasClass("bs-select-all")?t.selectAll():t.deselectAll()})),this.$button.on("focus"+z,(function(e){var n=t.$element[0].getAttribute("tabindex");void 0!==n&&e.originalEvent&&e.originalEvent.isTrusted&&(this.setAttribute("tabindex",n),t.$element[0].setAttribute("tabindex",-1),t.selectpicker.view.tabindex=n)})).on("blur"+z,(function(e){void 0!==t.selectpicker.view.tabindex&&e.originalEvent&&e.originalEvent.isTrusted&&(t.$element[0].setAttribute("tabindex",t.selectpicker.view.tabindex),this.setAttribute("tabindex",-1),t.selectpicker.view.tabindex=void 0)})),this.$element.on("change"+z,(function(){t.render(),t.$element.trigger("changed"+z,b),b=null})).on("focus"+z,(function(){t.options.mobile||t.$button[0].focus()}))},liveSearchListener:function(){var e=this;this.$button.on("click.bs.dropdown.data-api",(function(){e.$searchbox.val()&&(e.$searchbox.val(""),e.selectpicker.search.previousValue=void 0)})),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",(function(e){e.stopPropagation()})),this.$searchbox.on("input propertychange",(function(){var t=e.$searchbox[0].value;if(e.selectpicker.search.elements=[],e.selectpicker.search.data=[],t){var n=[],r=t.toUpperCase(),i={},o=[],a=e._searchStyle(),s=e.options.liveSearchNormalize;s&&(r=k(r));for(var l=0;l0&&(i[c.headerIndex-1]=!0,o.push(c.headerIndex-1)),i[c.headerIndex]=!0,o.push(c.headerIndex),i[c.lastIndex+1]=!0),i[l]&&"optgroup-label"!==c.type&&o.push(l)}l=0;for(var u=o.length;l=112&&t.which<=123))if(!(r=c.$newElement.hasClass(q.SHOW))&&(h||t.which>=48&&t.which<=57||t.which>=96&&t.which<=105||t.which>=65&&t.which<=90)&&(c.$button.trigger("click.bs.dropdown.data-api"),c.options.liveSearch))c.$searchbox.trigger("focus");else{if(t.which===D&&r&&(t.preventDefault(),c.$button.trigger("click.bs.dropdown.data-api").trigger("focus")),h){if(!u.length)return;-1!==(n=(i=c.selectpicker.main.elements[c.activeIndex])?Array.prototype.indexOf.call(i.parentElement.children,i):-1)&&c.defocusItem(i),t.which===M?(-1!==n&&n--,n+m<0&&(n+=u.length),c.selectpicker.view.canHighlight[n+m]||-1==(n=c.selectpicker.view.canHighlight.slice(0,n+m).lastIndexOf(!0)-m)&&(n=u.length-1)):(t.which===F||p)&&(++n+m>=c.selectpicker.view.canHighlight.length&&(n=c.selectpicker.view.firstHighlightIndex),c.selectpicker.view.canHighlight[n+m]||(n=n+1+c.selectpicker.view.canHighlight.slice(n+m+1).indexOf(!0))),t.preventDefault();var g=m+n;t.which===M?0===m&&n===u.length-1?(c.$menuInner[0].scrollTop=c.$menuInner[0].scrollHeight,g=c.selectpicker.current.elements.length-1):d=(a=(o=c.selectpicker.current.data[g]).position-o.height)f),i=c.selectpicker.current.elements[g],c.activeIndex=c.selectpicker.current.data[g].index,c.focusItem(i),c.selectpicker.view.currentActive=i,d&&(c.$menuInner[0].scrollTop=a),c.options.liveSearch?c.$searchbox.trigger("focus"):s.trigger("focus")}else if(!s.is("input")&&!W.test(t.which)||t.which===L&&c.selectpicker.keydown.keyHistory){var b,v,_=[];t.preventDefault(),c.selectpicker.keydown.keyHistory+=P[t.which],c.selectpicker.keydown.resetKeyHistory.cancel&&clearTimeout(c.selectpicker.keydown.resetKeyHistory.cancel),c.selectpicker.keydown.resetKeyHistory.cancel=c.selectpicker.keydown.resetKeyHistory.start(),v=c.selectpicker.keydown.keyHistory,/^(.)\1+$/.test(v)&&(v=v.charAt(0));for(var w=0;w0?(a=o.position-o.height,d=!0):(a=o.position-c.sizeInfo.menuInnerHeight,d=o.position>f+c.sizeInfo.menuInnerHeight),i=c.selectpicker.main.elements[b],c.activeIndex=_[T],c.focusItem(i),i&&i.firstChild.focus(),d&&(c.$menuInner[0].scrollTop=a),s.trigger("focus")}}r&&(t.which===L&&!c.selectpicker.keydown.keyHistory||t.which===N||t.which===R&&c.options.selectOnTab)&&(t.which!==L&&t.preventDefault(),c.options.liveSearch&&t.which===L||(c.$menuInner.find(".active a").trigger("click",!0),s.trigger("focus"),c.options.liveSearch||(t.preventDefault(),e(document).data("spaceSelect",!0))))}},mobile:function(){this.options.mobile=!0,this.$element[0].classList.add("mobile-device")},refresh:function(){var t=e.extend({},this.options,this.$element.data());this.options=t,this.checkDisabled(),this.buildData(),this.setStyle(),this.render(),this.buildList(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed"+z)},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.selectpicker.view.titleOption&&this.selectpicker.view.titleOption.parentNode&&this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption),this.$element.off(z).removeData("selectpicker").removeClass("bs-select-hidden selectpicker"),e(window).off(z+"."+this.selectId)}};var Q=e.fn.selectpicker;function Z(){if(e.fn.dropdown)return(e.fn.dropdown.Constructor._dataApiKeydownHandler||e.fn.dropdown.Constructor.prototype.keydown).apply(this,arguments)}e.fn.selectpicker=K,e.fn.selectpicker.Constructor=Y,e.fn.selectpicker.noConflict=function(){return e.fn.selectpicker=Q,this},e(document).off("keydown.bs.dropdown.data-api").on("keydown.bs.dropdown.data-api",':not(.bootstrap-select) > [data-toggle="dropdown"]',Z).on("keydown.bs.dropdown.data-api",":not(.bootstrap-select) > .dropdown-menu",Z).on("keydown"+z,'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',Y.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',(function(e){e.stopPropagation()})),e(window).on("load"+z+".data-api",(function(){e(".selectpicker").each((function(){var t=e(this);K.call(t,t.data())}))}))}(e)}.apply(t,r),void 0===i||(e.exports=i)},9908:function(e,t,n){!function(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=r(t),o=r(n);function a(e,t){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};p.jQueryDetection(),i.default.fn.emulateTransitionEnd=d,i.default.event.special[p.TRANSITION_END]={bindType:u,delegateType:u,handle:function(e){if(i.default(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}};var h="alert",f="bs.alert",m="."+f,g=i.default.fn[h],b="close"+m,v="closed"+m,y="click"+m+".data-api",_=function(){function e(e){this._element=e}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e)),this._triggerCloseEvent(t).isDefaultPrevented()||this._removeElement(t)},t.dispose=function(){i.default.removeData(this._element,f),this._element=null},t._getRootElement=function(e){var t=p.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=i.default(e).closest(".alert")[0]),n},t._triggerCloseEvent=function(e){var t=i.default.Event(b);return i.default(e).trigger(t),t},t._removeElement=function(e){var t=this;if(i.default(e).removeClass("show"),i.default(e).hasClass("fade")){var n=p.getTransitionDurationFromElement(e);i.default(e).one(p.TRANSITION_END,(function(n){return t._destroyElement(e,n)})).emulateTransitionEnd(n)}else this._destroyElement(e)},t._destroyElement=function(e){i.default(e).detach().trigger(v).remove()},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(f);r||(r=new e(this),n.data(f,r)),"close"===t&&r[t](this)}))},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(e,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),e}();i.default(document).on(y,'[data-dismiss="alert"]',_._handleDismiss(new _)),i.default.fn[h]=_._jQueryInterface,i.default.fn[h].Constructor=_,i.default.fn[h].noConflict=function(){return i.default.fn[h]=g,_._jQueryInterface};var w="button",x="bs.button",T="."+x,S=".data-api",k=i.default.fn[w],E="active",C="click"+T+S,A="focus"+T+S+" blur"+T+S,I="load"+T+S,O='[data-toggle^="button"]',j='input:not([type="hidden"])',P=".btn",D=function(){function e(e){this._element=e,this.shouldAvoidTriggerChange=!1}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=i.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var r=this._element.querySelector(j);if(r){if("radio"===r.type)if(r.checked&&this._element.classList.contains(E))e=!1;else{var o=n.querySelector(".active");o&&i.default(o).removeClass(E)}e&&("checkbox"!==r.type&&"radio"!==r.type||(r.checked=!this._element.classList.contains(E)),this.shouldAvoidTriggerChange||i.default(r).trigger("change")),r.focus(),t=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(E)),e&&i.default(this._element).toggleClass(E))},t.dispose=function(){i.default.removeData(this._element,x),this._element=null},e._jQueryInterface=function(t,n){return this.each((function(){var r=i.default(this),o=r.data(x);o||(o=new e(this),r.data(x,o)),o.shouldAvoidTriggerChange=n,"toggle"===t&&o[t]()}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),e}();i.default(document).on(C,O,(function(e){var t=e.target,n=t;if(i.default(t).hasClass("btn")||(t=i.default(t).closest(P)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))e.preventDefault();else{var r=t.querySelector(j);if(r&&(r.hasAttribute("disabled")||r.classList.contains("disabled")))return void e.preventDefault();"INPUT"!==n.tagName&&"LABEL"===t.tagName||D._jQueryInterface.call(i.default(t),"toggle","INPUT"===n.tagName)}})).on(A,O,(function(e){var t=i.default(e.target).closest(P)[0];i.default(t).toggleClass("focus",/^focus(in)?$/.test(e.type))})),i.default(window).on(I,(function(){for(var e=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),t=0,n=e.length;t0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(B)},t.nextWhenVisible=function(){var e=i.default(this._element);!document.hidden&&e.is(":visible")&&"hidden"!==e.css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(z)},t.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(p.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=this._element.querySelector(te);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)i.default(this._element).one(H,(function(){return t.to(e)}));else{if(n===e)return this.pause(),void this.cycle();var r=e>n?B:z;this._slide(r,this._items[e])}},t.dispose=function(){i.default(this._element).off(R),i.default.removeData(this._element,L),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=l({},ne,e),p.typeCheckConfig(N,e,re),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=40)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&i.default(this._element).on($,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&i.default(this._element).on(V,(function(t){return e.pause(t)})).on(W,(function(t){return e.cycle(t)})),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var t=function(t){e._pointerEvent&&ie[t.originalEvent.pointerType.toUpperCase()]?e.touchStartX=t.originalEvent.clientX:e._pointerEvent||(e.touchStartX=t.originalEvent.touches[0].clientX)},n=function(t){e._pointerEvent&&ie[t.originalEvent.pointerType.toUpperCase()]&&(e.touchDeltaX=t.originalEvent.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout((function(t){return e.cycle(t)}),500+e._config.interval))};i.default(this._element.querySelectorAll(".carousel-item img")).on(Z,(function(e){return e.preventDefault()})),this._pointerEvent?(i.default(this._element).on(K,(function(e){return t(e)})),i.default(this._element).on(Q,(function(e){return n(e)})),this._element.classList.add("pointer-event")):(i.default(this._element).on(G,(function(e){return t(e)})),i.default(this._element).on(X,(function(t){return function(t){e.touchDeltaX=t.originalEvent.touches&&t.originalEvent.touches.length>1?0:t.originalEvent.touches[0].clientX-e.touchStartX}(t)})),i.default(this._element).on(Y,(function(e){return n(e)})))}},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===B,r=e===z,i=this._getItemIndex(t),o=this._items.length-1;if((r&&0===i||n&&i===o)&&!this._config.wrap)return t;var a=(i+(e===z?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),r=this._getItemIndex(this._element.querySelector(te)),o=i.default.Event(q,{relatedTarget:e,direction:t,from:r,to:n});return i.default(this._element).trigger(o),o},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));i.default(t).removeClass(U);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&i.default(n).addClass(U)}},t._updateInterval=function(){var e=this._activeElement||this._element.querySelector(te);if(e){var t=parseInt(e.getAttribute("data-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval}},t._slide=function(e,t){var n,r,o,a=this,s=this._element.querySelector(te),l=this._getItemIndex(s),c=t||s&&this._getItemByDirection(e,s),u=this._getItemIndex(c),d=Boolean(this._interval);if(e===B?(n="carousel-item-left",r="carousel-item-next",o="left"):(n="carousel-item-right",r="carousel-item-prev",o="right"),c&&i.default(c).hasClass(U))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).isDefaultPrevented()&&s&&c){this._isSliding=!0,d&&this.pause(),this._setActiveIndicatorElement(c),this._activeElement=c;var h=i.default.Event(H,{relatedTarget:c,direction:o,from:l,to:u});if(i.default(this._element).hasClass("slide")){i.default(c).addClass(r),p.reflow(c),i.default(s).addClass(n),i.default(c).addClass(n);var f=p.getTransitionDurationFromElement(s);i.default(s).one(p.TRANSITION_END,(function(){i.default(c).removeClass(n+" "+r).addClass(U),i.default(s).removeClass(U+" "+r+" "+n),a._isSliding=!1,setTimeout((function(){return i.default(a._element).trigger(h)}),0)})).emulateTransitionEnd(f)}else i.default(s).removeClass(U),i.default(c).addClass(U),this._isSliding=!1,i.default(this._element).trigger(h);d&&this.cycle()}},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this).data(L),r=l({},ne,i.default(this).data());"object"==typeof t&&(r=l({},r,t));var o="string"==typeof t?t:r.slide;if(n||(n=new e(this,r),i.default(this).data(L,n)),"number"==typeof t)n.to(t);else if("string"==typeof o){if(void 0===n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else r.interval&&r.ride&&(n.pause(),n.cycle())}))},e._dataApiClickHandler=function(t){var n=p.getSelectorFromElement(this);if(n){var r=i.default(n)[0];if(r&&i.default(r).hasClass("carousel")){var o=l({},i.default(r).data(),i.default(this).data()),a=this.getAttribute("data-slide-to");a&&(o.interval=!1),e._jQueryInterface.call(i.default(r),o),a&&i.default(r).data(L).to(a),t.preventDefault()}}},s(e,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return ne}}]),e}();i.default(document).on(ee,"[data-slide], [data-slide-to]",oe._dataApiClickHandler),i.default(window).on(J,(function(){for(var e=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),t=0,n=e.length;t0&&(this._selector=a,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=e.prototype;return t.toggle=function(){i.default(this._element).hasClass(ue)?this.hide():this.show()},t.show=function(){var t,n,r=this;if(!(this._isTransitioning||i.default(this._element).hasClass(ue)||(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(e){return"string"==typeof r._config.parent?e.getAttribute("data-parent")===r._config.parent:e.classList.contains(de)}))).length&&(t=null),t&&(n=i.default(t).not(this._selector).data(se))&&n._isTransitioning))){var o=i.default.Event(me);if(i.default(this._element).trigger(o),!o.isDefaultPrevented()){t&&(e._jQueryInterface.call(i.default(t).not(this._selector),"hide"),n||i.default(t).data(se,null));var a=this._getDimension();i.default(this._element).removeClass(de).addClass(pe),this._element.style[a]=0,this._triggerArray.length&&i.default(this._triggerArray).removeClass(he).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),l=p.getTransitionDurationFromElement(this._element);i.default(this._element).one(p.TRANSITION_END,(function(){i.default(r._element).removeClass(pe).addClass(de+" "+ue),r._element.style[a]="",r.setTransitioning(!1),i.default(r._element).trigger(ge)})).emulateTransitionEnd(l),this._element.style[a]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&i.default(this._element).hasClass(ue)){var t=i.default.Event(be);if(i.default(this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",p.reflow(this._element),i.default(this._element).addClass(pe).removeClass(de+" "+ue);var r=this._triggerArray.length;if(r>0)for(var o=0;o0},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),l({},e,this._config.popperConfig)},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this).data(ke);if(n||(n=new e(this,"object"==typeof t?t:null),i.default(this).data(ke,n)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},e._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=[].slice.call(document.querySelectorAll(ze)),r=0,o=n.length;r0&&a--,40===t.which&&adocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(Je);var r=p.getTransitionDurationFromElement(this._dialog);i.default(this._element).off(p.TRANSITION_END),i.default(this._element).one(p.TRANSITION_END,(function(){e._element.classList.remove(Je),n||i.default(e._element).one(p.TRANSITION_END,(function(){e._element.style.overflowY=""})).emulateTransitionEnd(e._element,r)})).emulateTransitionEnd(r),this._element.focus()}},t._showElement=function(e){var t=this,n=i.default(this._element).hasClass(Qe),r=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i.default(this._dialog).hasClass("modal-dialog-scrollable")&&r?r.scrollTop=0:this._element.scrollTop=0,n&&p.reflow(this._element),i.default(this._element).addClass(Ze),this._config.focus&&this._enforceFocus();var o=i.default.Event(it,{relatedTarget:e}),a=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,i.default(t._element).trigger(o)};if(n){var s=p.getTransitionDurationFromElement(this._dialog);i.default(this._dialog).one(p.TRANSITION_END,a).emulateTransitionEnd(s)}else a()},t._enforceFocus=function(){var e=this;i.default(document).off(ot).on(ot,(function(t){document!==t.target&&e._element!==t.target&&0===i.default(e._element).has(t.target).length&&e._element.focus()}))},t._setEscapeEvent=function(){var e=this;this._isShown?i.default(this._element).on(lt,(function(t){e._config.keyboard&&27===t.which?(t.preventDefault(),e.hide()):e._config.keyboard||27!==t.which||e._triggerBackdropTransition()})):this._isShown||i.default(this._element).off(lt)},t._setResizeEvent=function(){var e=this;this._isShown?i.default(window).on(at,(function(t){return e.handleUpdate(t)})):i.default(window).off(at)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){i.default(document.body).removeClass(Ke),e._resetAdjustments(),e._resetScrollbar(),i.default(e._element).trigger(nt)}))},t._removeBackdrop=function(){this._backdrop&&(i.default(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(e){var t=this,n=i.default(this._element).hasClass(Qe)?Qe:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),i.default(this._backdrop).appendTo(document.body),i.default(this._element).on(st,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._triggerBackdropTransition():t.hide())})),n&&p.reflow(this._backdrop),i.default(this._backdrop).addClass(Ze),!e)return;if(!n)return void e();var r=p.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(p.TRANSITION_END,e).emulateTransitionEnd(r)}else if(!this._isShown&&this._backdrop){i.default(this._backdrop).removeClass(Ze);var o=function(){t._removeBackdrop(),e&&e()};if(i.default(this._element).hasClass(Qe)){var a=p.getTransitionDurationFromElement(this._backdrop);i.default(this._backdrop).one(p.TRANSITION_END,o).emulateTransitionEnd(a)}else o()}else e&&e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],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:[]},popperConfig:null},Rt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Mt={HIDE:"hide"+Tt,HIDDEN:"hidden"+Tt,SHOW:"show"+Tt,SHOWN:"shown"+Tt,INSERTED:"inserted"+Tt,CLICK:"click"+Tt,FOCUSIN:"focusin"+Tt,FOCUSOUT:"focusout"+Tt,MOUSEENTER:"mouseenter"+Tt,MOUSELEAVE:"mouseleave"+Tt},Ft=function(){function e(e,t){if(void 0===o.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=i.default(e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),i.default(e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i.default(this.getTipElement()).hasClass(It))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),i.default.removeData(this.element,this.constructor.DATA_KEY),i.default(this.element).off(this.constructor.EVENT_KEY),i.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===i.default(this.element).css("display"))throw new Error("Please use show on visible elements");var t=i.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i.default(this.element).trigger(t);var n=p.findShadowRoot(this.element),r=i.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!r)return;var a=this.getTipElement(),s=p.getUID(this.constructor.NAME);a.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.default(a).addClass(At);var l="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,c=this._getAttachment(l);this.addAttachmentClass(c);var u=this._getContainer();i.default(a).data(this.constructor.DATA_KEY,this),i.default.contains(this.element.ownerDocument.documentElement,this.tip)||i.default(a).appendTo(u),i.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new o.default(this.element,a,this._getPopperConfig(c)),i.default(a).addClass(It),i.default(a).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i.default(document.body).children().on("mouseover",null,i.default.noop);var d=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,i.default(e.element).trigger(e.constructor.Event.SHOWN),t===jt&&e._leave(null,e)};if(i.default(this.tip).hasClass(At)){var h=p.getTransitionDurationFromElement(this.tip);i.default(this.tip).one(p.TRANSITION_END,d).emulateTransitionEnd(h)}else d()}},t.hide=function(e){var t=this,n=this.getTipElement(),r=i.default.Event(this.constructor.Event.HIDE),o=function(){t._hoverState!==Ot&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),i.default(t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(i.default(this.element).trigger(r),!r.isDefaultPrevented()){if(i.default(n).removeClass(It),"ontouchstart"in document.documentElement&&i.default(document.body).children().off("mouseover",null,i.default.noop),this._activeTrigger.click=!1,this._activeTrigger[Dt]=!1,this._activeTrigger[Pt]=!1,i.default(this.tip).hasClass(At)){var a=p.getTransitionDurationFromElement(n);i.default(n).one(p.TRANSITION_END,o).emulateTransitionEnd(a)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(e){i.default(this.getTipElement()).addClass(kt+"-"+e)},t.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(i.default(e.querySelectorAll(".tooltip-inner")),this.getTitle()),i.default(e).removeClass(At+" "+It)},t.setElementContent=function(e,t){"object"!=typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=_t(t,this.config.whiteList,this.config.sanitizeFn)),e.html(t)):e.text(t):this.config.html?i.default(t).parent().is(e)||e.empty().append(t):e.text(i.default(t).text())},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._getPopperConfig=function(e){var t=this;return l({},{placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}},this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:p.isElement(this.config.container)?i.default(this.config.container):i.default(document).find(this.config.container)},t._getAttachment=function(e){return Nt[e.toUpperCase()]},t._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach((function(t){if("click"===t)i.default(e.element).on(e.constructor.Event.CLICK,e.config.selector,(function(t){return e.toggle(t)}));else if("manual"!==t){var n=t===Pt?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,r=t===Pt?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;i.default(e.element).on(n,e.config.selector,(function(t){return e._enter(t)})).on(r,e.config.selector,(function(t){return e._leave(t)}))}})),this._hideModalHandler=function(){e.element&&e.hide()},i.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||i.default(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i.default(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?Dt:Pt]=!0),i.default(t.getTipElement()).hasClass(It)||t._hoverState===Ot?t._hoverState=Ot:(clearTimeout(t._timeout),t._hoverState=Ot,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===Ot&&t.show()}),t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||i.default(e.currentTarget).data(n))||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i.default(e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?Dt:Pt]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=jt,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===jt&&t.hide()}),t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=i.default(this.element).data();return Object.keys(t).forEach((function(e){-1!==Ct.indexOf(e)&&delete t[e]})),"number"==typeof(e=l({},this.constructor.Default,t,"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),p.typeCheckConfig(wt,e,this.constructor.DefaultType),e.sanitize&&(e.template=_t(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=i.default(this.getTipElement()),t=e.attr("class").match(Et);null!==t&&t.length&&e.removeClass(t.join(""))},t._handlePopperPlacementChange=function(e){this.tip=e.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(i.default(e).removeClass(At),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(xt),o="object"==typeof t&&t;if((r||!/dispose|hide/.test(t))&&(r||(r=new e(this,o),n.data(xt,r)),"string"==typeof t)){if(void 0===r[t])throw new TypeError('No method named "'+t+'"');r[t]()}}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Lt}},{key:"NAME",get:function(){return wt}},{key:"DATA_KEY",get:function(){return xt}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return Tt}},{key:"DefaultType",get:function(){return Rt}}]),e}();i.default.fn[wt]=Ft._jQueryInterface,i.default.fn[wt].Constructor=Ft,i.default.fn[wt].noConflict=function(){return i.default.fn[wt]=St,Ft._jQueryInterface};var Ut="popover",Bt="bs.popover",zt="."+Bt,qt=i.default.fn[Ut],Ht="bs-popover",$t=new RegExp("(^|\\s)"+Ht+"\\S+","g"),Vt=l({},Ft.Default,{placement:"right",trigger:"click",content:"",template:''}),Wt=l({},Ft.DefaultType,{content:"(string|element|function)"}),Gt={HIDE:"hide"+zt,HIDDEN:"hidden"+zt,SHOW:"show"+zt,SHOWN:"shown"+zt,INSERTED:"inserted"+zt,CLICK:"click"+zt,FOCUSIN:"focusin"+zt,FOCUSOUT:"focusout"+zt,MOUSEENTER:"mouseenter"+zt,MOUSELEAVE:"mouseleave"+zt},Xt=function(e){function t(){return e.apply(this,arguments)||this}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,c(n,r);var o=t.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(e){i.default(this.getTipElement()).addClass(Ht+"-"+e)},o.getTipElement=function(){return this.tip=this.tip||i.default(this.config.template)[0],this.tip},o.setContent=function(){var e=i.default(this.getTipElement());this.setElementContent(e.find(".popover-header"),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(".popover-body"),t),e.removeClass("fade show")},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var e=i.default(this.getTipElement()),t=e.attr("class").match($t);null!==t&&t.length>0&&e.removeClass(t.join(""))},t._jQueryInterface=function(e){return this.each((function(){var n=i.default(this).data(Bt),r="object"==typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,r),i.default(this).data(Bt,n)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},s(t,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"Default",get:function(){return Vt}},{key:"NAME",get:function(){return Ut}},{key:"DATA_KEY",get:function(){return Bt}},{key:"Event",get:function(){return Gt}},{key:"EVENT_KEY",get:function(){return zt}},{key:"DefaultType",get:function(){return Wt}}]),t}(Ft);i.default.fn[Ut]=Xt._jQueryInterface,i.default.fn[Ut].Constructor=Xt,i.default.fn[Ut].noConflict=function(){return i.default.fn[Ut]=qt,Xt._jQueryInterface};var Yt="scrollspy",Kt="bs.scrollspy",Qt="."+Kt,Zt=i.default.fn[Yt],Jt="active",en="activate"+Qt,tn="scroll"+Qt,nn="load"+Qt+".data-api",rn="position",on=".nav, .list-group",an=".nav-link",sn=".list-group-item",ln={offset:10,method:"auto",target:""},cn={offset:"number",method:"string",target:"(string|element)"},un=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+an+","+this._config.target+" "+sn+","+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i.default(this._scrollElement).on(tn,(function(e){return n._process(e)})),this.refresh(),this._process()}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?"offset":rn,n="auto"===this._config.method?t:this._config.method,r=n===rn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(e){var t,o=p.getSelectorFromElement(e);if(o&&(t=document.querySelector(o)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[i.default(t)[n]().top+r,o]}return null})).filter(Boolean).sort((function(e,t){return e[0]-t[0]})).forEach((function(t){e._offsets.push(t[0]),e._targets.push(t[1])}))},t.dispose=function(){i.default.removeData(this._element,Kt),i.default(this._scrollElement).off(Qt),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if("string"!=typeof(e=l({},ln,"object"==typeof e&&e?e:{})).target&&p.isElement(e.target)){var t=i.default(e.target).attr("id");t||(t=p.getUID(Yt),i.default(e.target).attr("id",t)),e.target="#"+t}return p.typeCheckConfig(Yt,e,cn),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var r=this._targets[this._targets.length-1];this._activeTarget!==r&&this._activate(r)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;)this._activeTarget!==this._targets[i]&&e>=this._offsets[i]&&(void 0===this._offsets[i+1]||e li > .active",kn=function(){function e(e){this._element=e}var t=e.prototype;return t.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&i.default(this._element).hasClass(mn)||i.default(this._element).hasClass("disabled")||this._element.hasAttribute("disabled"))){var t,n,r=i.default(this._element).closest(".nav, .list-group")[0],o=p.getSelectorFromElement(this._element);if(r){var a="UL"===r.nodeName||"OL"===r.nodeName?Sn:Tn;n=(n=i.default.makeArray(i.default(r).find(a)))[n.length-1]}var s=i.default.Event(vn,{relatedTarget:this._element}),l=i.default.Event(_n,{relatedTarget:n});if(n&&i.default(n).trigger(s),i.default(this._element).trigger(l),!l.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,r);var c=function(){var t=i.default.Event(yn,{relatedTarget:e._element}),r=i.default.Event(wn,{relatedTarget:n});i.default(n).trigger(t),i.default(e._element).trigger(r)};t?this._activate(t,t.parentNode,c):c()}}},t.dispose=function(){i.default.removeData(this._element,pn),this._element=null},t._activate=function(e,t,n){var r=this,o=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?i.default(t).children(Tn):i.default(t).find(Sn))[0],a=n&&o&&i.default(o).hasClass(gn),s=function(){return r._transitionComplete(e,o,n)};if(o&&a){var l=p.getTransitionDurationFromElement(o);i.default(o).removeClass(bn).one(p.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},t._transitionComplete=function(e,t,n){if(t){i.default(t).removeClass(mn);var r=i.default(t.parentNode).find("> .dropdown-menu .active")[0];r&&i.default(r).removeClass(mn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}i.default(e).addClass(mn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),p.reflow(e),e.classList.contains(gn)&&e.classList.add(bn);var o=e.parentNode;if(o&&"LI"===o.nodeName&&(o=o.parentNode),o&&i.default(o).hasClass("dropdown-menu")){var a=i.default(e).closest(".dropdown")[0];if(a){var s=[].slice.call(a.querySelectorAll(".dropdown-toggle"));i.default(s).addClass(mn)}e.setAttribute("aria-expanded",!0)}n&&n()},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(pn);if(r||(r=new e(this),n.data(pn,r)),"string"==typeof t){if(void 0===r[t])throw new TypeError('No method named "'+t+'"');r[t]()}}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.2"}}]),e}();i.default(document).on(xn,'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(e){e.preventDefault(),kn._jQueryInterface.call(i.default(this),"show")})),i.default.fn[dn]=kn._jQueryInterface,i.default.fn[dn].Constructor=kn,i.default.fn[dn].noConflict=function(){return i.default.fn[dn]=fn,kn._jQueryInterface};var En="toast",Cn="bs.toast",An="."+Cn,In=i.default.fn[En],On="hide",jn="show",Pn="showing",Dn="click.dismiss"+An,Nn="hide"+An,Ln="hidden"+An,Rn="show"+An,Mn="shown"+An,Fn={animation:!0,autohide:!0,delay:500},Un={animation:"boolean",autohide:"boolean",delay:"number"},Bn=function(){function e(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners()}var t=e.prototype;return t.show=function(){var e=this,t=i.default.Event(Rn);if(i.default(this._element).trigger(t),!t.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){e._element.classList.remove(Pn),e._element.classList.add(jn),i.default(e._element).trigger(Mn),e._config.autohide&&(e._timeout=setTimeout((function(){e.hide()}),e._config.delay))};if(this._element.classList.remove(On),p.reflow(this._element),this._element.classList.add(Pn),this._config.animation){var r=p.getTransitionDurationFromElement(this._element);i.default(this._element).one(p.TRANSITION_END,n).emulateTransitionEnd(r)}else n()}},t.hide=function(){if(this._element.classList.contains(jn)){var e=i.default.Event(Nn);i.default(this._element).trigger(e),e.isDefaultPrevented()||this._close()}},t.dispose=function(){this._clearTimeout(),this._element.classList.contains(jn)&&this._element.classList.remove(jn),i.default(this._element).off(Dn),i.default.removeData(this._element,Cn),this._element=null,this._config=null},t._getConfig=function(e){return e=l({},Fn,i.default(this._element).data(),"object"==typeof e&&e?e:{}),p.typeCheckConfig(En,e,this.constructor.DefaultType),e},t._setListeners=function(){var e=this;i.default(this._element).on(Dn,'[data-dismiss="toast"]',(function(){return e.hide()}))},t._close=function(){var e=this,t=function(){e._element.classList.add(On),i.default(e._element).trigger(Ln)};if(this._element.classList.remove(jn),this._config.animation){var n=p.getTransitionDurationFromElement(this._element);i.default(this._element).one(p.TRANSITION_END,t).emulateTransitionEnd(n)}else t()},t._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},e._jQueryInterface=function(t){return this.each((function(){var n=i.default(this),r=n.data(Cn);if(r||(r=new e(this,"object"==typeof t&&t),n.data(Cn,r)),"string"==typeof t){if(void 0===r[t])throw new TypeError('No method named "'+t+'"');r[t](this)}}))},s(e,null,[{key:"VERSION",get:function(){return"4.6.2"}},{key:"DefaultType",get:function(){return Un}},{key:"Default",get:function(){return Fn}}]),e}();i.default.fn[En]=Bn._jQueryInterface,i.default.fn[En].Constructor=Bn,i.default.fn[En].noConflict=function(){return i.default.fn[En]=In,Bn._jQueryInterface},e.Alert=_,e.Button=D,e.Carousel=oe,e.Collapse=Te,e.Dropdown=Ve,e.Modal=gt,e.Popover=Xt,e.Scrollspy=un,e.Tab=kn,e.Toast=Bn,e.Tooltip=Ft,e.Util=p,Object.defineProperty(e,"__esModule",{value:!0})}(t,n(8291),n(3619))},4153:(e,t,n)=>{var r,i=void 0!==n.g?n.g:"undefined"!=typeof window?window:{},o=n(3558);"undefined"!=typeof document?r=document:(r=i["__GLOBAL_DOCUMENT_CACHE@4"])||(r=i["__GLOBAL_DOCUMENT_CACHE@4"]=o),e.exports=r},5048:(e,t,n)=>{var r;r="undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},e.exports=r},9748:e=>{e.exports=function(e){if(!e)return!1;var n=t.call(e);return"[object Function]"===n||"function"==typeof e&&"[object RegExp]"!==n||"undefined"!=typeof window&&(e===window.setTimeout||e===window.alert||e===window.confirm||e===window.prompt)};var t=Object.prototype.toString},8291:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(r,i){"use strict";var o=[],a=Object.getPrototypeOf,s=o.slice,l=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},c=o.push,u=o.indexOf,d={},p=d.toString,h=d.hasOwnProperty,f=h.toString,m=f.call(Object),g={},b=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},v=function(e){return null!=e&&e===e.window},y=r.document,_={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,o=(n=n||y).createElement("script");if(o.text=e,t)for(r in _)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[p.call(e)]||"object":typeof e}var T="3.7.1",S=/HTML$/i,k=function(e,t){return new k.fn.init(e,t)};function E(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!b(e)&&!v(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function C(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}k.fn=k.prototype={jquery:T,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(e){return this.pushStack(k.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(k.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(k.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+j+")"+j+"*"),z=new RegExp(j+"|>"),q=new RegExp(M),H=new RegExp("^"+D+"$"),$={ID:new RegExp("^#("+D+")"),CLASS:new RegExp("^\\.("+D+")"),TAG:new RegExp("^("+D+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+j+"*(even|odd|(([+-]|)(\\d*)n|)"+j+"*(?:([+-]|)"+j+"*(\\d+)|))"+j+"*\\)|)","i"),bool:new RegExp("^(?:"+E+")$","i"),needsContext:new RegExp("^"+j+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+j+"*((?:-\\d)?\\d*)"+j+"*\\)|)(?=[^-]|$)","i")},V=/^(?:input|select|textarea|button)$/i,W=/^h\d$/i,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,X=/[+~]/,Y=new RegExp("\\\\[\\da-fA-F]{1,6}"+j+"?|\\\\([^\\r\\n\\f])","g"),K=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},Q=function(){le()},Z=pe((function(e){return!0===e.disabled&&C(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{m.apply(o=s.call(L.childNodes),L.childNodes),o[L.childNodes.length].nodeType}catch(e){m={apply:function(e,t){R.apply(e,s.call(t))},call:function(e){R.apply(e,s.call(arguments,1))}}}function J(e,t,n,r){var i,o,a,s,c,u,h,f=t&&t.ownerDocument,v=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==v&&9!==v&&11!==v)return n;if(!r&&(le(t),t=t||l,d)){if(11!==v&&(c=G.exec(e)))if(i=c[1]){if(9===v){if(!(a=t.getElementById(i)))return n;if(a.id===i)return m.call(n,a),n}else if(f&&(a=f.getElementById(i))&&J.contains(t,a)&&a.id===i)return m.call(n,a),n}else{if(c[2])return m.apply(n,t.getElementsByTagName(e)),n;if((i=c[3])&&t.getElementsByClassName)return m.apply(n,t.getElementsByClassName(i)),n}if(!(T[e+" "]||p&&p.test(e))){if(h=e,f=t,1===v&&(z.test(e)||B.test(e))){for((f=X.test(e)&&se(t.parentNode)||t)==t&&g.scope||((s=t.getAttribute("id"))?s=k.escapeSelector(s):t.setAttribute("id",s=b)),o=(u=ue(e)).length;o--;)u[o]=(s?"#"+s:":scope")+" "+de(u[o]);h=u.join(",")}try{return m.apply(n,f.querySelectorAll(h)),n}catch(t){T(e,!0)}finally{s===b&&t.removeAttribute("id")}}}return ve(e.replace(P,"$1"),t,n,r)}function ee(){var e=[];return function n(r,i){return e.push(r+" ")>t.cacheLength&&delete n[e.shift()],n[r+" "]=i}}function te(e){return e[b]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function re(e){return function(t){return C(t,"input")&&t.type===e}}function ie(e){return function(t){return(C(t,"input")||C(t,"button"))&&t.type===e}}function oe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Z(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ae(e){return te((function(t){return t=+t,te((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function se(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,r=e?e.ownerDocument||e:L;return r!=l&&9===r.nodeType&&r.documentElement?(c=(l=r).documentElement,d=!k.isXMLDoc(l),f=c.matches||c.webkitMatchesSelector||c.msMatchesSelector,c.msMatchesSelector&&L!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",Q),g.getById=ne((function(e){return c.appendChild(e).id=k.expando,!l.getElementsByName||!l.getElementsByName(k.expando).length})),g.disconnectedMatch=ne((function(e){return f.call(e,"*")})),g.scope=ne((function(){return l.querySelectorAll(":scope")})),g.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),g.getById?(t.filter.ID=function(e){var t=e.replace(Y,K);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&d){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(Y,K);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&d){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&d)return t.getElementsByClassName(e)},p=[],ne((function(e){var t;c.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||p.push("\\["+j+"*(?:value|"+E+")"),e.querySelectorAll("[id~="+b+"-]").length||p.push("~="),e.querySelectorAll("a#"+b+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),c.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+j+"*name"+j+"*="+j+"*(?:''|\"\")")})),g.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),S=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==L&&J.contains(L,e)?-1:t===l||t.ownerDocument==L&&J.contains(L,t)?1:i?u.call(i,e)-u.call(i,t):0:4&n?-1:1)},l):l}for(e in J.matches=function(e,t){return J(e,null,null,t)},J.matchesSelector=function(e,t){if(le(e),d&&!T[t+" "]&&(!p||!p.test(t)))try{var n=f.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){T(t,!0)}return J(t,l,null,[e]).length>0},J.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),k.contains(e,t)},J.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var r=t.attrHandle[n.toLowerCase()],i=r&&h.call(t.attrHandle,n.toLowerCase())?r(e,n,!d):void 0;return void 0!==i?i:e.getAttribute(n)},J.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},k.uniqueSort=function(e){var t,n=[],r=0,o=0;if(a=!g.sortStable,i=!g.sortStable&&s.call(e,0),I.call(e,S),a){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)O.call(e,n[r],1)}return i=null,e},k.fn.uniqueSort=function(){return this.pushStack(k.uniqueSort(s.apply(this)))},t=k.expr={cacheLength:50,createPseudo:te,match:$,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Y,K),e[3]=(e[3]||e[4]||e[5]||"").replace(Y,K),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||J.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&J.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return $.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&q.test(n)&&(t=ue(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Y,K).toLowerCase();return"*"===e?function(){return!0}:function(e){return C(e,t)}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+j+")"+e+"("+j+"|$)"))&&_(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=J.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,p,h,f=o!==a?"nextSibling":"previousSibling",m=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!l&&!s,_=!1;if(m){if(o){for(;f;){for(d=t;d=d[f];)if(s?C(d,g):1===d.nodeType)return!1;h=f="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&y){for(_=(p=(c=(u=m[b]||(m[b]={}))[e]||[])[0]===v&&c[1])&&c[2],d=p&&m.childNodes[p];d=++p&&d&&d[f]||(_=p=0)||h.pop();)if(1===d.nodeType&&++_&&d===t){u[e]=[v,p,_];break}}else if(y&&(_=p=(c=(u=t[b]||(t[b]={}))[e]||[])[0]===v&&c[1]),!1===_)for(;(d=++p&&d&&d[f]||(_=p=0)||h.pop())&&(!(s?C(d,g):1===d.nodeType)||!++_||(y&&((u=d[b]||(d[b]={}))[e]=[v,_]),d!==t)););return(_-=i)===r||_%r==0&&_/r>=0}}},PSEUDO:function(e,n){var r,i=t.pseudos[e]||t.setFilters[e.toLowerCase()]||J.error("unsupported pseudo: "+e);return i[b]?i(n):i.length>1?(r=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var r,o=i(e,n),a=o.length;a--;)e[r=u.call(e,o[a])]=!(t[r]=o[a])})):function(e){return i(e,0,r)}):i}},pseudos:{not:te((function(e){var t=[],n=[],r=be(e.replace(P,"$1"));return r[b]?te((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return J(e,t).length>0}})),contains:te((function(e){return e=e.replace(Y,K),function(t){return(t.textContent||k.text(t)).indexOf(e)>-1}})),lang:te((function(e){return H.test(e||"")||J.error("unsupported lang: "+e),e=e.replace(Y,K).toLowerCase(),function(t){var n;do{if(n=d?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=r.location&&r.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===c},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return C(e,"input")&&!!e.checked||C(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return W.test(e.nodeName)},input:function(e){return V.test(e.nodeName)},button:function(e){return C(e,"input")&&"button"===e.type||C(e,"button")},text:function(e){var t;return C(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ae((function(){return[0]})),last:ae((function(e,t){return[t-1]})),eq:ae((function(e,t,n){return[n<0?n+t:n]})),even:ae((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ae((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function fe(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;s-1&&(o[c]=!(a[c]=p))}}else h=fe(h===a?h.splice(b,h.length):h),i?i(null,a,h,l):m.apply(a,h)}))}function ge(e){for(var r,i,o,a=e.length,s=t.relative[e[0].type],l=s||t.relative[" "],c=s?1:0,d=pe((function(e){return e===r}),l,!0),p=pe((function(e){return u.call(r,e)>-1}),l,!0),h=[function(e,t,i){var o=!s&&(i||t!=n)||((r=t).nodeType?d(e,t,i):p(e,t,i));return r=null,o}];c1&&he(h),c>1&&de(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(P,"$1"),i,c0,o=e.length>0,a=function(a,s,c,u,p){var h,f,g,b=0,y="0",_=a&&[],w=[],x=n,T=a||o&&t.find.TAG("*",p),S=v+=null==x?1:Math.random()||.1,E=T.length;for(p&&(n=s==l||s||p);y!==E&&null!=(h=T[y]);y++){if(o&&h){for(f=0,s||h.ownerDocument==l||(le(h),c=!d);g=e[f++];)if(g(h,s||l,c)){m.call(u,h);break}p&&(v=S)}i&&((h=!g&&h)&&b--,a&&_.push(h))}if(b+=y,i&&y!==b){for(f=0;g=r[f++];)g(_,w,s,c);if(a){if(b>0)for(;y--;)_[y]||w[y]||(w[y]=A.call(u));w=fe(w)}m.apply(u,w),p&&!a&&w.length>0&&b+r.length>1&&k.uniqueSort(u)}return p&&(v=S,n=x),_};return i?te(a):a}(a,o)),s.selector=e}return s}function ve(e,n,r,i){var o,a,s,l,c,u="function"==typeof e&&e,p=!i&&ue(e=u.selector||e);if(r=r||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(s=a[0]).type&&9===n.nodeType&&d&&t.relative[a[1].type]){if(!(n=(t.find.ID(s.matches[0].replace(Y,K),n)||[])[0]))return r;u&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(o=$.needsContext.test(e)?0:a.length;o--&&(s=a[o],!t.relative[l=s.type]);)if((c=t.find[l])&&(i=c(s.matches[0].replace(Y,K),X.test(a[0].type)&&se(n.parentNode)||n))){if(a.splice(o,1),!(e=i.length&&de(a)))return m.apply(r,i),r;break}}return(u||be(e,p))(i,n,!d,r,!n||X.test(e)&&se(n.parentNode)||n),r}ce.prototype=t.filters=t.pseudos,t.setFilters=new ce,g.sortStable=b.split("").sort(S).join("")===b,le(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),k.find=J,k.expr[":"]=k.expr.pseudos,k.unique=k.uniqueSort,J.compile=be,J.select=ve,J.setDocument=le,J.tokenize=ue,J.escape=k.escapeSelector,J.getText=k.text,J.isXML=k.isXMLDoc,J.selectors=k.expr,J.support=k.support,J.uniqueSort=k.uniqueSort}();var M=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},F=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},U=k.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function z(e,t,n){return b(t)?k.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?k.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?k.grep(e,(function(e){return u.call(t,e)>-1!==n})):k.filter(t,e,n)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,(function(e){return 1===e.nodeType})))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter((function(){for(t=0;t1?k.uniqueSort(n):n},filter:function(e){return this.pushStack(z(this,e||[],!1))},not:function(e){return this.pushStack(z(this,e||[],!0))},is:function(e){return!!z(this,"string"==typeof e&&U.test(e)?k(e):e||[],!1).length}});var q,H=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:H.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),B.test(r[1])&&k.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=y.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(y);var $=/^(?:parents|prev(?:Until|All))/,V={children:!0,contents:!0,next:!0,prev:!0};function W(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(k(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return M(e,"parentNode")},parentsUntil:function(e,t,n){return M(e,"parentNode",n)},next:function(e){return W(e,"nextSibling")},prev:function(e){return W(e,"previousSibling")},nextAll:function(e){return M(e,"nextSibling")},prevAll:function(e){return M(e,"previousSibling")},nextUntil:function(e,t,n){return M(e,"nextSibling",n)},prevUntil:function(e,t,n){return M(e,"previousSibling",n)},siblings:function(e){return F((e.parentNode||{}).firstChild,e)},children:function(e){return F(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(C(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},(function(e,t){k.fn[e]=function(n,r){var i=k.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=k.filter(r,i)),this.length>1&&(V[e]||k.uniqueSort(i),$.test(e)&&i.reverse()),this.pushStack(i)}}));var G=/[^\x20\t\r\n\f]+/g;function X(e){return e}function Y(e){throw e}function K(e,t,n,r){var i;try{e&&b(i=e.promise)?i.call(e).done(t).fail(n):e&&b(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return k.each(e.match(G)||[],(function(e,n){t[n]=!0})),t}(e):k.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?k.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},k.extend({Deferred:function(e){var t=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return k.Deferred((function(n){k.each(t,(function(t,r){var i=b(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&b(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,i){var o=0;function a(e,t,n,i){return function(){var s=this,l=arguments,c=function(){var r,c;if(!(e=o&&(n!==Y&&(s=void 0,l=[r]),t.rejectWith(s,l))}};e?u():(k.Deferred.getErrorHook?u.error=k.Deferred.getErrorHook():k.Deferred.getStackHook&&(u.error=k.Deferred.getStackHook()),r.setTimeout(u))}}return k.Deferred((function(r){t[0][3].add(a(0,r,b(i)?i:X,r.notifyWith)),t[1][3].add(a(0,r,b(e)?e:X)),t[2][3].add(a(0,r,b(n)?n:Y))})).promise()},promise:function(e){return null!=e?k.extend(e,i):i}},o={};return k.each(t,(function(e,r){var a=r[2],s=r[5];i[r[1]]=a.add,s&&a.add((function(){n=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+"With"](this===o?void 0:this,arguments),this},o[r[0]+"With"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=k.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(K(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||b(i[n]&&i[n].then)))return o.then();for(;n--;)K(i[n],a(n),o.reject);return o.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){r.console&&r.console.warn&&e&&Q.test(e.name)&&r.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){r.setTimeout((function(){throw e}))};var Z=k.Deferred();function J(){y.removeEventListener("DOMContentLoaded",J),r.removeEventListener("load",J),k.ready()}k.fn.ready=function(e){return Z.then(e).catch((function(e){k.readyException(e)})),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0,!0!==e&&--k.readyWait>0||Z.resolveWith(y,[k]))}}),k.ready.then=Z.then,"complete"===y.readyState||"loading"!==y.readyState&&!y.documentElement.doScroll?r.setTimeout(k.ready):(y.addEventListener("DOMContentLoaded",J),r.addEventListener("load",J));var ee=function(e,t,n,r,i,o,a){var s=0,l=e.length,c=null==n;if("object"===x(n))for(s in i=!0,n)ee(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,b(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(k(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=se.get(e,t),n&&(!r||Array.isArray(n)?r=se.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){k.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return se.get(e,n)||se.access(e,n,{empty:k.Callbacks("once memory").add((function(){se.remove(e,[t+"queue",n])}))})}}),k.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;Te=y.createDocumentFragment().appendChild(y.createElement("div")),(Se=y.createElement("input")).setAttribute("type","radio"),Se.setAttribute("checked","checked"),Se.setAttribute("name","t"),Te.appendChild(Se),g.checkClone=Te.cloneNode(!0).cloneNode(!0).lastChild.checked,Te.innerHTML="",g.noCloneChecked=!!Te.cloneNode(!0).lastChild.defaultValue,Te.innerHTML="",g.option=!!Te.lastChild;var Ae={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ie(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&C(e,t)?k.merge([e],n):n}function Oe(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Pe(e,t,n,r,i){for(var o,a,s,l,c,u,d=t.createDocumentFragment(),p=[],h=0,f=e.length;h-1)i&&i.push(o);else if(c=ge(o),a=Ie(d.appendChild(o),"script"),c&&Oe(a),n)for(u=0;o=a[u++];)Ce.test(o.type||"")&&n.push(o);return d}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function Le(){return!1}function Re(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Re(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Le;else if(!i)return e;return 1===o&&(a=i,i=function(e){return k().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=k.guid++)),e.each((function(){k.event.add(this,t,i,r,n)}))}function Me(e,t,n){n?(se.set(e,t,!1),k.event.add(e,t,{namespace:!1,handler:function(e){var n,r=se.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(k.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),se.set(this,t,r),this[t](),n=se.get(this,t),se.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(se.set(this,t,k.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===se.get(e,t)&&k.event.add(e,t,Ne)}k.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,h,f,m,g=se.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(me,i),n.guid||(n.guid=k.guid++),(l=g.events)||(l=g.events=Object.create(null)),(a=g.handle)||(a=g.handle=function(t){return void 0!==k&&k.event.triggered!==t.type?k.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(G)||[""]).length;c--;)h=m=(s=De.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),h&&(d=k.event.special[h]||{},h=(i?d.delegateType:d.bindType)||h,d=k.event.special[h]||{},u=k.extend({type:h,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:f.join(".")},o),(p=l[h])||((p=l[h]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,f,a)||e.addEventListener&&e.addEventListener(h,a)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,u):p.push(u),k.event.global[h]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,u,d,p,h,f,m,g=se.hasData(e)&&se.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(G)||[""]).length;c--;)if(h=m=(s=De.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),h){for(d=k.event.special[h]||{},p=l[h=(r?d.delegateType:d.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)u=p[o],!i&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(p.splice(o,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));a&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,f,g.handle)||k.removeEvent(e,h,g.handle),delete l[h])}else for(h in l)k.event.remove(e,h+t[c],n,r,!0);k.isEmptyObject(l)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=k.event.fix(e),c=(se.get(this,"events")||Object.create(null))[l.type]||[],u=k.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],a={},n=0;n-1:k.find(i,this,null,[c]).length),a[i]&&o.push(r);o.length&&s.push({elem:c,handlers:o})}return c=this,l\s*$/g;function ze(e,t){return C(e,"table")&&C(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function qe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function $e(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(se.hasData(e)&&(s=se.get(e).events))for(i in se.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof f&&!g.checkClone&&Ue.test(f))return e.each((function(i){var o=e.eq(i);m&&(t[0]=f.call(this,i,o.html())),We(o,t,n,r)}));if(p&&(o=(i=Pe(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=k.map(Ie(i,"script"),qe)).length;d0&&Oe(a,!l&&Ie(e,"script")),s},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[se.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[se.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),k.fn.extend({detach:function(e){return Ge(this,e,!0)},remove:function(e){return Ge(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?k.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return We(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||ze(this,e).appendChild(e)}))},prepend:function(){return We(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=ze(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return We(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return We(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(Ie(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return k.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Fe.test(e)&&!Ae[(Ee.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))||0),l+c}function ut(e,t,n){var r=Ke(e),i=(!g.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=Je(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Xe.test(a)){if(!n)return a;a="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&C(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+ct(e,t,n||(i?"border":"content"),o,r,a)+"px"}function dt(e,t,n,r,i){return new dt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Je(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ie(t),l=Ye.test(t),c=e.style;if(l||(t=it(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:c[t];"string"==(o=typeof n)&&(i=he.exec(n))&&i[1]&&(n=ye(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||l||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=ie(t);return Ye.test(t)||(t=it(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Je(e,t,r)),"normal"===i&&t in st&&(i=st[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],(function(e,t){k.cssHooks[t]={get:function(e,n,r){if(n)return!ot.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ut(e,t,r):Qe(e,at,(function(){return ut(e,t,r)}))},set:function(e,n,r){var i,o=Ke(e),a=!g.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===k.css(e,"boxSizing",!1,o),l=r?ct(e,t,r,s,o):0;return s&&a&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-ct(e,t,"border",!1,o)-.5)),l&&(i=he.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=k.css(e,t)),lt(0,n,l)}}})),k.cssHooks.marginLeft=et(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Je(e,"marginLeft"))||e.getBoundingClientRect().left-Qe(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),k.each({margin:"",padding:"",border:"Width"},(function(e,t){k.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+fe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(k.cssHooks[e+t].set=lt)})),k.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ke(e),i=t.length;a1)}}),k.Tween=dt,dt.prototype={constructor:dt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=dt.propHooks[this.prop];return e&&e.get?e.get(this):dt.propHooks._default.get(this)},run:function(e){var t,n=dt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):dt.propHooks._default.set(this),this}},dt.prototype.init.prototype=dt.prototype,dt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[it(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}},dt.propHooks.scrollTop=dt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=dt.prototype.init,k.fx.step={};var pt,ht,ft=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;function gt(){ht&&(!1===y.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(gt):r.setTimeout(gt,k.fx.interval),k.fx.tick())}function bt(){return r.setTimeout((function(){pt=void 0})),pt=Date.now()}function vt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=fe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function yt(e,t,n){for(var r,i=(_t.tweeners[t]||[]).concat(_t.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){k.removeAttr(this,e)}))}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&C(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(G);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=xt[t]||k.find.attr;xt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=xt[a],xt[a]=i,i=null!=n(e,t,r)?a:null,xt[a]=o),i}}));var Tt=/^(?:input|select|textarea|button)$/i,St=/^(?:a|area)$/i;function kt(e){return(e.match(G)||[]).join(" ")}function Et(e){return e.getAttribute&&e.getAttribute("class")||""}function Ct(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(G)||[]}k.fn.extend({prop:function(e,t){return ee(this,k.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[k.propFix[e]||e]}))}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):Tt.test(e.nodeName)||St.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){k.propFix[this.toLowerCase()]=this})),k.fn.extend({addClass:function(e){var t,n,r,i,o,a;return b(e)?this.each((function(t){k(this).addClass(e.call(this,t,Et(this)))})):(t=Ct(e)).length?this.each((function(){if(r=Et(this),n=1===this.nodeType&&" "+kt(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");a=kt(n),r!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o,a=typeof e,s="string"===a||Array.isArray(e);return b(e)?this.each((function(n){k(this).toggleClass(e.call(this,n,Et(this),t),t)})):"boolean"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=Ct(e),this.each((function(){if(s)for(o=k(this),i=0;i-1)return!0;return!1}});var At=/\r/g;k.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=b(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,k(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=k.map(i,(function(e){return null==e?"":e+""}))),(t=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=k.valHooks[i.type]||k.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(At,""):null==n?"":n:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:kt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],(function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=k.inArray(k(e).val(),t)>-1}},g.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var It=r.location,Ot={guid:Date.now()},jt=/\?/;k.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||k.error("Invalid XML: "+(n?k.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Pt=/^(?:focusinfocus|focusoutblur)$/,Dt=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,i){var o,a,s,l,c,u,d,p,f=[n||y],m=h.call(e,"type")?e.type:e,g=h.call(e,"namespace")?e.namespace.split("."):[];if(a=p=s=n=n||y,3!==n.nodeType&&8!==n.nodeType&&!Pt.test(m+k.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),c=m.indexOf(":")<0&&"on"+m,(e=e[k.expando]?e:new k.Event(m,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),d=k.event.special[m]||{},i||!d.trigger||!1!==d.trigger.apply(n,t))){if(!i&&!d.noBubble&&!v(n)){for(l=d.delegateType||m,Pt.test(l+m)||(a=a.parentNode);a;a=a.parentNode)f.push(a),s=a;s===(n.ownerDocument||y)&&f.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=f[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?l:d.bindType||m,(u=(se.get(a,"events")||Object.create(null))[e.type]&&se.get(a,"handle"))&&u.apply(a,t),(u=c&&a[c])&&u.apply&&oe(a)&&(e.result=u.apply(a,t),!1===e.result&&e.preventDefault());return e.type=m,i||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(f.pop(),t)||!oe(n)||c&&b(n[m])&&!v(n)&&((s=n[c])&&(n[c]=null),k.event.triggered=m,e.isPropagationStopped()&&p.addEventListener(m,Dt),n[m](),e.isPropagationStopped()&&p.removeEventListener(m,Dt),k.event.triggered=void 0,s&&(n[c]=s)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each((function(){k.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}});var Nt=/\[\]$/,Lt=/\r?\n/g,Rt=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;function Ft(e,t,n,r){var i;if(Array.isArray(t))k.each(t,(function(t,i){n||Nt.test(e)?r(e,i):Ft(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==x(t))r(e,t);else for(i in t)Ft(e+"["+i+"]",t[i],n,r)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=b(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,(function(){i(this.name,this.value)}));else for(n in e)Ft(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&Mt.test(this.nodeName)&&!Rt.test(e)&&(this.checked||!ke.test(e))})).map((function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,(function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}})):{name:t.name,value:n.replace(Lt,"\r\n")}})).get()}});var Ut=/%20/g,Bt=/#.*$/,zt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ht=/^(?:GET|HEAD)$/,$t=/^\/\//,Vt={},Wt={},Gt="*/".concat("*"),Xt=y.createElement("a");function Yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(G)||[];if(b(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Kt(e,t,n,r){var i={},o=e===Wt;function a(s){var l;return i[s]=!0,k.each(e[s]||[],(function(e,s){var c=s(t,n,r);return"string"!=typeof c||o||i[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),a(c),!1)})),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Qt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Xt.href=It.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:It.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(It.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Gt,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":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Qt(Qt(e,k.ajaxSettings),t):Qt(k.ajaxSettings,e)},ajaxPrefilter:Yt(Vt),ajaxTransport:Yt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,a,s,l,c,u,d,p,h=k.ajaxSetup({},t),f=h.context||h,m=h.context&&(f.nodeType||f.jquery)?k(f):k.event,g=k.Deferred(),b=k.Callbacks("once memory"),v=h.statusCode||{},_={},w={},x="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(c){if(!a)for(a={};t=qt.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)T.always(e[T.status]);else for(t in e)v[t]=[v[t],e[t]];return this},abort:function(e){var t=e||x;return n&&n.abort(t),S(0,t),this}};if(g.promise(T),h.url=((e||h.url||It.href)+"").replace($t,It.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(G)||[""],null==h.crossDomain){l=y.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Xt.protocol+"//"+Xt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=k.param(h.data,h.traditional)),Kt(Vt,h,t,T),c)return T;for(d in(u=k.event&&h.global)&&0==k.active++&&k.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Ht.test(h.type),i=h.url.replace(Bt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Ut,"+")):(p=h.url.slice(i.length),h.data&&(h.processData||"string"==typeof h.data)&&(i+=(jt.test(i)?"&":"?")+h.data,delete h.data),!1===h.cache&&(i=i.replace(zt,"$1"),p=(jt.test(i)?"&":"?")+"_="+Ot.guid+++p),h.url=i+p),h.ifModified&&(k.lastModified[i]&&T.setRequestHeader("If-Modified-Since",k.lastModified[i]),k.etag[i]&&T.setRequestHeader("If-None-Match",k.etag[i])),(h.data&&h.hasContent&&!1!==h.contentType||t.contentType)&&T.setRequestHeader("Content-Type",h.contentType),T.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Gt+"; q=0.01":""):h.accepts["*"]),h.headers)T.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(f,T,h)||c))return T.abort();if(x="abort",b.add(h.complete),T.done(h.success),T.fail(h.error),n=Kt(Wt,h,t,T)){if(T.readyState=1,u&&m.trigger("ajaxSend",[T,h]),c)return T;h.async&&h.timeout>0&&(s=r.setTimeout((function(){T.abort("timeout")}),h.timeout));try{c=!1,n.send(_,S)}catch(e){if(c)throw e;S(-1,e)}}else S(-1,"No Transport");function S(e,t,a,l){var d,p,y,_,w,x=t;c||(c=!0,s&&r.clearTimeout(s),n=void 0,o=l||"",T.readyState=e>0?4:0,d=e>=200&&e<300||304===e,a&&(_=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}(h,T,a)),!d&&k.inArray("script",h.dataTypes)>-1&&k.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),_=function(e,t,n,r){var i,o,a,s,l,c={},u=e.dataTypes.slice();if(u[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=c[l+" "+o]||c["* "+o]))for(i in c)if((s=i.split(" "))[1]===o&&(a=c[l+" "+s[0]]||c["* "+s[0]])){!0===a?a=c[i]:!0!==c[i]&&(o=s[0],u.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(h,_,T,d),d?(h.ifModified&&((w=T.getResponseHeader("Last-Modified"))&&(k.lastModified[i]=w),(w=T.getResponseHeader("etag"))&&(k.etag[i]=w)),204===e||"HEAD"===h.type?x="nocontent":304===e?x="notmodified":(x=_.state,p=_.data,d=!(y=_.error))):(y=x,!e&&x||(x="error",e<0&&(e=0))),T.status=e,T.statusText=(t||x)+"",d?g.resolveWith(f,[p,x,T]):g.rejectWith(f,[T,x,y]),T.statusCode(v),v=void 0,u&&m.trigger(d?"ajaxSuccess":"ajaxError",[T,h,d?p:y]),b.fireWith(f,[T,x]),u&&(m.trigger("ajaxComplete",[T,h]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],(function(e,t){k[t]=function(e,n,r,i){return b(n)&&(i=i||r,r=n,n=void 0),k.ajax(k.extend({url:e,type:t,dataType:i,data:n,success:r},k.isPlainObject(e)&&e))}})),k.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),k._evalUrl=function(e,t,n){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t,n)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(b(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return b(e)?this.each((function(t){k(this).wrapInner(e.call(this,t))})):this.each((function(){var t=k(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=b(e);return this.each((function(n){k(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){k(this).replaceWith(this.childNodes)})),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Zt={0:200,1223:204},Jt=k.ajaxSettings.xhr();g.cors=!!Jt&&"withCredentials"in Jt,g.ajax=Jt=!!Jt,k.ajaxTransport((function(e){var t,n;if(g.cors||Jt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Zt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),k.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),k.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=k("